1#include <Servo.h>
2#include <Keypad.h>
3
4Servo ServoMotor;
5char* password = "427";
6int position = 0;
7const byte ROWS = 4;
8const byte COLS = 4;
9char keys[ROWS][COLS] = {
10{'1','2','3','A'},
11{'4','5','6','B'},
12{'7','8','9','C'},
13{'*','0','#','D'}
14};
15
16byte rowPins[ROWS] = { 8, 7, 6, 9 };
17byte colPins[COLS] = { 5, 4, 3, 2 };
18Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );
19int RedpinLock = 12;
20int GreenpinUnlock = 13;
21
22void setup()
23{
24pinMode(RedpinLock, OUTPUT);
25pinMode(GreenpinUnlock, OUTPUT);
26ServoMotor.attach(11);
27LockedPosition(true);
28}
29
30void loop()
31{
32char key = keypad.getKey();
33if (key == '*' || key == '#')
34{
35position = 0;
36LockedPosition(true);
37}
38if (key == password[position])
39{
40position ++;
41}
42if (position == 3)
43{
44LockedPosition(false);
45}
46delay(100);
47}
48void LockedPosition(int locked)
49{
50if (locked)
51{
52digitalWrite(RedpinLock, HIGH);
53digitalWrite(GreenpinUnlock, LOW);
54ServoMotor.write(11);
55}
56else
57{
58digitalWrite(RedpinLock, LOW);
59digitalWrite(GreenpinUnlock, HIGH);
60ServoMotor.write(90);
61}
62}