#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#include <Keypad.h>
#define LEBAR 128
#define PANJANG 64
const byte ROWS = 4;
const byte COLS = 4;
char Keys[ROWS][COLS] = {
{'1','2','3','A'},
{'4','5','6','B'},
{'7','8','9','C'},
{'*','0','#','D'}
};
byte rowPins[ROWS] = {14,12,19,18};
byte colPins[COLS] = {5,4,2,15};
Keypad customKeypad = Keypad(makeKeymap(Keys),rowPins,colPins,ROWS,COLS);
char customKey;
int number = 0;
int password = 123123;
int position = 0;
int delPos = 0;
Adafruit_SSD1306 oled(LEBAR, PANJANG, &Wire, -1);
void setup(){
Serial.begin(9600);
if(!oled.begin(SSD1306_SWITCHCAPVCC, 0x3C)){
Serial.println(F("failed to start SSD1306 OLED"));
while(1);
}
delay(2000);
oled.clearDisplay();
oled.setTextSize(1);
oled.setTextColor(WHITE);
oled.setCursor(20,10);
oled.println("WELCOME!!!");
oled.display();
delay(1500);
oled.clearDisplay();
}
void loop(){
oled.setCursor(0,0);
oled.print("Please Input Pass");
oled.display();
customKey = customKeypad.getKey();
switch(customKey){
case '0' ... '9' :
oled.setCursor(0,10);
number = number * 10 + (customKey - '0');
oled.print(number);
oled.display();
position += 1;
break;
case '#' :
if(number == password){
oled.setCursor(0,10);
oled.print("Access Acceoted");
number = 0;
oled.display();
oled.clearDisplay();
}
else{
oled.setCursor(0,10);
oled.print("Invalid Password");
oled.display();
number = 0;
delay(1500);
oled.clearDisplay();
}
break;
case '*' :
number = 0;
oled.clearDisplay();
break;
case 'D' :
oled.clearDisplay();
if(number == 0){
oled.setCursor(0,10);
oled.print("");
}else{
oled.setCursor(0,10);
oled.print(number);
}
oled.setCursor(0,10);
oled.print(number);
oled.display();
position -= 1;
break;
}
}