byte lastbuttonState = 0; // new global variable
void loop() {
buttonState = digitalRead(buttonPin);
// normal debounce code here
if(buttonState != lastbuttonState) {
activate();
lastbuttonState = buttonState;
}
}
Alternative:
byte lastbuttonState = 0; // new global variable
byte buttonState2 = 0;
void loop() {
buttonState1 = digitalRead(buttonPin);
delay(20);
buttonState2 = digitalRead(buttonPin);
if(buttonState1 == buttonState2) {
if(buttonState2 != lastbuttonState) {
activate();
lastbuttonState = buttonState2;
}
}
}
dont forget the setup()