volatile bool pressed = false;
void isr0() {
digitalWrite(13, !digitalRead(13));
pressed = true;
detachInterrupt(digitalPinToInterrupt(2));
}
void setup() {
Serial.begin(9600);
pinMode(2, INPUT_PULLUP);
pinMode(13, OUTPUT);
digitalWrite(13, LOW);
attachInterrupt(digitalPinToInterrupt(2), isr0, FALLING);
}
void loop() {
static int test;
if (pressed) {
delay(1000);
digitalWrite(13, LOW);
delay(4000);
pressed = false;
attachInterrupt(digitalPinToInterrupt(2), isr0, FALLING);
} else {
Serial.println(++test);
delay(100);
}
}