const int ledVermelho = 12;
const int ledAmarelo = 11;
const int ledVerde = 10;
const int ledAzul = 9;
const int botaoVermelho = 7;
const int botaoAmarelo = 6;
const int botaoVerde = 5;
const int botaoAzul = 4;
const int chaveEsquerda = 3;
const int chaveDireita = 2;
const int botaoSubir = botaoVermelho;
const int botaoDescer = botaoAmarelo;
void setup() {
pinMode(ledAzul, OUTPUT);
pinMode(ledAmarelo, OUTPUT);
pinMode(ledVermelho, OUTPUT);
pinMode(botaoSubir, INPUT);
pinMode(botaoDescer, INPUT);
}
// Variável global
int nivel = 1;
void loop() {
// ENTRADA
int bSubir = digitalRead(botaoSubir);
int bDescer = digitalRead(botaoDescer);
if (bSubir == HIGH) {
nivel++;
if (nivel > 3) {
nivel = 1;
}
//delay(500);
}
if (bDescer == HIGH) {
nivel--;
if (nivel < 1) {
nivel = 3;
}
//delay(500);
}
// SAÍDA
if (nivel == 1) {
digitalWrite(ledAzul, HIGH);
digitalWrite(ledAmarelo, LOW);
digitalWrite(ledVermelho, LOW);
}
else if (nivel == 2) {
digitalWrite(ledAzul, LOW);
digitalWrite(ledAmarelo, HIGH);
digitalWrite(ledVermelho, LOW);
}
else { // nivel == 3
digitalWrite(ledAzul, LOW);
digitalWrite(ledAmarelo, LOW);
digitalWrite(ledVermelho, HIGH);
}
// Nessa posição, evita o delay antes da troca de leds.
if (bSubir == HIGH or bDescer == HIGH) {
delay(500);
}
}