#include <Keypad.h>
#include<LiquidCrystal_I2C.h>
#define LEDM 26
#define LEDH 27
LiquidCrystal_I2C lcd (0X27, 16, 2);
const int rows = 4;
const int columns = 4;
char keys[rows][columns] = {
{'1','2','3','A'},
{'4','5','6','B'},
{'7','8','9','C'},
{'*','0','#','D'}
};
byte row_pins[rows] = {19,18,5,4};
byte column_pins[columns] = {2,15,13,12};
Keypad keypad = Keypad( makeKeymap(keys), row_pins, column_pins, rows, columns);
char customKey;
int i=0;
int password = 1234;
void setup()
{
lcd.init();
lcd.backlight();
pinMode(LEDM, OUTPUT);
pinMode(LEDH, OUTPUT);
}
void loop() {
lcd.setCursor(0,0);
lcd.print("Password");
customKey = keypad.getKey();
switch (customKey){
case '0' ... '9':
lcd.setCursor(0,1);
i = i*10+(customKey-'0');
lcd.print(i);
break;
case '#':
if (i == password){
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Access Accepted");
digitalWrite(LEDM, LOW);
digitalWrite(LEDH, HIGH);
delay(2500);
i=0;
lcd.clear();
digitalWrite(LEDM, LOW);
digitalWrite(LEDH, LOW);
}
else {
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Invalid Password");
digitalWrite(LEDM, HIGH);
digitalWrite(LEDH, LOW);
delay(2500);
i=0;
lcd.clear();
digitalWrite(LEDM, LOW);
digitalWrite(LEDH, LOW);
}
}
}