const int boton1 = 2; // Pin del primer botón
const int boton2 = 4; // Pin del segundo botón
const int boton3 = 16; // Pin del tercer botón
const int botonValidar = 17; // Pin del botón de validación
const int led = 18; // Pin del LED
const int codigoCorrecto[3] = {1, 2, 3}; // Código correcto (1 = boton1, 2 = boton2, 3 = boton3)
int codigoIntroducido[3];
int intentos = 0;
bool bloqueado = false;
void setup() {
pinMode(boton1, INPUT);
pinMode(boton2, INPUT);
pinMode(boton3, INPUT);
pinMode(botonValidar, INPUT);
pinMode(led, OUTPUT);
Serial.begin(9600);
}
void loop() {
if (!bloqueado) {
// Leer botones y guardar el código introducido
for (int i = 0; i < 3; i++) {
while (true) {
if (digitalRead(boton1) == HIGH) {
codigoIntroducido[i] = 1;
break;
}
if (digitalRead(boton2) == HIGH) {
codigoIntroducido[i] = 2;
break;
}
if (digitalRead(boton3) == HIGH) {
codigoIntroducido[i] = 3;
break;
}
}
delay(500); // Retardo para evitar rebotes
}
// Validar el código si se pulsa el botón de validación
if (digitalRead(botonValidar) == HIGH) {
bool esCorrecto = true;
for (int i = 0; i < 3; i++) {
if (codigoIntroducido[i] != codigoCorrecto[i]) {
esCorrecto = false;
break;
}
}
if (esCorrecto) {
Serial.println("Código correcto.");
digitalWrite(led, HIGH); // Encender el LED
delay(5000); // Mantener el LED encendido por 5 segundos
digitalWrite(led, LOW); // Apagar el LED
} else {
Serial.println("Código incorrecto.");
intentos++;
if (intentos >= 3) {
bloqueado = true;
Serial.println("Sistema bloqueado por demasiados intentos fallidos.");
}
}
delay(500); // Retardo adicional tras validar
}
}
}