int boton1 = 2;
int boton2 = 3;
int boton3 = 4;
int boton4 = 5;
int ledRojo = 7;
int ledVerde = 8;
int rele = 9;
String clave = "12334";
String entrada = "";
int intentos = 0;
bool bloqueado = false;
unsigned long tiempoBloqueo = 0;
void setup() {
pinMode(boton1, INPUT);
pinMode(boton2, INPUT);
pinMode(boton3, INPUT);
pinMode(boton4, INPUT);
pinMode(ledRojo, OUTPUT);
pinMode(ledVerde, OUTPUT);
pinMode(rele, OUTPUT);
digitalWrite(ledRojo, LOW);
digitalWrite(ledVerde, LOW);
digitalWrite(rele, LOW);
Serial.begin(9600);
}
void loop() {
if (bloqueado) {
if (millis() - tiempoBloqueo >= 60000) {
bloqueado = false;
intentos = 0;
Serial.println("Sistema desbloqueado. Intente de nuevo.");
} else {
return;
}
}
if (digitalRead(boton1) == HIGH) {
entrada += "1";
Serial.println("Presionado: 1");
delay(300);
}
if (digitalRead(boton2) == HIGH) {
entrada += "2";
Serial.println("Presionado: 2");
delay(300);
}
if (digitalRead(boton3) == HIGH) {
entrada += "3";
Serial.println("Presionado: 3");
delay(300);
}
if (digitalRead(boton4) == HIGH) {
entrada += "4";
Serial.println("Presionado: 4");
delay(300);
}
if (entrada.length() == clave.length()) {
if (entrada == clave) {
digitalWrite(ledVerde, HIGH);
digitalWrite(rele, HIGH);
Serial.println("Clave correcta. Relé activado.");
delay(5000);
digitalWrite(rele, LOW);
digitalWrite(ledVerde, LOW);
} else {
digitalWrite(ledRojo, HIGH);
Serial.println("Clave incorrecta.");
delay(2000);
digitalWrite(ledRojo, LOW);
intentos++;
if (intentos >= 3) {
bloqueado = true;
tiempoBloqueo = millis();
Serial.println("Demasiados intentos. Sistema bloqueado por 1 minuto.");
}
}
entrada = "";
}
}