// Definimos los pines para los LEDs y los pulsadores
const int led1Pin = 23;
const int led2Pin = 22;
const int led3Pin = 21;
const int buttonIncrementPin = 18;
const int buttonDecrementPin = 19;
// Contador inicial
int contador = 20;
void setup() {
// Inicializamos los pines de los LEDs como salidas
pinMode(led1Pin, OUTPUT);
pinMode(led2Pin, OUTPUT);
pinMode(led3Pin, OUTPUT);
// Inicializamos los pines de los pulsadores como entradas
pinMode(buttonIncrementPin, INPUT);
pinMode(buttonDecrementPin, INPUT);
// Encender el LED correspondiente al valor inicial del contador
updateLeds();
}
void loop() {
// Leer el estado de los botones
if (digitalRead(buttonIncrementPin) == HIGH) {
contador++;
if (contador > 23) {
contador = 20; // Reiniciar contador al superar 23
}
updateLeds();
delay(200); // Debounce delay
}
if (digitalRead(buttonDecrementPin) == HIGH) {
contador--;
if (contador < 20) {
contador = 20; // Reiniciar contador si es menor que 0
}
updateLeds();
delay(200); // Debounce delay
}
// Agregamos un pequeño delay para la estabilidad del loop
delay(10);
}
void updateLeds() {
// Apagar todos los LEDs
digitalWrite(led1Pin, LOW);
digitalWrite(led2Pin, LOW);
digitalWrite(led3Pin, LOW);
// Encender el LED correspondiente al contador
switch (contador) {
case 21:
digitalWrite(led1Pin, HIGH);
break;
case 22:
digitalWrite(led2Pin, HIGH);
break;
case 23:
digitalWrite(led3Pin, HIGH);
break;
default:
break;
}
}