#include <Keypad.h>
#include <LiquidCrystal.h>
// Configuración del teclado de matriz 4x4
const byte ROWS = 4; // cuatro filas
const byte COLS = 4; // cuatro columnas
char keys[ROWS][COLS] = {
{'1', '2', '3', 'A'},
{'4', '5', '6', 'B'},
{'7', '8', '9', 'C'},
{'*', '0', '#', 'D'}
};
byte rowPins[ROWS] = {22, 24, 26, 28}; // pines a los que están conectadas las filas del teclado
byte colPins[COLS] = {30, 32, 34, 36}; // pines a los que están conectadas las columnas del teclado
Keypad keypad = Keypad(makeKeymap(keys), rowPins, colPins, ROWS, COLS);
// Configuración del LCD
LiquidCrystal lcd(12, 11, 10, 9, 8, 7);
// Contraseña guardada
String password = "123456";
String inputPassword = "";
void setup() {
// Inicialización del LCD
lcd.begin(16, 2);
lcd.print("Ingrese clave:");
// Inicialización del monitor serie
Serial.begin(9600);
}
void loop() {
char key = keypad.getKey();
if (key) {
if (key == '#') {
if (inputPassword == password) {
lcd.clear();
lcd.print("CLAVE CORRECTA");
Serial.println("CLAVE CORRECTA");
} else {
lcd.clear();
lcd.print("CLAVE INCORRECTA");
Serial.println("CLAVE INCORRECTA");
}
inputPassword = ""; // Reiniciar la entrada de la contraseña
} else {
inputPassword += key;
lcd.setCursor(0, 1);
lcd.print(inputPassword);
}
}
}