th_elt Hardware & Software

Vergelijkbare documenten
//enable de interne pull-up weerstand. //variabele sensorval. //naar de seriële monitor

RCL Arduino Workshop 1

Workshop Arduino voor beginners deel 2

Werkbladen voor Arduino workshop 1

Arduino Workshop 1 Zuid-Limburg

1. Sluit de LED aan zoals afgebeeld 2. Sluit de USB-kabel aan op de Arduino 3. Klik op de knop uploaden 4. De LED begint te knipperen

Deel 8: stappenmotoren en interrupts

Arduino : Morse Voltmeter

Jeroen uit. Extra informatie. Voor de lunch. Arduino zo aangesloten om mijn code te laten werken. (versie voor lunch) (code voor de lunch)

Programmeren met Arduino-software

Tweede workshop Arduino

Oefening 1 - Seriële communicatie via USB

Deel 1: Arduino kennismaking. Wat is een microcontroller, structuur van een programma, syntax,

Arduino[4KIDS] Maak je eigen muziekinstrument!

Arduino Programmeer handleiding

delay(1000); // Eén seconde pauze digitalwrite(pin, LOW); // zet 'pin' uit delay(1000); // Eén seconde pauze }

1. Testdata TA sensor met Ohmse belasting

Arduino cursus 2018 voor beginners en gevorderden 23 september Paul van de Veen

MAKERKLAS WORKSHOP ARDUINO. Maandag 7 december 2015

Firewall van de Speedtouch 789wl volledig uitschakelen?

Workshop Arduino - deel 2

Arduino Zuid-Limburg Workshop 2

PIR DC-SWITCH. DC Passive infra-red Detector. Model No. PDS-10 GEBRUIKSAANWIJZING/INSTRUCTION MANUAL

MyDHL+ Van Non-Corporate naar Corporate

Arduino CURSUS. door Willy - 09-juni-2017

Wat is Arduino? Arduino = microprocessor (Atmel)

Arduino. C.F.J. Pols.

SAMPLE 11 = + 11 = + + Exploring Combinations of Ten + + = = + + = + = = + = = 11. Step Up. Step Ahead

arduino programmeerboek Davy Wolfs

DDS chips. DDS = Direct Digital (frequency) Synthesis. Output = sinusvormig signaal. Maximum frequentie = ½ klokfrequentie

Arduino Opstartgids.

Arduino cursus. Eelco Dijkstra Steunpunt Informatica - Its Academy 24 september 2015

Arduino Cursus, Deel 2 Programmeren. Simon Pauw, ZB45, Amsterdam

Add the standing fingers to get the tens and multiply the closed fingers to get the units.

LDAP Server on Yeastar MyPBX & tiptel 31xx/32xx series

MyDHL+ ProView activeren in MyDHL+

Naam + Klas: Laptop Nr: Cijfer:

EM2 Microcontroller Project. LED cube

by Jody Culkin Bronnen die gratis gebruikt, verspreid of aangepast kunnen worden. meestal software of hardware.

Arduino Workshop. door Geert Roumen (CC) BY-SA. lemio.nl/arduino/

ALGORITMIEK: answers exercise class 7

De FOR lus: // terug naar waar je vandaan kwam Serial.begin(115200); // communicatie snelheid met de PC

ARDUINO IDE SCHOOLHANDLEIDING MET THEORIE, OEFENINGEN en EVALUATIETOOL

BathySurvey. A Trimble Access hydrographic survey module

Handleiding Digipass DP310

modellering met Arduino project module

Procedure Reset tv-toestellen:

ANGSTSTOORNISSEN EN HYPOCHONDRIE: DIAGNOSTIEK EN BEHANDELING (DUTCH EDITION) FROM BOHN STAFLEU VAN LOGHUM

2019 SUNEXCHANGE USER GUIDE LAST UPDATED

Meet the Arduino FAMILY

Naam LL en : Thibo Meuwes - Maxime Carrein. Evert Cottyn - Lowie De Lombaerde. Naam Lkr en : Benjamin Samyn. Johan Vanhaverbeke.

by Jody Culkin Bronnen die gratis gebruikt, verspreid of aangepast kunnen worden. meesta software of hardware.

Automatische spoel installatie voor legionella preventie. NTKC - Bennie ten Haken 27 Mrt

Bij manueel trein elke keer vanaf spoor 1 te starten, dus altijd twee ritten. StartLED gaat aan en pas uit als trein op 1 arriveert.

Preschool Kindergarten

!!!! Wild!Peacock!Omslagdoek!! Vertaling!door!Eerlijke!Wol.!! Het!garen!voor!dit!patroon!is!te!verkrijgen!op! Benodigdheden:!!

Handleiding Zuludesk Parent

The first line of the input contains an integer $t \in \mathbb{n}$. This is followed by $t$ lines of text. This text consists of:

Esther Lee-Varisco Matt Zhang

Arduino. Arduino UNO. Sam Decoster. CoderDojo Roeselare. Sam Decoster

TECHNISCHE UNIVERSITEIT EINDHOVEN Faculteit Wiskunde en Informatica. Examination 2DL04 Friday 16 november 2007, hours.

ES1 Project 1: Microcontrollers

De grondbeginselen der Nederlandsche spelling / Regeling der spelling voor het woordenboek der Nederlandsche taal (Dutch Edition)

After that, the digits are written after each other: first the row numbers, followed by the column numbers.

NSPYRE LEGO MINDSTORMS UITDAGING (JAVA) INLEIDING. DOEL: SIMULATOR:

Free time! Better skills. Free time with Brenda and Brian. Worksheet

DALISOFT. 33. Configuring DALI ballasts with the TDS20620V2 DALI Tool. Connect the TDS20620V2. Start DALISOFT

Ravi Ramcharan Arduino PRO Smart leeslampje

ANT S KINGDOM Here is some advice for setting up your Master Ant Farm!

modellering met Arduino extra module

Module nummer Elke speciale module krijgt een eigen module nummer om de betreffende module in te stellen en uit te lezen. Ethernet module FX3u-ENET

HANDLEIDING - ACTIEVE MOTORKRAAN

Compaq Desktop Wallpaper

L.Net s88sd16-n aansluitingen en programmering.

Classification of triangles

Luister alsjeblieft naar een opname als je de vragen beantwoordt of speel de stukken zelf!

CTCSS Encoder Super Flexibel Ontwerpen met een Arduino Nano

RECEPTEERKUNDE: PRODUCTZORG EN BEREIDING VAN GENEESMIDDELEN (DUTCH EDITION) FROM BOHN STAFLEU VAN LOGHUM

// hier wordt de functie: ZegHallo aangeroepen

i(i + 1) = xy + y = x + 1, y(1) = 2.

Arduino. HCC Vlaanderen - Mechelen 7 februari Luc De Cock

DBMS. DataBase Management System. Op dit moment gebruiken bijna alle DBMS'en het relationele model. Deze worden RDBMS'en genoemd.

FOR DUTCH STUDENTS! ENGLISH VERSION NEXT PAGE. Toets Inleiding Kansrekening 1 8 februari 2010

Infographic De infographic geeft in grove lijnen het overkoepelend concept weer Your home remotely controlled Zie de infographic hier naast.

Four-card problem. Input

modellering met Arduino mini module

Variabelen en statements in ActionScript

Weerstation. Weerstation met Arduino C.G.N. van Veen. HiSPARC. 1 Weerstation. 2 Arduino. 2.1 Werking van Arduino

De Arduino-microcontroller in de motorvoertuigentechniek (7)

Exploitant. CM-Bureau

FOR DUTCH STUDENTS! ENGLISH VERSION NEXT PAGE

Settings for the C100BRS4 MAC Address Spoofing with cable Internet.

Transcriptie:

th_elt Hardware & Software 1

Inhoudsopgave 1 Arduino Simulators... 3 2 Bronvermelding:... 3 3 Variabelen... 4 3.1 byte... 4 3.2 int... 4 3.3 long... 4 3.4 float... 4 4 Opbouw programma... 5 5 LCD Liquid Crystal Display... 6 6 Keuzestructuren... 8 7 map commando... 11 7.1 Voorbeeld_1 - verschalen... 11 7.2 Voorbeeld_2 - Inverteren... 11 7.3 Voorbeeld_3 - Inverteren... 12 2

1 Arduino Simulators Online Arduino simulator https://123d.circuits.io/ Maak een account aan. Electronics hub 2 Bronvermelding: https://startingelectronics.org/software/arduino/learn-to-program-course/... https://www.arduino.cc/en/tutorial/builtinexamples 3

3 Variabelen 3.1 byte Dit is een 8-bit numerieke waarde, zonder een decimale punt, met een bereik van 0 255. Grondtal 2 met gewicht 2 7 2 6 2 5 2 4 2 3 2 2 2 1 2 0 Waarde 128 64 32 16 8 4 2 1 Voorbeeld_1 Binaire waarde 0 0 0 0 0 0 0 0 0 + 0 + 0 + 0 + 0 + 0 + 0 + 0 = 0 Voorbeeld_2 Binaire waarde 0 1 0 1 0 1 0 1 0 + 64 + 0 + 16 + 0 + 4 + 0 + 1 = 85 Voorbeeld_3 Binaire waarde 1 1 1 1 1 1 1 1 128 + 64 + 32 + 16 + 8 + 4 + 2 + 1 = 255 3.2 int Integers zijn primaire datatypes om getallen te bewaren, zonder een decimale punt, van een 16-bit waarde met een bereik van 32767 tot -32768. Opmerking: Een integer variabele kan niet groter zijn dan 32767. Verhoog je 32767 met 1 dan wordt het een negatief getal: -32768. 3.3 long Datatype voor erg grote getallen, zonder een decimale punt (een soort uitgebreide integer) een 32- bit waarde met een bereik van 2,147,483,647 tot -2,147,483,648. 3.4 float Een datatype voor getallen met een decimale punt. Dus met getallen achter de komma. Floating datatypes nemen meer geheugen in gebruik dan een integer en worden opgeslagen als een 32-bit waarde met een bereik van 3.4028235E+38 tot -3.4028235E+38. Opmerking: Floating-point getallen zijn of hoeven in principe niet gelijk te zijn als je ze met elkaar vergelijkt. Met het rekenen aan floating getallen heeft de microcontroller veel meer tijd nodig dan bij byte of integer getallen. 4

4 Opbouw programma 5

5 LCD Liquid Crystal Display https://www.arduino.cc/en/tutorial/helloworld Elektrisch schema 6

Kolom 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 RIJ 0 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 Aantal rijen (2) RIJ 1 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 Code // include the library code: #include <LiquidCrystal.h> Aantal kolommen (16) // initialize the library with the numbers of the interface pins // Dit zijn de aansluitingen op de Arduino LiquidCrystal lcd(12, 11, 5, 4, 3, 2); void setup() { // set up the LCD's number of columns and rows: // De LCD bestaat uit 16 kolommen en 2 rijen lcd.begin(16, 2); // Print a message to the LCD. // Als de locatie niet wordt aangegeven met lcd.setcursor(x, y) wordt de tekst automatisch op // kolom 0 (x) en rij 0 (y) geschreven. lcd.print("hello, world!"); void loop() { // set the cursor to column 0, line 1 // (note: line 1 is the second row, since counting begins with 0): lcd.setcursor(0, 1); // print the number of seconds since reset: lcd.print(millis() / 1000); 7

6 Keuzestructuren void setup() { Serial.begin(9600); pinmode(0, INPUT_PULLUP); pinmode(2, OUTPUT); pinmode(3, OUTPUT); void loop() { int sensorval = digitalread(0); Serial.println(sensorVal); //start seriële verbinding //configureer pin0 als een input en //enable de interne pull-up weerstand //configureer pin2 als een output //configureer pin3 als een output //lees de waarde van de drukknop en zet deze in de //variabele sensorval //Stuur de waarde van de drukknop (sensorval) //naar de seriële monitor // Door de pullup-weerstand reageert de uitgang geinverteerd op de stand van de schakelaar // De uitgang is HOOG (logisch 1 ) als de schakelaar open is. // De uitgang is LAAG (logisch 0 ) als de schakelaar dicht is. // if..then..else functie if (sensorval == HIGH) { digitalwrite(2, LOW); digitalwrite(3, HIGH); else { digitalwrite(2, HIGH); digitalwrite(3, LOW); //Als de variabele sensorval hoog is dan // Zet uitgang 2 LAAG PSD if..then..else functie (Selectie) // Zet uitgang 3 HOOG //Anders // Zet uitgang 2 HOOG // Zet uitgang 3 LAAG Ja then.. Voorwaarde if Nee Else.. Pull up weerstand Vcc 0A R1 10kΩ S1 0V Vin (5V) 5V Vcc 0,5mA R1 10kΩ S1 5V Vin (0V) 0V Een ingang mag nooit zweven (los hangen). Op een loshangende ingang kan door straling een HOOG-signaal (logische 1 ) komen te staan. Een manier om dit te voorkomen is een pull-up weerstand. Als in het schema hierlangs de schakelaar open staat, dan is de spanning Vi = 5V. Vi zit vast aan een ingang die een hele hoge weerstand heeft. Hierdoor loopt er geen stroom door de weerstand. U = I * R -> U = 0A * 10.10 3 = 0V. Er is dus geen spanningsval over de weerstand. Als de schakelaar gesloten wordt hangt Vi direct aan de massa. Vi wordt dan 0V. Er gaat dan wel een stroom lopen door de weerstand: I = U/R = 5V/10.10 3 =0,5.10-3 = 0,5 ma 8

/* State change detection (edge detection) Often, you don't need to know the state of a digital input all the time, but you just need to know when the input changes from one state to another. For example, you want to know when a button goes from OFF to ON. This is called state change detection, or edge detection. This example shows how to detect when a button or button changes from off to on and on to off. The circuit: * pushbutton attached to pin 2 from +5V * 10K resistor attached to pin 2 from ground * LED attached from pin 13 to ground (or use the built-in LED on most Arduino boards) http://www.arduino.cc/en/tutorial/buttonstatechange */ // this constant won't change: const int buttonpin = 2; const int ledpin = 13; // Variables will change: int buttonpushcounter = 0; int buttonstate = 0; int lastbuttonstate = 0; // the pin that the pushbutton is attached to // the pin that the LED is attached to // counter for the number of button presses // current state of the button // previous state of the button void setup() { pinmode(buttonpin, INPUT); pinmode(ledpin, OUTPUT); Serial.begin(9600); // initialize the button pin as a input: // initialize the LED as an output: // initialize serial communication: void loop() { buttonstate = digitalread(buttonpin); //lees de waarde van de schakelaar op ingang //buttonpin (ingang 2) if (buttonstate!= lastbuttonstate) { //Als buttonstate ongelijk(!=) is aan lastbuttonstate if (buttonstate == HIGH) { //Als buttonstate gelijk is aan (==) HOOG dan, buttonpushcounter++; //buttonpushcounter met 1 verhogen (++ -> x = x + 1) Serial.println("on"); //schrijf on Serial.print("number of button pushes: "); Serial.println(buttonPushCounter); else { //Als buttonstate gelijk is aan (==) LAAG dan, Serial.println("off"); //schrijf off delay(50); //Vertraging van 50ms om trillingen van de //schakelaar te vermijden lastbuttonstate = buttonstate; //lastbuttonstate krijgt de waarde van buttonstate //for next time through the loop // turns on the LED every four button pushes by // checking the modulo of the button push counter. // the modulo function gives you the remainder of // the division of two numbers: if (buttonpushcounter % 4 == 0) { digitalwrite(ledpin, HIGH); else { digitalwrite(ledpin, LOW); 9

/* Switch statement Demonstrates the use of a switch statement. The switch statement allows you to choose from among a set of discrete values of a variable. It's like a series of if statements. To see this sketch in action, but the board and sensor in a well-lit room, open the serial monitor, and and move your hand gradually down over the sensor. The circuit: * photoresistor from analog in 0 to +5V * 10K resistor from analog in 0 to ground http://www.arduino.cc/en/tutorial/switchcase */ // these constants won't change. They are the // lowest and highest readings you get from your sensor: const int sensormin = 0; // sensor minimum, experimenteel vastgesteld const int sensormax = 600; // sensor maximum, experimenteel vastgesteld void setup() { // initialize serial communication: Serial.begin(9600); void loop() { // read the sensor: int sensorreading = analogread(a0); // map the sensor range to a range of four options: int range = map(sensorreading, sensormin, sensormax, 0, 3); // do something different depending on the // range value: switch (range) { case 0: // your hand is on the sensor Serial.println("dark"); break; case 1: // your hand is close to the sensor Serial.println("dim"); break; case 2: // your hand is a few inches from the sensor Serial.println("medium"); break; case 3: // your hand is nowhere near the sensor Serial.println("bright"); break; delay(1); // delay in between reads for stability Start seriële communicatie Lees de analoge waarde op A0 en zet deze in de variabele sensorreading Zet de sensorwaarde om in een van de 4 mogelijkheden Blok 1 Schrijf "dark" Blok 2 Schrijf "dim" Einde keuzestructuur Keuzestructuur Blok 3 Schrijf "medium" Vertraging van 1 milliseconde t.b.v. stabiliteit Blok 4 Schrijf "bright" 10

7 map commando https://www.arduino.cc/en/reference/map Beschrijving De map() functie een getal om van het ene bereik naar een ander bereik (scaleren of verschalen) map(value, fromlow, fromhigh, tolow, tohigh) Value = waarde fromlow = oude lage waarde tolow = nieuwe lage waarde fromhigh = oude hoge waarde tohigh = nieuwe hoge waarde 7.1 Voorbeeld_1 - verschalen map(value, fromlow, fromhigh, tolow, tohigh) map( 300, 0, 600, 0, 3 ) fromlow fromhigh Value 300 (voorbeeldwaarde) 0 (=sensormin) 600 (=sensormax) 000 tot 200 200 tot 400 400 tot 600 tolow tohigh 1,5 0 3 0 tot 1 1 tot 2 2 tot 3 7.2 Voorbeeld_2 - Inverteren Je kunt de map() functie ook gebruiken voor een serie getallen te inverteren: y = map(x, 1, 50, 50, 1); map(value, fromlow, fromhigh, tolow, tohigh) map( x, 1, 50, 50, 1 ) fromlow fromhigh Value 1 (=sensormin) 50 (=sensormax) 01 02 03 04 24 25 26 27 47 46 49 50 tolow tohigh 50 1 50 49 48 47 27 26 25 24 04 03 02 01 47 (voorbeeldwaarde) Uitwerking 4 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 50 49 48 47 46 45 44 43 42 41 40 39 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 11

7.3 Voorbeeld_3 - Inverteren De map() functie werkt ook met negatieve getallen: y = map(x, 1, 50, 50, -100); map(value, fromlow, fromhigh, tolow, tohigh) map( x, 1, 50, 50, -100 ) Value fromlow fromhigh 1 (=sensormin) 50 (=sensormax) 01 02 03 04 24 25 26 27 47 46 49 50 tolow tohigh 50 1 50-100 47 (voorbeeldwaarde) Uitwerking 4 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 50 40 30 20 10 00-10 -20-30 -40-50 -60-70 -80-90 -100 In bovenstaand voorbeeld zouden er bij het omzetten geen hele getallen uitkomen. De map() functie maakt echter alleen gebruik van integers (gehele getallen). Er ontstaan dus geen komma-getallen. Mocht er bij het omzetten een komma-getal ontstaan wordt deze afgekapt bij de komma en niet afgerond of gemiddeld. Voorbeelden: een 8,4 wordt een 8, een 8,9 wordt ook een 8.. 12