Arduino Tuş Takımlı Güvenlik Paneli
Güvenlik her alanda hayatımızın bir parçası. Toplum, tam olarak hükmedemediği sanal bir dünyada hareket ettikçe güvenlik önlemlerinin alınması kaçınılmaz oluyor. Elektronik uygulamalarda güvenlik denilince akla gelen ilk devre elemanı hiç kuşkusuz tuş takımıdır. Genellikle piyasada 4*3 şeklinde bulunmaktadır. Biz bu projemizde tanımladığımız güvenlik kodunu tuş takımından doğru ve yanlış girmeye çalışarak duruma göre de çıkışları gözlemleyeceğiz.
Kullanılan Malzemeler
- Bir adet Arduino Uno kartı,
- Bir adet 5 mm kırmızı ve yeşil led,
- İki adet 270 ohm direnç,
- Bir adet 4*3 tuş takımı.
Tasarım
Eğer tuş takımı üzerinde doğru bir kodlama yapılırsa yeşil led, yanlış bir kombinasyon olursa kırmızı led yanacaktır. Tuş takımı tasarım olarak ızgara mantığında düzenlenir. Sütun ve satır taraması yapılarak hangi tuşa basıldığı belirlenir.
Kodlar
Kodlamaya başlamadan önce ilk yapmanız gereken şey Keypad kütüphanesini Arduino’ya eklemek olacaktır. Bunun için http://playground.arduino.cc/ uploads/Code/keypad.zip adresinden kütüphaneyi indirip bilgisayarınıza kurmuş olduğunuz, Arduino programının “libraries” dosyanının içine çıkartınız. Şayet kod bloğunuz açıksa programı kapatıp tekrar açın yoksa kütüphaneyi görmeyebilir.
//tuş takımı için gerekli olan // Keypad.h kütüphanesi ekleniyor vî // kendi güvenlik kodumuzu oluşturuyoruz // hangi tuşa basıldığını bilmek için gerekli // olan tuş pozisyonu //tuş takımı satır sayısı //tuş takımı sütun sayısı #include <Keypad.h> char* guvenlik_kodu = "1234"; int position = 0; const byte satir = 4; const byte sutun = 3; char tus[satir][sutun] = { {'1','2','3'}, {'4','5','6'}, {'7','8','9'}, {'*','0','#'} }; byte satir_pinleri[satir] = {2, 7, 6, 4}; byte sutun_pinleri[sutun] = {3, 1, 5}; Keypad keypad = Keypad(makeKeymap(tus), satir_pinleri, sutun_pinleri, satir, sutun); int kirmizi_led = 9; int yesil_led = 8; void setup() { pinMode(kirmizi_led, OUTPUT); pinMode(yesil_led, OUTPUT); setLocked(true); } void loop() { char hangi_tus = keypad.getKey(); if (hangi_tus == '*' || hangi_tus == '#') { position = 0; setLocked(true); } if (hangi_tus == guvenlik_kodu[position]) { position ++; } if (position == 4) { setLocked(false); } delay(100); } void setLocked(int locked) { if (locked) { digitalWrite(kirmizi_led, HIGH); digitalWrite(yesil_led, LOW); } else { digitalWrite(kirmizi_led, LOW); digitalWrite(yesil_led, HIGH); } }