Speedcourse Arduino van Bas Boot

“Van 14:00 tot 14:45 een Speed Course Arduino. Extra oefening met een opdracht met 3 LED’s en een button. LET OP! Niet Googelen naar de oplossing, doe je dat wel dan kan je helaas niet meedoen.
Ieder keer als je de button indrukt gaat er een ander LED branden (zie filmpje). Voor schakeling zie afbeelding. Eerste 15 studenten die hieronder een comment achter laten kunnen meedoen.”
– Bas Boot via classroom.google.com

 

Vanmiddag heb ik meegedaan aan de speedcours Arduino. De opdracht was om 3 ledjes om de beurt te laten branden door op een knop te drukken. Het is best wel eng om geen google te gebruiken bij het coderen…

Code:
// We maken een variabel, led1 vb die koppelen we aan poort 2
int led1 = 2;
int led2 = 3;
int led3 = 4;//Hetzelfde voor de button
int button = 13;//De Button geeft geen signaal
//booleans zijn alleen false of true
bool currentButtonState = false;
bool previousButtonState = false;//Het eerste ledje
int currentLed = led1;void setup() {//Deze pinnen zijn output
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT);

//Deze s input
pinMode(button, INPUT);

//led1 aan, de rest uit
digitalWrite(led1, HIGH);
digitalWrite(led2, LOW);
digitalWrite(led3, LOW);

}

void loop() {

// Hij leest
currentButtonState = digitalRead(button);

// if ((previousButtonState) && (!currentButtonState)) Zo kan het ook
if ((previousButtonState == true) && (currentButtonState == false))
{
// De huidige led gaat uit
digitalWrite(currentLed, LOW);
// “currentLed” wordt gekoppeld aan de volgende pin
currentLed = currentLed + 1;
// er zijn maar drie pinnen
if (currentLed > led3)
{
// Door if komt hij na de 3e komt de 1e
currentLed = led1;
}
// Nu gaat de volgende led aan omdat we “currentLed” aan de volgende pin hebben gekoppeld
digitalWrite(currentLed, HIGH);

}

// Einde van de loop, bereid je voor op de volgende loop
previousButtonState = currentButtonState;

}

Leave a Reply

Your email address will not be published. Required fields are marked *