Arduino ile Şifreli Kapı Kilidi (Keypad ve Servo Motor Kullanarak)
Arduino ile Şifreli Kapı Kilidi (Keypad ve Servo Motor Kullanarak)
Merhaba sevgili Arduino severler!
Bu yazımızda, Arduino kullanarak basit ama etkili bir şifreli kapı kilidi projesi geliştireceğiz. Projemizde bir tuş takımı (keypad) ve bir servo motor kullanacağız. Bu proje, hem Arduino'nun temel prensiplerini anlamanıza yardımcı olacak hem de elektronik ve programlama becerilerinizi geliştirmenizi sağlayacak.
Gerekli Malzemeler
- Arduino Uno (veya benzeri bir Arduino kartı)
- 4x4 Tuş Takımı (Keypad)
- Servo Motor (SG90 gibi küçük bir servo yeterli olacaktır)
- Breadboard
- Jumper Kablolar
- Güç Kaynağı (Arduino için)
Devre Şeması ve Bağlantılar
Şimdi de devremizi nasıl kuracağımıza göz atalım. Aşağıdaki bağlantıları dikkatlice uygulayın:
Tuş Takımı (Keypad) Bağlantısı
Tuş takımı bağlantıları Arduino pinlerine aşağıdaki gibi yapılmalıdır:
- Tuş takımının 1. pini -> Arduino Dijital Pin 2
- Tuş takımının 2. pini -> Arduino Dijital Pin 3
- Tuş takımının 3. pini -> Arduino Dijital Pin 4
- Tuş takımının 4. pini -> Arduino Dijital Pin 5
- Tuş takımının 5. pini -> Arduino Dijital Pin 6
- Tuş takımının 6. pini -> Arduino Dijital Pin 7
- Tuş takımının 7. pini -> Arduino Dijital Pin 8
- Tuş takımının 8. pini -> Arduino Dijital Pin 9
Servo Motor Bağlantısı
Servo motorun bağlantıları ise şu şekilde olmalıdır:
- Servo Motor Sinyal pini (genellikle sarı veya turuncu) -> Arduino Dijital Pin 10
- Servo Motor VCC pini (genellikle kırmızı) -> Arduino 5V
- Servo Motor GND pini (genellikle kahverengi veya siyah) -> Arduino GND
Arduino Kodu
Aşağıdaki Arduino kodunu Arduino IDE'sine kopyalayın ve kartınıza yükleyin. Kodu açıklayarak anlamanızı kolaylaştıracağım:
#include <Keypad.h>
#include <Servo.h>
const byte ROWS = 4; //dört satır
const byte COLS = 4; //dört sütun
char keys[ROWS][COLS] = {
{'1','2','3','A'},
{'4','5','6','B'},
{'7','8','9','C'},
{'*','0','#','D'}
};
byte rowPins[ROWS] = {2, 3, 4, 5}; //Satır pinleri
byte colPins[COLS] = {6, 7, 8, 9}; //Sütun pinleri
Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );
Servo myservo; // Servo nesnesi oluştur
const int servoPin = 10;
String password = "1234"; // Şifremiz
String enteredPassword = "";
void setup() {
Serial.begin(9600);
myservo.attach(servoPin); // Servoyu pin 10'a bağla
myservo.write(0); // Başlangıç pozisyonu (kilitli)
}
void loop() {
char key = keypad.getKey();
if (key){
Serial.println(key);
enteredPassword += key;
if(enteredPassword.length() == password.length()){
if(enteredPassword == password){
Serial.println("Şifre doğru!");
// Kilidi aç
myservo.write(90); // Servoyu 90 dereceye getir (kilidi aç)
delay(3000); // 3 saniye açık tut
myservo.write(0); // Servoyu geri getir (kilidi kapat)
enteredPassword = ""; // Şifreyi sıfırla
} else {
Serial.println("Şifre yanlış!");
enteredPassword = ""; // Şifreyi sıfırla
}
}
}
}
Kod Açıklaması:
- #include <Keypad.h> ve #include <Servo.h>: Gerekli kütüphaneleri ekliyoruz.
- const byte ROWS = 4; const byte COLS = 4;: Tuş takımımızın boyutlarını tanımlıyoruz.
- char keys[ROWS][COLS] = {...};: Tuş takımındaki tuşların dizilimini belirtiyoruz.
- byte rowPins[ROWS] = {2, 3, 4, 5}; byte colPins[COLS] = {6, 7, 8, 9};: Satır ve sütun pinlerini tanımlıyoruz.
- Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );: Keypad nesnesini oluşturuyoruz.
- Servo myservo;: Servo motor için bir nesne oluşturuyoruz.
- const int servoPin = 10;: Servo motorun bağlı olduğu pini belirtiyoruz.
- String password = "1234";: Doğru şifreyi tanımlıyoruz. Bu kısmı istediğiniz gibi değiştirebilirsiniz.
- String enteredPassword = "";: Girilen şifreyi tutacak değişkeni tanımlıyoruz.
- setup() fonksiyonu: Seri haberleşmeyi başlatıyor, servo motoru bağlıyor ve başlangıç pozisyonuna getiriyoruz.
- loop() fonksiyonu: Sürekli olarak tuş takımından giriş bekliyor, girilen şifreyi kontrol ediyor ve doğruysa kilidi açıyor.
Projenin Çalışması
Devreyi kurduktan ve kodu yükledikten sonra, seri monitörü açarak tuş takımından şifreyi girmeye başlayabilirsiniz. Doğru şifreyi girdiğinizde, servo motor harekete geçerek kilidi açacaktır. Yanlış şifre girdiğinizde ise, "Şifre yanlış!" mesajını göreceksiniz.
Geliştirme İmkanları
Bu proje oldukça basit bir başlangıç noktası. Projeyi daha da geliştirmek için şunları yapabilirsiniz:
- Farklı bir servo motor kullanarak daha güçlü bir kilit mekanizması oluşturabilirsiniz.
- LCD ekran ekleyerek girilen şifreyi ve diğer bilgileri görüntüleyebilirsiniz.
- RFID okuyucu ekleyerek şifre yerine kartla da kilidi açma özelliği ekleyebilirsiniz.
- Alarm sistemi entegre ederek yetkisiz giriş denemelerinde alarm çalmasını sağlayabilirsiniz.
Umarım bu proje size Arduino ile ilgili yeni şeyler öğretmiştir. İyi eğlenceler!
Etiketler: Arduino, Şifreli Kapı Kilidi, Keypad, Servo Motor, Proje, Elektronik, Kodlama, Hobi
```
0 yorum: