/*4.8.2 Oefening – Looplicht van acht leds op schakelaar
De werking is als volgt:
Druk even op de drukknop: de LED’s lopen vijfmaal heen-en-weer. Wacht tot alle LED’s doven.
Houd de drukknop ingedrukt, om de LED’s continue heen-en-weer te laten lopen. Laat u de knop los,
dan wordt de laatste cyclus van vijfmaal heen-en-weer afgemaakt. Daarna doven de LED’s.
*/
int iLaatstePin = 1;
int iDelayTijd = 200;
int bStatus = false;
void setup() {
// definieer pin 0 als input voor de schakelaar
pinMode(0, INPUT_PULLUP);
// maak alle led-pins een output
for(int n=1;n<9;n++){
pinMode(n, OUTPUT);
};
}
void loop() {
// begin van de main loop die constant herhaald wordt
if(digitalRead(0) == false){
for(int i=0;i<5;i++){
for(int n=1;n<9;n++){ // HEEN: loop 8 keer, van 1 tot 8
digitalWrite(iLaatstePin,LOW); // maak de vorige pin weer laag (LED uit)
digitalWrite(n, HIGH); // en maak de huidige pin hoog (LED aan)
iLaatstePin = n; // onthoud de pin voor de volgende ronde in de lus
delay(iDelayTijd); // wacht even voor de volgende LED aangaat
}
for(int n=7;n>1;n--){ // EN WEER: loop 6 keer, omdat de buitenste twee maar 1x aan moeten zijn
digitalWrite(iLaatstePin,LOW); // maak de vorige pin weer laag (LED uit)
digitalWrite(n, HIGH); // en maak de huidige pin hoog (LED aan)
iLaatstePin = n; // onthoud de pin
delay(iDelayTijd); // en wacht de delay-tijd
}
digitalWrite(iLaatstePin, LOW); // tenslotte, zet ook de laatste LED uit
}
}
}