#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <Keypad.h>
#include <Servo.h>
LiquidCrystal_I2C mylcd(0x27,16,2);
volatile int w;
volatile int len;
String key;
Servo servo_3;
const byte KEYPAD_4_4_ROWS = 4;
const byte KEYPAD_4_4_COLS = 4;
char KEYPAD_4_4_hexaKeys[KEYPAD_4_4_ROWS][KEYPAD_4_4_COLS] = {
{'1','4','7','A'},
{'2','5','8','B'},
{'3','6','9','C'},
{'*','0','#','D'}
};
byte KEYPAD_4_4_rowPins[KEYPAD_4_4_ROWS] = {4, 2, 1, 0};
byte KEYPAD_4_4_colPins[KEYPAD_4_4_COLS] = {8, 7, 6, 5};
Keypad KEYPAD_4_4 = Keypad(makeKeymap(KEYPAD_4_4_hexaKeys), KEYPAD_4_4_rowPins, KEYPAD_4_4_colPins, KEYPAD_4_4_ROWS, KEYPAD_4_4_COLS);
void setup(){
Serial.begin(9600);
mylcd.init();
mylcd.backlight();
w = 0;
len = 0;
key = "";
pinMode(11, OUTPUT);
pinMode(10, OUTPUT);
pinMode(9, OUTPUT);
servo_3.attach(3);
pinMode(12, OUTPUT);
}
void loop(){
mylcd.setCursor(1-1, 1-1);
mylcd.print("Enter password:");
while (String(key).length() < 6) {
key = String(key) + String(String(KEYPAD_4_4.getKey()));
for (int i = 0; i <= 5; i = i + (1)) {
if (String(key).charAt(i) == '#') {
key = "";
}
}
}
if (key == "123123") {
mylcd.clear();
mylcd.setCursor(0, 0);
mylcd.print("Enter password:");
mylcd.setCursor(0, 1);
mylcd.print(String("Binggo!") + String(key));
analogWrite(11, 255);
analogWrite(10, 0);
analogWrite(9, 255);
servo_3.write(0);
delay(15);
delay(1000);
analogWrite(11, 0);
analogWrite(10, 0);
analogWrite(9, 0);
servo_3.write(90);
delay(15);
delay(10000);
mylcd.clear();
} else if (w == 2) {
mylcd.clear();
while (len < 6) {
for (int i = 0; i <= 4; i = i + (1)) {
mylcd.setCursor(0, 0);
mylcd.print("Enter password:");
mylcd.setCursor(0, 1);
mylcd.print(String("Waring!") + String(key));
delay(200);
analogWrite(11, 0);
analogWrite(10, 255);
analogWrite(9, 0);
delay(100);
analogWrite(11, 0);
analogWrite(10, 0);
analogWrite(10, 0);
tone(12,131);
delay(100);
noTone(12);
mylcd.clear();
}
delay(10000);
}
} else {
w = w + 1;
mylcd.clear();
mylcd.setCursor(0, 0);
mylcd.print("Enter password:");
mylcd.setCursor(0, 1);
mylcd.print(String("Wrong!") + String(key));
delay(200);
analogWrite(11, 0);
analogWrite(10, 255);
analogWrite(9, 0);
delay(1000);
analogWrite(11, 0);
analogWrite(10, 0);
analogWrite(10, 0);
tone(12,131);
delay(100);
noTone(12);
mylcd.clear();
}
key = "";
}