#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#define LEBAR_LAYAR 128 // Lebar layar OLED yang digunakan
#define TINGGI_LAYAR 64 // Tinggi layar OLED yang digunakan
Adafruit_SSD1306 oled(LEBAR_LAYAR, TINGGI_LAYAR, &Wire, -1);
#include <Keypad.h>
#define ledBenar 26
#define ledSalah 27
const byte baris = 4;
const byte kolom = 4;
char keys[baris][kolom] = {
{'1', '2', '3', 'A'},
{'4', '5', '6', 'B'},
{'7', '8', '9', 'C'},
{'*', '0', '#', 'D'}
};
byte pinBaris[baris] = {14, 12, 19, 18};
byte pinKolom[kolom] = {5, 4, 2, 15};
char key;
String keyAkhir;
String password = "4321";
Keypad keypad = Keypad( makeKeymap(keys), pinBaris, pinKolom, baris, kolom );
int display=0;
void setup() {
Serial.begin(115200);
if (!oled.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {
Serial.println(F("failed to start SSD1306 OLED"));
while (1);
}
pinMode(ledBenar,OUTPUT);
pinMode(ledSalah,OUTPUT);
oled.clearDisplay();
oled.setTextSize(1);
oled.setTextColor(WHITE);
oled.display();
}
void loop() {
key = keypad.getKey();
if (key) {
if(key=='*'){
oled.clearDisplay();
keyAkhir="";
display=0;
}
}
if(display==0){
digitalWrite(ledBenar,LOW);
digitalWrite(ledSalah,LOW);
oled.setTextSize(1);
oled.setTextColor(WHITE);
oled.setCursor(0, 0);
oled.println("Masukkan Password!");
oled.display();
oled.setTextSize(1);
oled.setTextColor(WHITE);
oled.setCursor(0, 10);
oled.println(keyAkhir);
oled.display();
key = keypad.getKey();
if (key) {
if(key=='#'){
oled.clearDisplay();
display=1;
}else if(key=='*'){
oled.clearDisplay();
keyAkhir="";
display=0;
}else{
keyAkhir = keyAkhir + key;
}
}
if(display==1){
if (keyAkhir == password) {
digitalWrite(ledBenar,HIGH);
oled.clearDisplay();
oled.setTextSize(1);
oled.setTextColor(WHITE);
oled.setCursor(0,0);
oled.println("Password Benar");
oled.setCursor(0,10);
oled.println("Led: Hijau");
oled.display();
} else {
digitalWrite(ledSalah,HIGH);
oled.clearDisplay();
oled.setTextSize(1);
oled.setTextColor(WHITE);
oled.setCursor(0,0);
oled.println("Password Salah");
oled.setCursor(0,10);
oled.println("Led: Merah");
oled.display();
key = keypad.getKey();
}
}
}
}