/*#define LED1 2
#define LED2 3
#define LED3 4
#define BUTTON 5
bool isRunning = false;
unsigned long previousMillis = 0;
const long interval = 1000;
int currentLED = 0;
bool lastButtonState = HIGH;
bool buttonPressed = false;
unsigned long lastDebounceTime = 0;
const long debounceDelay = 50;
void setup() {
pinMode(LED1, OUTPUT);
pinMode(LED2, OUTPUT);
pinMode(LED3, OUTPUT);
pinMode(BUTTON, INPUT_PULLUP);
}
void loop() {
bool buttonState = digitalRead(BUTTON);
if (buttonState != lastButtonState) {
lastDebounceTime = millis();
}
if ((millis() - lastDebounceTime) > debounceDelay) {
if (buttonState == LOW && !buttonPressed) {
isRunning = !isRunning;
buttonPressed = true;
}
}
if (buttonState == HIGH) {
buttonPressed = false;
}
lastButtonState = buttonState;
if (isRunning) {
unsigned long currentMillis = millis();
if (currentMillis - previousMillis >= interval) {
previousMillis = currentMillis;
digitalWrite(LED1, LOW);
digitalWrite(LED2, LOW);
digitalWrite(LED3, LOW);
if (currentLED == 0) digitalWrite(LED1, HIGH);
else if (currentLED == 1) digitalWrite(LED2, HIGH);
else if (currentLED == 2) digitalWrite(LED3, HIGH);
currentLED = (currentLED + 1) % 3;
}
} else {
digitalWrite(LED1, LOW);
digitalWrite(LED2, LOW);
digitalWrite(LED3, LOW);
}
}
*/
#define LED1 2
#define LED2 3
#define LED3 4
#define BUTTON 5
bool isRunning = false;
unsigned long lastTime = 0;
int currentLED = 0;
void setup() {
pinMode(LED1, OUTPUT);
pinMode(LED2, OUTPUT);
pinMode(LED3, OUTPUT);
pinMode(BUTTON, INPUT_PULLUP);
}
void loop() {
if (digitalRead(BUTTON) == LOW) {
delay(50);
isRunning = !isRunning;
while (digitalRead(BUTTON) == LOW);
delay(50);
}
if (isRunning) {
unsigned long now = millis();
if (now - lastTime >= 1000) {
lastTime = now;
digitalWrite(LED1, LOW);
digitalWrite(LED2, LOW);
digitalWrite(LED3, LOW);
if (currentLED == 0) digitalWrite(LED1, HIGH);
else if (currentLED == 1) digitalWrite(LED2, HIGH);
else if (currentLED == 2) digitalWrite(LED3, HIGH);
currentLED = (currentLED + 1) % 3;
}
}
else {
digitalWrite(LED1, LOW);
digitalWrite(LED2, LOW);
digitalWrite(LED3, LOW);
}
}