/*  Button of drukknopschakelaar
    Led op D13 gaat aan als drukknopschakelaar wordt gedrukt */


// Twee constanten vertegenwoordigen pinnen D2 en D13:
const int buttonPin = 2;    // Pinnummer drukknopschakelaar (D2)
const int LedPin = 13;      // Pinnummer LED (D13)

// Variabele vertegenwoordigt status van de drukknopschakelaar:
int buttonState = 0;
int prevButtonState = 0;

// Variabele om drukknopschakelaar bedieningen bij te houden
int buttonCount = 0;

void setup() {
  // initialiseer digitale poort D13 als uitgang (OUTPUT):
  pinMode(LedPin, OUTPUT);
  // initialiseer digitale poort D2 als ingang (INPUT):
  pinMode(buttonPin, INPUT);
}

void loop() {
  // Lees de status van de drukknopschakelaar:
  buttonState = digitalRead(buttonPin);
  // wacht om debounce te realiseren
  delay(50);

  // Controleer of de drukknopschakelaar wordt ingedrukt, dus
  // check of de status van de drukknopschakelaar hoog (HIGH) is:
  if((buttonState == HIGH) and (prevButtonState == false)){
    // Zo ja, verhoog de telstand:
    buttonCount++;
    prevButtonState = true;
  } else {
    prevButtonState = false;
  }

  // bij een even tellerstand zet de LED aan
  if (buttonCount %2 == 0){
    digitalWrite(LedPin, HIGH);
  } else {
    digitalWrite(LedPin, LOW);
  }
}