#include <Keypad.h>
#include <Servo.h>
#include <LiquidCrystal_I2C.h>
Servo servo;
LiquidCrystal_I2C lcd(0x27,16,2);
const byte filas = 4;
const byte columnas = 4;
char teclas[filas][columnas] = {
{'1','2','3','A'},
{'4','5','6','B'},
{'7','8','9','C'},
{'*','0','#','D'}
};
byte pinesFilas[filas] = {2,3,4,5};
byte pinesColumnas[columnas] = {6,7,8,9};
Keypad keypad = Keypad(makeKeymap(teclas), pinesFilas, pinesColumnas, filas, columnas);
String clave = "";
String claveAbrir = "1234";
String claveCerrar = "4321";
void setup(){
Serial.begin(9600);
servo.attach(10);
servo.write(0);
lcd.init();
lcd.backlight();
lcd.setCursor(0,0);
lcd.print("Ingrese clave:");
}
void loop(){
char tecla = keypad.getKey();
if(tecla){
if(tecla=='#'){
lcd.clear();
if(clave==claveAbrir){
lcd.print("Puerta Abierta");
servo.write(90);
}
else if(clave==claveCerrar){
lcd.print("Puerta Cerrada");
servo.write(0);
}
else{
lcd.print("Clave Incorrecta");
}
delay(2000);
clave="";
lcd.clear();
lcd.print("Ingrese clave:");
lcd.setCursor(0,1);
}
else{
clave+=tecla;
lcd.setCursor(0,1);
lcd.print(clave);
}
}
}