#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#include <Keypad.h>
#define LEBAR_LAYAR 128
#define TINGGI_LAYAR 64
const byte BARIS = 4;
const byte KOLOM = 4;
Adafruit_SSD1306 oled(LEBAR_LAYAR, TINGGI_LAYAR, &Wire, -1);
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 keypad = Keypad(makeKeymap(keys), rowPins, colPins, BARIS, KOLOM);
char customkey;
int number=0;
int password = 9510;
void setup(){
Serial.begin(9600);
if(!oled.begin(SSD1306_SWITCHCAPVCC, 0x3c)){
Serial.println(F("Failed to Start SSD1306 OLED"));
while(1);
}
oled.clearDisplay();
oled.setTextSize(1);
oled.setTextColor(WHITE);
oled.setCursor(20,20);
oled.println("SELAMAT DATANG");
delay(2000);
oled.display();
oled.clearDisplay();
}
void loop(){
oled.setTextSize(1);
oled.setTextColor(WHITE);
oled.setCursor(0,0);
oled.println("INPUT PASSWORD!");
customkey = keypad.getKey();
switch(customkey){
case '0'...'9':
oled.setTextSize(1);
oled.setTextColor(WHITE);
oled.setCursor(0,10);
number = number*10 + (customkey - '0');
oled.print(number);
oled.display();
oled.clearDisplay();
break;
case '#':
if(number == password){
oled.setTextSize(1);
oled.setTextColor(WHITE);
oled.setCursor(0,10);
oled.print("Access Granted");
delay(2000);
number=0;
oled.display();
oled.clearDisplay();
}
else{
oled.setTextSize(1);
oled.setTextColor(WHITE);
oled.setCursor(0,10);
oled.print("Invalid Password");
delay(2000);
number=0;
oled.clearDisplay();
}
break;
case '*':
number=0;
oled.clearDisplay();
break;
}
}