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 } }
Son yorumlar