#define LED 7 #define BUTTON A0 #define BLINK 8 #define DELAY 100 void setup() { pinMode(LED, OUTPUT); pinMode(BUTTON, INPUT); pinMode(BLINK, OUTPUT); } bool mode() { static bool last = HIGH; static bool m = HIGH; if (last && !digitalRead(BUTTON)) { m = !m; } last = digitalRead(BUTTON); return m; } void loop() { static unsigned long clk = 0; static bool blinkValue = HIGH; digitalWrite(LED, mode()); if (millis() - clk > DELAY) { blinkValue = !blinkValue; clk = millis(); } digitalWrite(BLINK, blinkValue); delay(1); }