Keypad ile Servo Kontrolü

Bir önceki yazımızda keypad kullanımına değinmiştik. Bu yazımızda ise keypad ile servo motor kontrol edeceğiz. Keypad ile servo kontrolü sayesinde yaratıcılığınıza bağlı olarak bu şema ve kodlar ile bir çok proje gerçekleştirebilirsiniz.  Bir sonraki yazımızda bu kodlar ile yaptığımız özel güvenlikli kutumuzu okuyabilirsiniz. Şimdi kodumuza dönelim.
Bağlantımızı yine keypad kullanımı yazımızda olduğu gibi yapıyoruz. Aşağıda bağlantı görselimiz verilmiştir.

Yukarıdaki şemaya ek olarak servo motorumuzun bağlantılarını da;

Kahverengi kablo     ==>>    GND
Kırmızı kablo               ==>>    5V
Sarı Kablo                      ==>>   11. Pin

bağlantımızı bu şekilde gerçekleştirdikten sonra aşağıdaki kodlarımızı Arduinomuza yüklüyoruz. Kodları yüklemeden önce, şifre kullanabilmemiz için Password.h kütüphanemizi bilgisayarımıza yüklememiz gerekiyor. Password.h kütüphanesini indirmek için tıklayınız.  Keypad.h kütüphanemizi bir önceki yazımızda yüklediyseniz tekrar yüklemenize gerek yok. Ama yüklemeyenler için kütüphane bağlantısını buraya bırakıyorum. Keypad.h kütüphanesini tıklayarak indirebilirsiniz. 

/* Keypad'imizi sırasıyla:
 * 9-8-7-6-5-4-3-2 pinlerine bağlıyoruz. 
 * Bu pinlerden ilk 4'ü satır sayısını, son 4'ü sütun sayısını belirtmektedir.
 * Eğer sizin keypadinizde 3 sütun varsa 7 pinli olacağı için 2. pini boş bırakınız. Bu durumda sadece A,B,C,D harflerini kullanamayacaksınız. 
 *  
 * Arduino 12. Pin Yeşil led
   Arduino 13. Pin Kırmızı led
   Arduino 11. pin Servo Motor
 */
#include <Password.h>
#include <Keypad.h>
#include <Servo.h>
  
  
Servo myservo;
Password password = Password( "SERHAT" ); //Şifremiz SERHAT. Şifre belirerken keypade yüklenen karakterler içermesine dikkat ediniz. 
const byte ROWS = 4;
const byte COLS = 4;
  
char keys[ROWS][COLS] = 
{
{'1', '2', '3', 'A'}, //karakterleri burada değiştirebilirsiniz. 2. ve 3. satırda karakter değişimi yaptım, inceleyerek siz de kendi şifrenizi belirleyebilirsiniz. 
{'S', 'E', 'R', 'H'},
{'7', 'A', 'T', 'C'},
{'*', '0', '#', 'D'}
};
byte rowPins[ROWS] = { 9, 8, 7, 6 };
byte colPins[COLS] = { 5, 4, 3, 2 };
  
  
  
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);  //Yeşil LED
  pinMode(13, OUTPUT);  //Kırmızı 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(15000); //15 saniye açık kalıyor
    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(15000); //15sn Bekle
    digitalWrite(13, LOW);//Kirmizi LEDi Kapat
      
}
}

 

 

Facebook Yorumları

Bir yanıt yazın

E-Posta adresiniz yayınlanmayacaktır.