#define LED_RED 25
#define LED_YELLOW 32
#define LED_GREEN 33
#define BUTTON 21
bool ledsOn = false; // estado inicial
void setup() {
pinMode(LED_RED, OUTPUT);
pinMode(LED_YELLOW, OUTPUT);
pinMode(LED_GREEN, OUTPUT);
pinMode(BUTTON, INPUT_PULLUP);
Serial.begin(115200);
Serial.println("Sistema iniciado - LEDs DESLIGADOS");
}
// Função para ligar LEDs em cascata
void ligarLeds() {
Serial.println("Acendendo LEDs...");
digitalWrite(LED_RED, HIGH);
delay(1000);
digitalWrite(LED_YELLOW, HIGH);
delay(1000);
digitalWrite(LED_GREEN, HIGH);
delay(1000);
Serial.println("Todos LEDs LIGADOS");
}
// Função para desligar LEDs em ordem inversa
void desligarLeds() {
Serial.println("Apagando LEDs...");
digitalWrite(LED_GREEN, LOW);
delay(1000);
digitalWrite(LED_YELLOW, LOW);
delay(1000);
digitalWrite(LED_RED, LOW);
delay(1000);
Serial.println("Todos LEDs DESLIGADOS");
}
void loop() {
if (digitalRead(BUTTON) == LOW) {
delay(50);
if (digitalRead(BUTTON) == LOW) {
ledsOn = !ledsOn;
if (ledsOn) {
ligarLeds();
} else {
desligarLeds();
}
// Espera o botão ser solto
while (digitalRead(BUTTON) == LOW) {
delay(10);
}
}
}
}