4×4 Tuş takımı ile şifreli kapı kilidi yapımı
Bu projemizde 4×4 tuş takımı ile arduinomuza servo motor bağlayarak kapının kontrolünü sağlıyacağız. Bu projemizi kapıya monte ettiğimizde artık sizinde bir şifreli kapı kilidiniz olacaktır.
Projemizin çalışmasından kısa bahsetmek istiyorum. Projemiz 4×4 tuş takımı ve servo motordan oluşmakta ve program ile belirlediğimiz şifreyi girmemiz halide servo motorun konumunu değiştirerek kapıyı kilitleyip açmaktadır. Projemize ek olarak eklenecek hoparlor yada alarm sistemi ile şifreyi yanlış girmeniz halinde alarmı çalıştırmayı sağlayabilirsiniz.
Bağlantı şeması aşağıdaki gibidir.
Arduino 12. Pin ——-[[[[[]]]]]]]——–LED—— gnd
Arduino 13. pin ——-[[[[[]]]]]]]——–LED—— gnd
Arduino 11. pin SERVO MOTORA BAĞLANMALIDIR
Kırmızı led ve yeşil led ile açılıp kapandığını veya konumunu görebilirsiniz.
Programımız aşağıdaki gibidir.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
|
#include <Password.h> #include <Keypad.h> #include <Servo.h> Servo myservo; Password password = Password( "0000" ); //Kendi sifrenizi belirlemelisiniz const byte ROWS = 4 ; const byte COLS = 4 ; char keys[ROWS][COLS] = { { '1' , '2' , '3' }, { '4' , '5' , '6' }, { '7' , '8' , '9' }, { '*' , '0' , '#' } }; byte rowPins[ROWS] = { 9 , 8 , 7 , 6 }; byte colPins[COLS] = { 5 , 4 , 3 }; Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS ); void setup (){ Serial.begin ( 9600 ); Serial.write ( 254 ); Serial.write ( 0x01 ); delay ( 200 ); pinMode ( 12 , OUTPUT ); //YESIL LED pinMode ( 13 , OUTPUT ); //Kirmizi LED myservo.attach( 11 ); keypad.addEventListener(keypadEvent); } void loop (){ keypad.getKey(); myservo.write( 0 ); } void keypadEvent(KeypadEvent eKey){ switch (keypad.getState()){ case PRESSED: Serial.print ( "Giris:" ); Serial.println (eKey); delay ( 10 ); Serial.write ( 254 ); switch (eKey){ case '*' : checkPassword(); delay ( 1 ); break ; case '#' : password.reset(); delay ( 1 ); break ; default : password.append(eKey); delay ( 1 ); } } } void checkPassword(){ if (password.evaluate()){ Serial.println ( "ACILDI" ); Serial.write ( 254 ); delay ( 10 ); myservo.write( 150 ); digitalWrite ( 12 , HIGH ); //Kapi acildi delay ( 5000 ); //5 sn bekle digitalWrite ( 12 , LOW ); // Yesil ledi kapa } else { Serial.println ( "Sifre HATALI" ); Serial.write ( 254 ); delay ( 10 ); myservo.write( 0 ); digitalWrite ( 13 , HIGH ); //Kirmizi LED acildi delay ( 500 ); //5sn Bekle digitalWrite ( 13 , LOW ); //Kirmizi LEDi KAPA } } |