int ledPin1 = 13; int ledPin2 = 12; int switchPin = 7; int val; int state; int c; #define TIME 2000 unsigned long int time; void setup() { pinMode(ledPin1, OUTPUT); pinMode(ledPin2, OUTPUT); pinMode(switchPin, INPUT_PULLUP); digitalWrite(ledPin1, LOW); digitalWrite(ledPin2, LOW); } void loop() { state = digitalRead(switchPin); if (state == LOW && c == 0) // нажали кнопку { c = 1; val = ++val; if (val == 3) { val = 0; } time = millis(); } if (state == HIGH && c == 1) // отпустили кнопку { c = 0; } if (val == 0) // выключаем светодиоды { digitalWrite(ledPin1, LOW); digitalWrite(ledPin2, LOW); } if (val == 1) // Если мы кнопку 1 раз нажали и отпустили { digitalWrite(ledPin1, HIGH); digitalWrite(ledPin2, LOW); } if (val == 2) // Если мы кнопку 2 раз нажали и отпустили { digitalWrite(ledPin1, LOW); digitalWrite(ledPin2, HIGH); delay(500); digitalWrite(ledPin1, LOW); digitalWrite(ledPin2, LOW); val = 0; c = 0; } if (millis() - time > TIME) { if (val != 2) { val = 0; } } delay(10); }