#include <Servo.h>
#include <Keypad.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
const int filas=4;
const int columnas=4;
char keys[filas][columnas]={
{'1','2','3','A'},
{'4','5','6','B'},
{'7','8','9','C'},
{'*','0','#','D'}
};
byte pinesFila[filas]={9,8,7,6};
byte pinesColumna[columnas]={5,4,3,2};
Keypad teclado=Keypad(makeKeymap(keys), pinesFila, pinesColumna, filas, columnas);
String pass="202323";
String passIngresado;
Servo servo_10;
int intentos = 0;
void setup()
{
lcd.init();
lcd.backlight();
lcd.setCursor(0, 0);
lcd.print("Ingrese codigo:");
Serial.begin(9600);
pinMode(11,OUTPUT);
servo_10.attach(10,500,2500);
servo_10.write(0);
}
void loop()
{
char teclaPrecionada=teclado.getKey();
if(teclaPrecionada){
if(teclaPrecionada>='0' && teclaPrecionada<='9' ){
passIngresado=passIngresado+teclaPrecionada;
tone(11,1000,100);
Serial.println(passIngresado);
lcd.setCursor(0,1);
lcd.print(passIngresado);
}
else{
if(passIngresado.length()>0){
if( passIngresado==pass ){
Serial.println(" Acceso perimitido");
servo_10.write(90);
tone(11,500,1000);
}
else{
Serial.println(" Acceso denegado");
tone(11,100,500);
servo_10.write(0);
intentos++;
if(intentos >= 3){
lcd.clear();
lcd.print("Intentos agotados");
while(1){}
}
}
passIngresado="";
}
else{
Serial.println(" Acceso denegado");
tone(11,100,500);
servo_10.write(0);
intentos++;
if(intentos >= 3){
lcd.clear();
lcd.print("Intentos agotados");
while(1){}
}
}
}
}
}