// simplest debounce function
#define btn 2 //assuming we use D2 on Arduino
void setup() {
pinMode(btn, INPUT_PULLUP);
pinMode(LED_BUILTIN, OUTPUT);
}
bool debounce() {
static uint16_t state = 0;
state = (state<<1) | digitalRead(btn) | 0xfe00;
return (state == 0xff00);
}
void loop() {
if (debounce()) {
digitalWrite(LED_BUILTIN, !digitalRead(LED_BUILTIN));
}
}