#include <LiquidCrystal_I2C.h>
#include <Wire.h>
#include <Keypad.h>
LiquidCrystal_I2C lcd(0X27,16,2);
int gled=13;
int rled=12;
int bgr=11;
const byte row=4;
const byte col=4;
byte rowp[row]={9,8,7,6};
byte colp[col]={5,4,3,2};
char hexa[row][col]={
{'1','2','3','A'},
{'4','5','6','B'},
{'7','8','9','C'},
{'*','0','#','D'}
};
Keypad mykeypad=Keypad(makeKeymap(hexa),rowp,colp,row,col);
void setup() {
// put your setup code here, to run once:
lcd.init();
lcd.backlight();
pinMode(gled, OUTPUT);
pinMode(gled, OUTPUT);
pinMode(bgr, OUTPUT);
}
void loop() {
// put your main code here, to run repeatedly:
static int pwd=1234;
static int c=0;
static int r=0;
static int p=0;
static int atm=0;
char key=mykeypad.getKey();
lcd.setCursor(0,0);
lcd.print("enter password");
if(key)
{
if(key=='*')
{
if(p==pwd)
{
digitalWrite(gled, HIGH);
tone(bgr,500);
delay(1000);
digitalWrite(gled,LOW);
noTone(bgr);
atm=0;
}
else
{
digitalWrite(rled, HIGH);
tone(bgr,500);
delay(1000);
digitalWrite(rled,LOW);
noTone(bgr);
atm++;
if(atm==3)
{
digitalWrite(rled, HIGH);
tone(bgr,500);
delay(5000);
digitalWrite(rled,LOW);
noTone(bgr);
}
}
lcd.init();
c=0;
p=0;
}
else
{
lcd.setCursor(c,1);
lcd.print("*");
c++;
p=p*10+key - '0';
}
}
}