/*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
    }
  }
}