void setup() {
int pinesSalida[] = {8,9,10,11};
int pulsadores[] = {5,6,7};
for (int pin = 0; pin < 3; pin++) {
pinMode(pulsadores[pin], INPUT);
}
for (int pin = 0; pin < 4; pin++) {
pinMode(pinesSalida[pin], OUTPUT);
}
}
int contador = 0; // de este contador se basan los pulsadores para definir como encender los leds
void loop() {
if(digitalRead(5)){
contador++;
if(contador > 9){
contador = 9;
}
} // Si el botón de aumentar se aprieta, el contador sube 1 (como debe contar de 0 a 9, restrinjo que no vaya más de 9)
if(digitalRead(6)){
contador--;
if(contador < 0){
contador = 0;
}
} // Si el botón de disminuir se aprieta, el contador baja 1 (como debe contar de 0 a 9, restrinjo que no vaya menos de 0)
if(digitalRead(7)){
contador = 0;
} // si el botón de reseteo se aprieta, el contador vuelve a 0
apagarLeds(); // antes de actualizar los leds según el contador, los apago para que no queden leds de más encendidos
switch(contador){ //en base al contador, hago que los leds enciendan representando bits binarios (se podría haber hecho trnaquilamente con if's, pero me pintó switch)
case 0:
break;
case 1:
digitalWrite(11,HIGH);
break;
case 2:
digitalWrite(10,HIGH);
break;
case 3:
digitalWrite(10,HIGH);
digitalWrite(11,HIGH);
break;
case 4:
digitalWrite(9,HIGH);
break;
case 5:
digitalWrite(9,HIGH);
digitalWrite(11,HIGH);
break;
case 6:
digitalWrite(9,HIGH);
digitalWrite(10,HIGH);
break;
case 7:
digitalWrite(9,HIGH);
digitalWrite(10,HIGH);
digitalWrite(11,HIGH);
break;
case 8:
digitalWrite(8,HIGH);
break;
case 9:
digitalWrite(8,HIGH);
digitalWrite(11,HIGH);
break;
default:
break;
}
delay(250); //Delay de retardo para que el pulsador no aumente varios valores de contador al apretar una única vez
}
void apagarLeds(){
for(int salida = 8; salida < 12; salida++){
digitalWrite(salida, LOW);
}
}