const int LED1 = 12; // Pin para el LED 1
const int LED2 = 13; // Pin para el LED 2
const int LED3 = 14; // Pin para el LED 3

const int BTN1 = 15; // Pin para el pulsador 1
const int BTN2 = 16; // Pin para el pulsador 2
const int BTN3 = 17; // Pin para el pulsador 3

bool estadoBtn1 = false; // Estado del pulsador 1
bool estadoBtn2 = false; // Estado del pulsador 2
bool estadoBtn3 = false; // Estado del pulsador 3

void setup() {
  Serial.begin(115200);

  pinMode(LED1, OUTPUT);
  pinMode(LED2, OUTPUT);
  pinMode(LED3, OUTPUT);

  pinMode(BTN1, INPUT_PULLUP);
  pinMode(BTN2, INPUT_PULLUP);
  pinMode(BTN3, 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
    digitalWrite(LED2, LOW); // Apagar LED 2
    digitalWrite(LED3, LOW); // Apagar LED 3
    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
    digitalWrite(LED1, LOW); // Apagar LED 1
    digitalWrite(LED3, LOW); // Apagar LED 3
    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
    digitalWrite(LED1, LOW); // Apagar LED 1
    digitalWrite(LED2, LOW); // Apagar LED 2
    Serial.println("Botón 3 enclavado, LED 3 encendido"); 
  }

  // Desenclavar si se presiona otro botón
  if (digitalRead(BTN1) == LOW && estadoBtn1 && (digitalRead(BTN2) == LOW || digitalRead(BTN3) == 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)) {
    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)) {
    estadoBtn3 = false; 
    digitalWrite(LED3, LOW); 
    Serial.println("Botón 3 desenclavado, LED 3 apagado"); 
  }
}
$abcdeabcde151015202530fghijfghij
Loading
esp32-s2-devkitm-1