volatile bool event1 = false; // учёт события
volatile uint32_t debounce = 0;
void setup()
{
Serial.begin(9600); // Открыли порт для связи
pinMode(2, INPUT_PULLUP); // DP2 на вход, с подтяжкой
pinMode(13, OUTPUT);
pinMode(12, OUTPUT);
pinMode(11, OUTPUT);
attachInterrupt(0, eventButtonLow, CHANGE);
}
void loop()
{
if (event1)
{
event1=false;
digitalWrite(11, HIGH);
delay(200);
digitalWrite(12, HIGH);
delay(200);
digitalWrite(13, HIGH);
delay(200);
}
else
{
digitalWrite(13, LOW);
digitalWrite(12, LOW);
digitalWrite(11, LOW);
}
}
void eventButtonLow(void)
{
if (millis()- debounce >=300 && digitalRead(2) )
{
debounce = millis();
event1=true;
}
}