Bouw de opstelling hieronder.
Upload de code.
Als de opstelling goed gebouwd is en de code geüpload is zal het lampje branden als er op het knopje gedrukt wordt.
Neem de code stap voor stap door om te begrijpen wat de code 'doet'
Doe de opdracht/uitdaging.
Laat je werk controleren en aftekenen.
Hierboven zie je een afbeelding van de stroomkring van de drukknop. Een led heb je bij Basisles Arduino les 1 en 2 al aangesloten. De drukknop is nieuw.
Er lopen twee draden van de Arduino naar de rode en de blauwe strip op het breadboard. Op de rode strip staat +5 Volt en de blauwe strip is de 'min', ook wel GND (ground) genoemd.
We kijken nu alleen even naar de drukknop.
Op het rechtse pootje onder komt 5 Volt de schakelaar binnen via de rode 'plus-draad'.
Als je niet op de knop drukt, dan gaat de stroom niet door naar de linkerkant van de schakelaar. Druk ik wel op de knop, dan kan de stroom doorgaan en komt er ook op de linkerkant 5 Volt te staan. Links op de schakelaar is de groene draad aangesloten. Die gaat naar Arduino pin 2.
Daar wordt gemeten dat de knop wordt ingedrukt. Laat je nu de knop los, dan zal de spanning op de groene draad weer 0 Volt worden.
Dat zou wel eens niet direct kunnen gaan. Hiervoor is de 10K ohm weerstand. Die laat de spanning via GND wegstromen. Vandaar de naam Pull Down weerstand.
Laatste stukje begrijp ik niet helemaal. Waarom is dit zo??
Upload de code die hieronder staat..........
1 /*
2 Autheur: Fun met Electronica
3 Link: https://training.funmetelectronica.nl/docs/arduino-basis/lessen/les-3-knop/
4 Beschrijving: Als de knop (verbonden met pin2) ingedrukt wordt gaat de led
5 (verbonden met pin 13)aan.
6 */
7
8 int knop = 2; // knop aan pin 2
9 int led = 13; // led aan pin 13
10 int toestandknop = 0; // variabele voor het lezen van de knop
11
12 /*
13 Het programmablok void setup wordt eenmaal beschreven
14 */
15 void setup() {
16 pinMode(led, OUTPUT); // ledpin is output
17 pinMode(knop, INPUT); // knop is input
18 }
19
20 /*
21 Het programmablok void loop herhaalt zich keer op keer
22 */
23 void loop() {
24 toestandknop = digitalRead(knop); // toestandknop is de waarde van knop
25 if (toestandknop == HIGH) { // controleer of de knop ingedrukt is
26 digitalWrite(led, HIGH); // indien ingedrukt: led aan
27 }
28 else {
29 digitalWrite(led, LOW); // anders: led uit
30 }
31 }
32
33 /*
34 Opdracht 1:
35 Verander de sketch zo dat:
36 De led na één keer indrukken voor 5 seconden aan gaat.
37 */
De code, stap voor stap
In regel 8 en 9 ‘vertellen’ we dat de knop op pin 2 en de led op pin 13 is aangesloten.
In regel 10 geven we een naam aan een variabele. De naam is ‘toestandknop’, de waarde van de variabele kan 0 of 1 zijn. In computertaal is dat ook wel LOW of HIGH. Bij het begin van de code geven we de variabele de waarde 0.
De waarde van een variabele kan veranderd worden, de naam blijft hetzelfde maar het stelt dan iets anders voor.
Een voorbeeld. 'Buitentemperatuur' is de naam van een variabele. We meten elk uur de buiten de temperatuur. Elk uur moeten we misschien wel de waarde van de buitentemperatuur veranderen. Dit doen we na elke meting. Bij Arduino gebeurt dit ook. (De Arduino doet dit zelf, automatisch. Klopt dat?
Regel 15 t/m 18 is de setup.
Hier vertellen we dat de led een output is en de knop een input.
Arduino gaat dan op pin 13 spanning geven en op pin 2 spanning meten.
De loop (Engels, betekenis > herhaling) staat beschreven in de regels 23 t/m 31
Regel 24 is een commando (instructie). Er wordt aan Arduino gevraagd om op pin 2 (knop) te meten en de waarde (LOW of HIGH) door te geven aan de variabele ‘toestandknop’.
Op regel 25, 26 en 27 staat het volgende beschreven. Arduino kijkt of dat de variabele ‘toestandknop’ de waarde HIGH heeft. Als dit zo is dan gaat hij uitvoeren wat op regel 26 staat.
Als het niet zo is, dus de waarde van de ‘toestandknop’ is LOW, dan voert Arduino uit wat op regel 29 staat.
OPDRACHT/ UITDAGING
Verander de code zo, dat de led na één keer indrukken voor 5 seconden aan gaat.
Probeer de opdracht die bij de les hoort uit te voeren. Let op je mag aan de code regels toevoegen. Kijk ook naar coderegels uit eerdere lessen.
filmpje nog toevoegen