#include <Keypad.h>
#include <LiquidCrystal_I2C.h>
#define led 13
#define buzzer 27
LiquidCrystal_I2C lcd(0x27, 16, 2);
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, ROWS, COLS); //Masukkan info keypad pada library
Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, BARIS, KOLOM);
char customKey;
int number = 0;
// String number = ""
int password = 21;
bool test = false;
void setup() {
Serial.begin(9600);
lcd.init();
lcd.setBacklight(HIGH);
pinMode(led, OUTPUT);
pinMode(buzzer, OUTPUT);
}
void loop() {
lcd.setCursor(0, 0);
lcd.print("Input Password");
customKey = keypad.getKey();
switch (customKey) {
case '0' ... '9':
lcd.setCursor(0, 1);
number = number * 10 + (customKey - '0');
Serial.println(number);
lcd.print(number);
break;
case '#':
if (number == password) {
lcd.setCursor(0, 1);
lcd.print("Access Granted");
number = 0;
digitalWrite(led,HIGH);
delay(3000);
digitalWrite(led,LOW);
lcd.clear();
} else {
//Jika salah, maka
lcd.setCursor(0, 1);
lcd.print("Invalid Password");
digitalWrite(buzzer, HIGH);
delay(2000);
digitalWrite(buzzer, LOW);
number = 0;
lcd.clear();
}
break;
case '*':
number = 0;
lcd.clear();
break;
}
}
// void loop() {
// lcd.setCursor(0, 0);
// lcd.print("Input Password");
// customKey = keypad.getKey();
// char key = keypad.getKey();
// wa += String(key);
// if (key != NO_KEY) {
// Serial.println(key);
// Serial.println(wa);
// }
// }