// importa libreria Keypad
#include <Keypad.h>
#include "LiquidCrystal.h"
#define RS 25
#define EN 12
#define D4 32
#define D5 23
#define D6 33
#define D7 26
#define led 13
LiquidCrystal lcd(RS,EN,D4,D5,D6,D7); // Pines del LCD
const uint8_t ROWS = 4;// define numero de filas
const uint8_t COLS = 4;// define numero de columnas
char keys[ROWS][COLS] = {// define la distribucion de teclas
{ '1', '2', '3', 'A' },
{ '4', '5', '6', 'B' },
{ '7', '8', '9', 'C' },
{ '*', '0', '#', 'D' }
};
uint8_t colPins[COLS] = { 16, 4, 2, 15 };// pines correspondientes a las filas
uint8_t rowPins[ROWS] = { 19, 18, 5, 17 };// pines correspondientes a las columnas
Keypad keypad = Keypad(makeKeymap(keys), rowPins, colPins, ROWS, COLS);// crea objeto con los prametros creados previamente
char clave []="9202"; //Clave para encender led
String inputClave=""; //Variable para almacenar la entrada del teclado
void setup() {
pinMode(led, OUTPUT);
lcd.begin(16, 2);
lcd.clear();
lcd.print("Ingrese clave");
Serial.begin(9600);
}
void loop() {
char key = keypad.getKey(); // obtiene tecla presionada y asigna a variable
if (key){
if (key=='D') { // Se ingresa la tecla "D" para verificar si la clave es correcta
if (inputClave==clave) {
digitalWrite(led, HIGH);
Serial.println("clave correcta");
lcd.clear();
lcd.print("Clave Correcta");
}
else {
digitalWrite(led, LOW);
Serial.println("clave incorrecta");
lcd.clear();
lcd.print("Clave incorrecta");
}
inputClave="";
} else {
inputClave+=key;
Serial.print("Entrada: ");
Serial.println(inputClave);
}
}
}