#include <Wire.h>
#include <Servo.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
Servo myServo;
int pos;
int udah;
String code = "1332121";
String inputCode = "";
void teks(String text, int col, int row) {
lcd.setCursor(col, row);
for (int i = 0; i < text.length(); i++) {
lcd.print(text[i]);
delay(200);
}
}
void addDigit(char digit) {
if (inputCode.length() < 7) {
inputCode += digit;
lcd.setCursor(inputCode.length() - 1, 1);
lcd.print(digit);
}
}
void checkPassword() {
lcd.clear();
if (inputCode == code) {
lcd.print("bener cuyy :D");
} else {
lcd.print("yah salah :(");
}
delay(2000);
inputCode = "";
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Password:");
}
void setup() {
pinMode(13, INPUT_PULLUP);
pinMode(12, INPUT_PULLUP);
pinMode(11, INPUT_PULLUP);
pinMode(10, INPUT_PULLUP);
pinMode(9, INPUT_PULLUP);
myServo.attach(6);
lcd.init();
pos = 3;
udah = 0;
delay(1000);
for (int i = 90; i > pos; i--) {
myServo.write(i);
if (i == pos) {
break;
}
delay(30);
}
lcd.backlight();
delay(3000);
lcd.clear();
teks("hai zaskia :D", 1, 0);
delay(4000);
lcd.clear();
teks("maaf ya kalo aku", 0, 0);
teks("telat ngasih", 2, 1);
delay(700);
lcd.clear();
teks("hadiah ini ke", 1, 0);
teks("kamu :(", 3, 1);
delay(4000);
lcd.clear();
teks("btw, coba kamu", 1, 0);
teks("ambil suratnya", 1, 1);
delay(500);
lcd.clear();
teks("tapi jangan di", 1, 0);
teks("buka dulu ya", 2, 1);
}
void loop() {
if (digitalRead(9) == LOW && udah == 0) {
lcd.clear();
teks("kalo kamu mau", 1, 0);
teks("dapat hadiahnya", 0, 1);
delay(1000);
lcd.clear();
teks("kamu harus", 2, 0);
teks("memasukkan kode", 0, 1);
delay(4000);
lcd.clear();
teks("coba kamu", 3, 0);
teks("buka suratnya :D", 0, 1);
delay(6000);
lcd.clear();
teks("Password:", 0, 0);
udah = 1;
}
if (digitalRead(9) == LOW && digitalRead(12) == LOW && udah == 1) {
addDigit('1');
delay(200);
}
if (digitalRead(9) == LOW && digitalRead(11) == LOW && udah == 1) {
addDigit('2');
delay(200);
}
if (digitalRead(9) == LOW && digitalRead(13) == LOW && udah == 1) {
addDigit('3');
delay(200);
}
if (digitalRead(9) == LOW && digitalRead(10) == LOW && udah == 1) {
checkPassword();
delay(200);
}
}