#define LED1 4 #define LED2 5 #define BUTTON_PIN 6 bool toggleState = false; bool buttonPressed = false; unsigned long lastDebounceTime = 0; const unsigned long debounceDelay = 50; void setup() { pinMode(LED1, OUTPUT); pinMode(LED2, OUTPUT); pinMode(BUTTON_PIN, INPUT_PULLUP); digitalWrite(LED1, LOW); digitalWrite(LED2, LOW); Serial.begin(115200); Serial.println("Ready to toggle LEDs."); } void loop() { static bool lastButtonReading = HIGH; bool currentReading = digitalRead(BUTTON_PIN); if (currentReading != lastButtonReading) { lastDebounceTime = millis(); } if ((millis() - lastDebounceTime) > debounceDelay) { if (currentReading == LOW && !buttonPressed) { buttonPressed = true; toggleState = !toggleState; if (toggleState) { digitalWrite(LED1, HIGH); digitalWrite(LED2, LOW); Serial.println("LED1 ON, LED2 OFF"); } else { digitalWrite(LED1, LOW); digitalWrite(LED2, HIGH); Serial.println("LED1 OFF, LED2 ON"); } } if (currentReading == HIGH) { buttonPressed = false; } } lastButtonReading = currentReading; }