const int LED1 = 13; // Pin para el LED 1
const int LED2 = 12; // Pin para el LED 2
const int LED3 = 14; // Pin para el LED 3
const int LED4 = 27; // Pin para el LED 4
const int BTN1 = 26; // Pin para el pulsador 1
const int BTN2 = 25; // Pin para el pulsador 2
const int BTN3 = 33; // Pin para el pulsador 3
const int BTN4 = 32; // Pin para el pulsador 4
bool estadoBtn1 = false; // Estado del pulsador 1
bool estadoBtn2 = false; // Estado del pulsador 2
bool estadoBtn3 = false; // Estado del pulsador 3
bool estadoBtn4 = false; // Estado del pulsador 4
void setup() {
Serial.begin(115200);
pinMode(LED1, OUTPUT);
pinMode(LED2, OUTPUT);
pinMode(LED3, OUTPUT);
pinMode(LED4, OUTPUT);
pinMode(BTN1, INPUT_PULLUP);
pinMode(BTN2, INPUT_PULLUP);
pinMode(BTN3, INPUT_PULLUP);
pinMode(BTN4, INPUT_PULLUP);
}
void loop() {
// Botón 1
if (digitalRead(BTN1) == LOW && !estadoBtn1) {
estadoBtn1 = true;
digitalWrite(LED1, HIGH);
estadoBtn2 = false; // Desenclavar botón 2
estadoBtn3 = false; // Desenclavar botón 3
estadoBtn4 = false; // Desenclavar botón 4
digitalWrite(LED2, LOW); // Apagar LED 2
digitalWrite(LED3, LOW); // Apagar LED 3
digitalWrite(LED4, LOW); // Apagar LED 4
Serial.println("Botón 1 enclavado, LED 1 encendido");
}
// Botón 2
if (digitalRead(BTN2) == LOW && !estadoBtn2) {
estadoBtn2 = true;
digitalWrite(LED2, HIGH);
estadoBtn1 = false; // Desenclavar botón 1
estadoBtn3 = false; // Desenclavar botón 3
estadoBtn4 = false; // Desenclavar botón 4
digitalWrite(LED1, LOW); // Apagar LED 1
digitalWrite(LED3, LOW); // Apagar LED 3
digitalWrite(LED4, LOW); // Apagar LED 4
Serial.println("Botón 2 enclavado, LED 2 encendido");
}
// Botón 3
if (digitalRead(BTN3) == LOW && !estadoBtn3) {
estadoBtn3 = true;
digitalWrite(LED3, HIGH);
estadoBtn1 = false; // Desenclavar botón 1
estadoBtn2 = false; // Desenclavar botón 2
estadoBtn4 = false; // Desenclavar botón 4
digitalWrite(LED1, LOW); // Apagar LED 1
digitalWrite(LED2, LOW); // Apagar LED 2
digitalWrite(LED4, LOW); // Apagar LED 4
Serial.println("Botón 3 enclavado, LED 3 encendido");
}
// Botón 4
if (digitalRead(BTN4) == LOW && !estadoBtn4) {
estadoBtn4 = true;
digitalWrite(LED4, HIGH);
estadoBtn1 = false; // Desenclavar botón 1
estadoBtn2 = false; // Desenclavar botón 2
estadoBtn3 = false; // Desenclavar botón 3
digitalWrite(LED1, LOW); // Apagar LED 1
digitalWrite(LED2, LOW); // Apagar LED 2
digitalWrite(LED3, LOW); // Apagar LED 3
Serial.println("Botón 4 enclavado, LED 4 encendido");
}
// Desenclavar si se presiona otro botón
if (digitalRead(BTN1) == LOW && estadoBtn1 && (digitalRead(BTN2) == LOW || digitalRead(BTN3) == LOW || digitalRead(BTN4) == LOW)) {
estadoBtn1 = false;
digitalWrite(LED1, LOW);
Serial.println("Botón 1 desenclavado, LED 1 apagado");
}
if (digitalRead(BTN2) == LOW && estadoBtn2 && (digitalRead(BTN1) == LOW || digitalRead(BTN3) == LOW || digitalRead(BTN4) == LOW)) {
estadoBtn2 = false;
digitalWrite(LED2, LOW);
Serial.println("Botón 2 desenclavado, LED 2 apagado");
}
if (digitalRead(BTN3) == LOW && estadoBtn3 && (digitalRead(BTN1) == LOW || digitalRead(BTN2) == LOW || digitalRead(BTN4) == LOW)) {
estadoBtn3 = false;
digitalWrite(LED3, LOW);
Serial.println("Botón 3 desenclavado, LED 3 apagado");
}
if (digitalRead(BTN4) == LOW && estadoBtn4 && (digitalRead(BTN1) == LOW || digitalRead(BTN2) == LOW || digitalRead(BTN3) == LOW)) {
estadoBtn4 = false;
digitalWrite(LED4, LOW);
Serial.println("Botón 4 desenclavado, LED 4 apagado");
}
}