#define led1 2
#define led2 3
#define led3 4
#define led4 5
#define button1 6
#define button2 7
#define button3 8
#define button4 9
#define button5 10
void setup() {
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT);
pinMode(led4, OUTPUT);
pinMode(button1, INPUT);
pinMode(button2, INPUT);
pinMode(button3, INPUT);
pinMode(button4, INPUT);
pinMode(button5, INPUT);
Serial.begin(115200);
Serial.println("Presione un botón (1-5) para controlar los LEDs:");
Serial.println("1: LED 1 ON");
Serial.println("2: LED 2 ON");
Serial.println("3: LED 3 ON");
Serial.println("4: LED 4 ON");
Serial.println("5: todos los LEDs ON");
}
void loop() {
if (Serial.available() > 0) {
int value = Serial.parseInt();
boton(value);
}
// Manejo de los botones físicos
if (digitalRead(button1) == HIGH) {
boton(1);
while (digitalRead(button1) == LOW) {} // espera a que se suelte el botón
delay(50); // debounce
}
if (digitalRead(button2) == HIGH) {
boton(2);
while (digitalRead(button2) == LOW) {}
delay(50);
}
if (digitalRead(button3) == HIGH) {
boton(3);
while (digitalRead(button3) == LOW) {}
delay(50);
}
if (digitalRead(button4) == HIGH) {
boton(4);
while (digitalRead(button4) == LOW) {}
delay(50);
}
if (digitalRead(button5) == HIGH) {
boton(5);
while (digitalRead(button5) == LOW) {}
delay(50);
}
}
void boton(int value) {
digitalWrite(led1, LOW);
digitalWrite(led2, LOW);
digitalWrite(led3, LOW);
digitalWrite(led4, LOW);
switch (value) {
case 1:
digitalWrite(led1, HIGH);
Serial.println("Led 1 ENCENDIDO");
break;
case 2:
digitalWrite(led2, HIGH);
Serial.println("Led 2 ENCENDIDO");
break;
case 3:
digitalWrite(led3, HIGH);
Serial.println("Led 3 ENCENDIDO");
break;
case 4:
digitalWrite(led4, HIGH);
Serial.println("Led 4 ENCENDIDO");
break;
case 5:
digitalWrite(led1, HIGH);
digitalWrite(led2, HIGH);
digitalWrite(led3, HIGH);
digitalWrite(led4, HIGH);
Serial.println("Todos los LEDs ENCENDIDOS");
break;
default:
Serial.println("Número de botón no válido");
break;
}
}