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.

keypad 4x4

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.

kapi kilidi

 

kapiKilidi

Programımız aşağıdaki gibidir.

Programımız için Gerekli Kodlar
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
     
}
}