#define BTN1 D2
#define BTN2 D3
#define BTN3 D4
#define BTN4 D5
#define LED_ROJO D6
#define LED_VERDE D7
#define LED_AZUL D8
void setup() {
pinMode(BTN1, INPUT_PULLUP);
pinMode(BTN2, INPUT_PULLUP);
pinMode(BTN3, INPUT_PULLUP);
pinMode(BTN4, INPUT_PULLUP);
pinMode(LED_ROJO, OUTPUT);
pinMode(LED_VERDE, OUTPUT);
pinMode(LED_AZUL, OUTPUT);
}
void controlLEDs(int valor) {
int r = LOW, v = LOW, a = LOW;
if (valor <= 3) {
r = HIGH;
} else if (valor <= 5) {
v = HIGH;
} else if (valor <= 7) {
r = HIGH; v = HIGH;
} else if (valor <= 11) {
v = HIGH; a = HIGH;
} else if (valor <= 14) {
a = HIGH;
} else {
r = HIGH; v = HIGH; a = HIGH;
}
digitalWrite(LED_ROJO, r);
digitalWrite(LED_VERDE, v);
digitalWrite(LED_AZUL, a);
}
void loop() {
int b0 = !digitalRead(BTN1);
int b1 = !digitalRead(BTN2);
int b2 = !digitalRead(BTN3);
int b3 = !digitalRead(BTN4);
int numeroFinal = (b3 * 8) + (b2 * 4) + (b1 * 2) + b0;
controlLEDs(numeroFinal);
delay(50);
}