#include <Keypad.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <Servo.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
String pad;
const byte numRows = 4;
const byte numCols = 4;
String password = "1007";
char keypressed;
char keymap[numRows][numCols] =
{
{'1', '2', '3', 'A'},
{'4', '5', '6', 'B'},
{'7', '8', '9', 'C'},
{'*', '0', '#', 'D'}
};
byte rowPins[numRows] = {10, 9, 8, 7};
byte colPins[numCols] = {6, 5, 4, 3};
Keypad myKeypad = Keypad(makeKeymap(keymap), rowPins, colPins, numRows, numCols);
int pos1 = 0;
int pos2= 180;
Servo myservo;
int LED = 12;
int Ton = 11;
int Alarm = 1;
float Licht = 4;
float Sound = 5;
void setup() {
myservo.attach(13);
pinMode(LED, OUTPUT);
pinMode(Sound, OUTPUT);
Serial.begin(9600);
lcd.init();
lcd.setCursor(0,0);
lcd.print("4 stall code");
lcd.setCursor(0,1);
lcd.print("D to confirm");
delay(2500);
lcd.clear();
}
void loop() {
readKeypad();
if (keypressed == 'D') {
if (pad == password) {
lcd.setCursor(0, 0);
lcd.clear();
lcd.print("Richtig");
myservo.write(pos1);
delay(50);
delay(1000);
lcd.clear();
lcd.print("you got 1M Gold");
Alarm = (Alarm = 1);
delay(1000);
lcd.clear();
myservo.write(pos2);
delay(50);
} else {
lcd.clear();
lcd.setCursor(0, 0);
Alarm = (Alarm + 1);
Serial.println(Alarm);
lcd.print("Falsch");
if (Alarm == Licht);
{
digitalWrite(LED, HIGH);
delay(250);
digitalWrite(LED, LOW);
delay(250);
}
if (Alarm == Sound);
{
digitalWrite(Ton, HIGH);
delay(1000);
digitalWrite(Ton, LOW);
delay(250);
}
if (Alarm == 5)
{
Alarm = (Alarm = 1);
}
delay(1000);
lcd.clear();
}
} if (keypressed == '*') {
pad = "";
lcd.clear();
}
lcd.setCursor(0, 0);
lcd.print(pad);
delay(100);
}
void readKeypad() {
keypressed = myKeypad.getKey();
if (keypressed != 'D') {
String konv = String(keypressed);
pad += konv;
}
}