#include <Keypad.h>
#include <Servo.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
Servo puerta;
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 filas[FILAS] = {D2, D3, D4, D5};
byte columnas[COLUMNAS] = {D6, D7, D8, D9};
Keypad keypad = Keypad(makeKeymap(teclas), filas, columnas, FILAS, COLUMNAS);
String password = "6666";
String input = "";
int led = D11;
void setup(){
pinMode(led, OUTPUT);
puerta.attach(D10);
lcd.init();
lcd.backlight();
lcd.print("Ingrese clave");
puerta.write(0);
}
void loop(){
char tecla = keypad.getKey();
if(tecla){
lcd.setCursor(0,1);
lcd.print(input);
input += tecla;
}
if(input.length() == 4){
if(input == password){
lcd.clear();
lcd.print("Puerta abierta");
digitalWrite(led, HIGH);
puerta.write(90);
delay(3000);
}
else{
lcd.clear();
lcd.print("Clave incorrecta");
delay(2000);
}
input = "";
lcd.clear();
lcd.print("Ingrese clave");
}
}