#include <LiquidCrystal_I2C.h>
#include <TM1637Display.h>
#include <Servo.h>
int pot1 =A0;
int pot2 =A1;
int pot3=A2;
int pot4 =A3;
Servo servo1;
Servo servo2;
LiquidCrystal_I2C lcd(0x27, 16, 2);
int data= 3;
int clock = 2;
TM1637Display display(clock, data);
int secret[4]={1,2,3,4};
void setup() {
lcd.begin(16,2);
lcd.backlight();
lcd.setCursor(0,0);
lcd.print("Enter code: ");
servo1.attach(5);
servo2.attach(6);
closeDoors();
display.setBrightness(0);
}
void loop() {
// put your main code here, to run repeatedly:
int digit1 = map(analogRead(pot1), 0, 1023, 0, 9);
int digit2 = map(analogRead(pot2), 0, 1023, 0, 9);
int digit3 = map(analogRead(pot3), 0, 1023, 0, 9);
int digit4 = map(analogRead(pot4), 0, 1023, 0, 9);
int code = digit1*1000+ digit2*100+digit3*10+digit4*1;
display.showNumberDec(code);
if(digit1==secret[0] &&
digit2==secret[1] &&
digit3==secret[2] &&
digit4==secret[3])
{
lcd.setCursor(0,0);
lcd.print("Right code!!");
delay(2000);
lcd.setCursor(0,1);
lcd.print("Opening doors!! ");
openDoors();
}
else{
lcd.setCursor(0,0);
lcd.print("Wrong code!!");
lcd.setCursor(0,1);
lcd.print(" ");
closeDoors();
}
}
void closeDoors(){
servo1.write(180);
servo2.write(0);
}
void openDoors(){
servo1.write(90);
servo2.write(90);
}