#include <Keypad.h> //libreria
#include <LiquidCrystal_I2C.h>//libreria i2c
LiquidCrystal_I2C lcd(0x27,20,4);//creamos el objeto lcd(direccion, columna, filas)
#define buzzer 23
const byte filas=4;//tamaño filas
const byte columnas=4;//tamñao columnas
char Keys[filas][columnas]={
{'1', '2', '3', 'A'},
{'4', '5', '6', 'B'},
{'7', '8', '9', 'C'},
{'*', '0', '#', 'D'},
};
byte pinfilas[filas]={18,5,17,16}; //pines filas
byte pincolumnas[columnas]={4,0,2,15}; //pines columnas
//matiz,pinesfilas,pinescolumnas,tamañofilas,tamañocolumnas
Keypad teclado = Keypad(makeKeymap(Keys),pinfilas, pincolumnas,filas,columnas);
void setup() {
pinMode(buzzer, OUTPUT);
lcd.init();//iniciamos el display
lcd.backlight();//encendemos la iluminacion
lcd.setCursor(0,0);//posisicon del cursor
lcd.println("bienvenido");//mensaje por la LCD
Serial.begin(115200);
//Serial.println("Bienvenido");
delay(1000);
lcd.clear();
}
char tecla;
String clave ="1234";
String password;
void loop() {
//Serial.println("Ingrese la clave");
lcd.print("clave");
do{ //hacer mientras
tecla=teclado.getKey(); //leemos el teclado
if(tecla>='0' && tecla<='9'){ //tecla de 0 al 9
tone(buzzer, 440);//tone(prin, frecuencia, duracion)
delay(100);
noTone(buzzer);
lcd.println(tecla); // imprimimos lo teclado
password+=tecla;
}
}while(tecla!='A');
delay(1000);
lcd.clear();
if (password==clave){
lcd.println("Usuario correcto");
}
else{
lcd.println("Clave incorrecta");
}
password="";
delay(5000);
lcd.clear();
lcd.print("clave:");
//tecla=teclado.waitForKey(); //esperando el dato
//limpiamos las variables
}