void setup() {
pinMode(ledVerde, OUTPUT);
pinMode(ledRojo, OUTPUT);
pinMode(buzzer, OUTPUT);
pinMode(pir, INPUT);
puerta.attach(servoPin);
puerta.write(0);
Serial.begin(9600);
lcd.init();
lcd.backlight();
pantallaInicial();
}
//----------------------------------------
void loop() {
if (!bloqueado) {
detectarMovimiento();
}
if (bloqueado) {
bloqueoSistema();
return;
}
char tecla = keypad.getKey();
if (tecla) {
if (tecla >= '0' && tecla <= '9') {
if (claveIngresada.length() < 4) {
claveIngresada += tecla;
lcd.setCursor(claveIngresada.length() - 1, 2);
lcd.print("*");
}
}
if (tecla == '#') {
verificarClave();
}
if (tecla == '*') {
claveIngresada = "";
lcd.setCursor(0, 2);
lcd.print(" ");
}
}
}
//----------------------------------------
void pantallaInicial() {
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("CONTROL DE ACCESO");
lcd.setCursor(0, 1);
lcd.print("Ingrese Clave:");
}
//----------------------------------------
void verificarClave() {
contadorIntentos++;
if (claveIngresada == claveCorrecta) {
Serial.print("Intento ");
Serial.print(contadorIntentos);
Serial.println(": Correcto");
accesoCorrecto();
intentos = 0;
}
else {
Serial.print("Intento ");
Serial.print(contadorIntentos);
Serial.println(": Incorrecto");
accesoIncorrecto();
intentos++;
if (intentos >= 3) {
bloqueado = true;
Serial.println("Sistema Bloqueado");
}
}
claveIngresada = "";
pantallaInicial();
}