#include <Keypad.h>;
#include <LiquidCrystal_I2C.h>;
LiquidCrystal_I2C lcd(0x27,16,2);
#define buzzer 26
#define led 32
const int BARIS = 4;
const int KOLOM = 4;
char keys[BARIS][KOLOM]={
{'1','2','3','A'},
{'4','5','6','B'},
{'7','8','9','C'},
{'*','0','#','D'}
};
byte rowPins[BARIS]={14,12,19,18};
byte colPins[KOLOM]={5,4,2,15};
Keypad customKeypad = Keypad( makeKeymap(keys),rowPins,colPins,BARIS,KOLOM);
char customKey;
int number = 0;
int password = 4444;
void setup() {
Serial.begin(9600);
lcd.init();
lcd.setBacklight(HIGH);
lcd.setCursor(0,1);
pinMode(buzzer,OUTPUT);
pinMode(led, OUTPUT);
}
void loop() {
lcd.setCursor(0,0);
lcd.print("Input Password:");
customKey = customKeypad.getKey();
switch(customKey){
case '0' ... '9':
lcd.setCursor(0,1);
number = number * 10 + (customKey - '0');
lcd.print(number);
noTone(buzzer);
break;
case '*':
number = 0;
lcd.setCursor(0,1);
lcd.print(" ");
break;
case '#':
if(number==password){
lcd.setCursor(0,1);
lcd.print("Access Granted");
digitalWrite(led, HIGH);
delay(1000);
tone(buzzer,500);
delay(50);
noTone(buzzer);
}else{
lcd.setCursor(0,1);
lcd.print("Wrong Password");
delay(200);
tone(buzzer,1000);
delay(200);
tone(buzzer,800);
delay(2000);
noTone(buzzer);
}
}
}