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