Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <LiquidCrystal.h>
- #include <Keypad.h>
- #include <Servo.h>
- int Open = 90;
- int Close = 0;
- int a=0, b=0, c=0, d=0, e=0,g=0;
- int var=0;
- // Код доступа к двери:
- const int C1=5,C2=6,C3=7,C4=8,C5=9,C6=0;
- char f = '*';
- // Клавиатура
- const int rows = 4;
- const int cols = 4;
- char keys[rows][cols] =
- {
- {'1','2','3','A'},
- {'4','5','6','B'},
- {'7','8','9','C'},
- {'*','0','#','D'}
- };
- // Подключение пинов клавиатуры
- byte pinrows[rows] = {6, 5, 4, 3};
- byte pincols[cols] = {2, 1, 0, 7};
- int servostate;
- Servo myservo;
- // Инициализация клавиатуры и экрана
- Keypad keypad = Keypad(makeKeymap(keys), pinrows, pincols, rows, cols );
- LiquidCrystal lcd(8,9,10,11,12,13);
- void setup()
- {
- lcd.begin(16,2);
- pinMode(A0,OUTPUT);
- pinMode(A1,OUTPUT);
- myservo.attach(7);
- myservo.write(Close);
- servostate = 0;
- }
- void loop()
- {
- char key = keypad.getKey();
- if(key)
- {
- lcd.setCursor(6+var,1);
- lcd.print(key);lcd.setCursor(6+var,1);delay(100);lcd.print(f);
- var++;
- if(key == 'C')
- {
- lcd.clear();
- a=0;b=0;c=0;d=0;e=0;g=0;var=0;
- return;
- }
- key=key-48;
- switch(var)
- {
- case 1:
- a=key;
- break;
- case 2:
- b=key;
- break;
- case 3:
- c=key;
- break;
- case 4:
- d=key;
- break;
- case 5:
- e=key;
- break;
- case 6:
- g=key;
- delay(50);
- if(a==C1 && b==C2 && c==C3 && d == C4 && e == C5 && g == C6)
- {
- lcd.clear();
- lcd.setCursor(4,0);
- lcd.print("DOOR");
- lcd.setCursor(5,1);
- if(servostate == 0)
- {
- lcd.print("OPEN");
- myservo.write(Open);
- servostate = 1;
- digitalWrite(A0,HIGH);
- delay(5000);
- digitalWrite(A0,LOW);
- lcd.clear();
- lcd.print("DOOR ");
- lcd.print("CLOSING...");
- myservo.write(Close);
- servostate = 0;
- digitalWrite(A1,HIGH);
- delay(2000);
- digitalWrite(A1,LOW);
- }
- digitalWrite(A1,HIGH);
- delay(1000);
- lcd.clear();
- digitalWrite(A1,LOW);
- }
- else
- {
- lcd.clear();
- lcd.setCursor(4,0);
- lcd.print("PASSWORD");
- lcd.setCursor(4,1);
- lcd.print("INVALID");
- digitalWrite(A1,HIGH);
- delay(1000);
- lcd.clear();
- digitalWrite(A1,LOW);
- }
- var=0;
- lcd.clear();
- break;
- }
- }
- if(!key)
- {
- lcd.setCursor(0,0),lcd.print("WELCOME");
- }
- delay(2);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement