#include <Keypad.h>
#include <LiquidCrystal_I2C.h>
#include <TM1637.h>
int CLK = 10;
int DIO = 9;
LiquidCrystal_I2C lcd(0x27, 16, 2);
TM1637 tm(CLK,DIO);
const byte ROWS = 4;
const byte COLS = 3;
char keys[ROWS][COLS] = {
{'1','2','3'},
{'4','5','6'},
{'7','8','9'},
{'*','0','#'}
};
byte rowPins[ROWS] = {8, 7, 6, 5};
byte colPins[COLS] = {4, 3, 2};
Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );
short s=0, r=0, t=0, a=0, m=0, i=0;
int red=A3;
int green=A2;
int blue=A1;
int buzzer=A0;
int resb=12;
int turb=11;
int motor=13;
int motortur=0;
int tursayi=0;
bool giris=false;
char keypressed;
char salih[]= {'8','0','0','7','0','2','9','3','5'};
char recep[]= {'3','3','1','5','5','4','5','0','9'};
char tayyip[]= {'2','0','9','4','7','0','7','3','6'};
char ahmet[]= {'4','9','7','8','0','0','4','5','4'};
char mehmet[]= {'5','5','2','0','3','1','1','8','2'};
void setup()
{
Serial.begin(9600);
lcd.init();
lcd.backlight();
lcd.clear();
tm.init();
tm.set(7);
pinMode(red, OUTPUT);
pinMode(green, OUTPUT);
pinMode(blue, OUTPUT);
pinMode(buzzer, OUTPUT);
digitalWrite(blue, HIGH);
digitalWrite(green, HIGH);
digitalWrite(red, LOW);
pinMode(resb, INPUT);
pinMode(turb, INPUT);
pinMode(motor, OUTPUT);
tm.display(3, tursayi % 10);
tm.display(2, tursayi / 10 % 10);
tm.display(1, tursayi / 100 % 10);
tm.display(0, tursayi / 1000 % 10);
}
void loop()
{
keypressed = keypad.getKey();
if(keypressed != NO_KEY&&i!=9)
{
if(keypressed == '8')
{
s++;
i++;
Salihkontrol();
}
if(keypressed == '3')
{
r++;
i++;
Recepkontrol();
}
if(keypressed == '2')
{
t++;
i++;
Tayyipkontrol();
}
if(keypressed == '4')
{
a++;
i++;
Ahmetkontrol();
}
if(keypressed == '5')
{
m++;
i++;
Mehmetkontrol();
}
}
}
void Salihkontrol()
{
while(i!=9)
{
keypressed = keypad.getKey();
if(keypressed != NO_KEY&&i!=9)
{
if(keypressed == salih[i]&& i<sizeof(salih))
{
i++;
s++;
}
else
{
s--;
}
}
}
if(s==sizeof(salih))
{
lcd.clear();
lcd.setCursor(5, 0);
lcd.print("Salih");
lcd.setCursor(1,1);
lcd.print("Access Granted");
digitalWrite(buzzer, HIGH);
delay(100);
digitalWrite(buzzer, LOW);
delay(100);
digitalWrite(buzzer, HIGH);
delay(100);
digitalWrite(buzzer, LOW);
digitalWrite(blue, HIGH);
digitalWrite(green, LOW);
digitalWrite(red, HIGH);
girisyapti();
}
}
void Tayyipkontrol()
{
while(i!=9)
{
keypressed = keypad.getKey();
if(keypressed != NO_KEY&&i!=9)
{
if(keypressed == tayyip[i]&& i<sizeof(tayyip))
{
i++;
t++;
}
else
{
t--;
}
}
}
if(t==sizeof(tayyip))
{
lcd.clear();
lcd.setCursor(5, 0);
lcd.print("Tayyip");
lcd.setCursor(2,1);
lcd.print("Access Denied");
digitalWrite(buzzer, HIGH);
delay(100);
digitalWrite(buzzer, LOW);
delay(5000);
Sifirla();
}
}
void Recepkontrol()
{
while(i!=9)
{
keypressed = keypad.getKey();
if(keypressed != NO_KEY&&i!=9)
{
if(keypressed == recep[i]&& i<sizeof(recep))
{
i++;
r++;
}
else
{
r--;
}
}
}
if(r==sizeof(recep))
{
lcd.clear();
lcd.setCursor(5, 0);
lcd.print("Recep");
lcd.setCursor(2,1);
lcd.print("Access Denied");
digitalWrite(buzzer, HIGH);
delay(100);
digitalWrite(buzzer, LOW);
delay(5000);
Sifirla();
}
}
void Ahmetkontrol()
{
while(i!=9)
{
keypressed = keypad.getKey();
if(keypressed != NO_KEY&&i!=9)
{
if(keypressed == ahmet[i]&& i<sizeof(ahmet))
{
i++;
a++;
}
else
{
a--;
}
}
}
if(a==sizeof(ahmet))
{
lcd.clear();
lcd.setCursor(5, 0);
lcd.print("Ahmet");
lcd.setCursor(2,1);
lcd.print("Access Denied");
digitalWrite(buzzer, HIGH);
delay(100);
digitalWrite(buzzer, LOW);
delay(5000);
Sifirla();
}
}
void Mehmetkontrol()
{
while(i!=9)
{
keypressed = keypad.getKey();
if(keypressed != NO_KEY&&i!=9)
{
if(keypressed == mehmet[i]&& i<sizeof(mehmet))
{
i++;
m++;
}
else
{
m--;
}
}
}
if(m==sizeof(mehmet))
{
lcd.clear();
lcd.setCursor(5, 0);
lcd.print("Mehmet");
lcd.setCursor(2,1);
lcd.print("Access Denied");
digitalWrite(buzzer, HIGH);
delay(100);
digitalWrite(buzzer, LOW);
delay(5000);
Sifirla();
}
}
void girisyapti()
{
while(digitalRead(resb)!=1)
{
while(digitalRead(turb)==1&&motortur!=1000)
{
digitalWrite(motor, HIGH);
delay(1);
digitalWrite(motor, LOW);
delay(1);
motortur++;
if(motortur==1000)
{
motortur=0;
tursayi++;
tm.display(3, tursayi % 10);
tm.display(2, tursayi / 10 % 10);
tm.display(1, tursayi / 100 % 10);
tm.display(0, tursayi / 1000 % 10);
digitalWrite(blue, LOW);
digitalWrite(green, HIGH);
digitalWrite(red, HIGH);
delay(5000);
digitalWrite(blue, HIGH);
digitalWrite(green, LOW);
digitalWrite(red, HIGH);
}
}
}
Sifirla();
}
void Sifirla()
{
lcd.clear();
i=0;
m=0;
a=0;
r=0;
t=0;
s=0;
motortur=0;
tursayi=0;
tm.display(3, tursayi % 10);
tm.display(2, tursayi / 10 % 10);
tm.display(1, tursayi / 100 % 10);
tm.display(0, tursayi / 1000 % 10);
digitalWrite(blue, HIGH);
digitalWrite(green, HIGH);
digitalWrite(red, LOW);
loop();
}