const int numOutputs = 4; // número de saídas
int outputPins[] = {2, 3, 4, 5}; // pinos das saídas
int button1Pin = 6; // pino do botão 1
int button2Pin = 7; // pino do botão 2
int state1 = 0; // estado do botão 1
int state2 = 0; // estado do botão 2
bool button1Enabled = true; // flag para indicar se o botão 1 está habilitado ou não
void setup() {
for (int i = 0; i < numOutputs; i++) {
pinMode(outputPins[i], OUTPUT);
}
pinMode(button1Pin, INPUT_PULLUP);
pinMode(button2Pin, INPUT_PULLUP);
}
void loop() {
// lê o estado dos botões
state1 = digitalRead(button1Pin);
state2 = digitalRead(button2Pin);
// verifica se o botão 1 foi pressionado e se está habilitado
if (state1 == LOW && button1Enabled) {
// desabilita o botão 1 até que o botão 2 seja pressionado
button1Enabled = false;
// liga as saídas em sequência com um intervalo de 2 segundos entre elas
for (int i = 0; i < numOutputs; i++) {
digitalWrite(outputPins[i], HIGH); // liga a saída
delay(2000); // aguarda 2 segundos
}
}
// verifica se o botão 2 foi pressionado
if (state2 == LOW) {
// reabilita o botão 1
button1Enabled = true;
// desliga as saídas em sequência reversa com um intervalo de 2 segundos entre elas
for (int i = numOutputs - 1; i >= 0; i--) {
digitalWrite(outputPins[i], LOW); // desliga a saída
delay(2000); // aguarda 2 segundos
}
}
}