You are on page 1of 5

 Memanggil library yang akan digunakan

#include <EEPROM.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <Password.h>
#include <Keypad.h>
#include <SPI.h>

 Setting alamat LCD


LiquidCrystal_I2C lcd(0x27, 16, 2);

 Inisialisasipassword
Password password = Password("1234");

 Inisialisasijumlahbarisdankolomkeypad
const byte ROWS = 4;
const byte COLS = 4;

 Deklarasimatrikskeypad
char keys[ROWS][COLS] = {
{'1','2','3','A'},
{'4','5','6','B'},
{'7','8','9','C'},
{'*','0','#','D'}
};

 Inisialisasi pin keypad


byte rowPins[ROWS] = { 6,5,4,3 };
byte colPins[COLS] = { A3,A2,A1,A0, };
 Perintah setup
void setup(){
Serial.begin(9600);
lcd.begin();
SPI.begin();
keypad.addEventListener(keypadEvent);
pinMode(doorLock, OUTPUT);
digitalWrite(doorLock, HIGH);
tone (buzzer,1200);
lcd.setCursor (0,0);
lcd.print(F(" RFID & KEYPAD "));
lcd.setCursor (0,1);
lcd.print(F(" Control Access "));
delay (2000);
lcd.clear();
noTone (buzzer);}

 Perintahsaatpassword dimasukkan
void keypadEvent(KeypadEventeKey){
switch (keypad.getState()){
case PRESSED:
Serial.print("Pressed: ");
Serial.println(eKey);
pwMode =1;
pwPos=pwPos+1;
if(pwPos==1){lcd.clear();}
lcd.setCursor (0,0);
lcd.print(F("Password Entered"));
if(pwPos<5){lcd.setCursor (5+pwPos,1);
lcd.print(F("*"));
}

switch (eKey){
case '*': checkPassword(); break;
case '#': password.reset();; break;
default: password.append(eKey);
}
}
}

 Perintahuntukmengecekpasswordbenaratausalah
void checkPassword(){
if (password.evaluate()){
Serial.println(" -Accepted- ");
lcd.setCursor (0,1);
lcd.print(F(" Password Benar "));
ACCEPT ();
password.reset();
pwPos=0;
}

else{
Serial.println(" -Rejected- ");
lcd.setCursor (0,1);
lcd.print(F("Password Salah"));
alarm = alarm+1;
RIJECT ();
password.reset();
pwPos=0;
}}
 Perintahsaat password yang dimasukkansalahsebanyak 3 kali
if (alarmStat == 1) {
lcd.setCursor (0,0);
lcd.print(F(" System LOCKED! "));
lcd.setCursor (0,1);
lcd.print(F(" Please Wait : "));
for(inti=60; i>0; i--){
tone (buzzer,1800);
lcd.setCursor (13,1); lcd.print(i);
lcd.print(F(" "));delay (1000);}
noTone (buzzer);
alarmStat = 0;
alarm = 0;
}

You might also like