Arduino Türkiye ProtoShield ile Lazerli Alarm Sistemi
Elektroniğe yeni başlayanlar genellikle led yakıp söndürerek bu hobiye başlarlar. İlk başta bir led yanıp söner ama yetmez, bir adım ileri gidip iki led yanıp söner, o da yetmeyince bir kaç led daha eklenip karaşimşek devresi yapılır. Herkes bu şekilde başlamasa da genellikle bu şekilde başlar ve hep daha ilginç birşeyler yapma hevesiyle devam eder.
Bu yazıda anlatacağım proje de ledlerle birşeyler yapıp daha ilginç bir projeye adım atmak isteyenlerin dikkatini çekecektir diye düşünüyorum. Üstelik Arduino sayesinde bu projeyi yapmak o ilk günkü led yakıp söndürmek kadar kolay. Bu kadar laf yeter. Şimdi işimize dönelim.
Bu videoda projemizin çalışan halini görebilirsiniz
Projemizi özetlersek;
Filmlerde gördüğünüz lazerli alarm sistemlerinin en basit mantıkla yapılmış hali diyebiliriz. Yani bir kapıya yerleştirilmiş olan lazer ışını kesildiği an(önünden biri geçtiği zaman veya bir engelle karşılaştığı an) led, buzzer veya farklı şekillerde alarm veren bir devre.
Projemiz için gerekli malzemeler;
1 x Arduino Uno (ben Uno kullandım fakat diğer Arduino çeşitleri de neredeyse hiçbir değişiklik yapmadan kullanılabilir)
1 x Arduino Türkiye ProtoShield (veya herhangi bir breadboard)
1 x Karakter LCD
1 x Potansiyometre (ayarlı direnç)
1 x LDR (ışığa duyarlı direnç)
1 x 10K Direnç
1 x Mantar Led
1 x Buzzer
1 x Lazer Pointer (oyuncakçılarda satılan bildiğimiz lazer)
Projenin gerçekleştirilmesi için öncelikle breadboarda devrenin kurulması gerekmektedir. Bunun için Fritzing ile oluşturduğum görsel yardımcı olabilir.
Görselde de görüldüğü üzere devremizde buzzer yok. Bir engelle karşılaştığı zaman led yakarak haber veriyor. İstendiği takdirde led yerine buzzer veya başka bir dijital pine de buzzer bağlanabilir. Bunun için yazılımımızda led için yaptıklarımızın aynısını buzzer için de yapmanız gerekmektedir.
LCD kullanımına şu adreste Kaan Ceyhan arkadaşımız anlattığı için değinmeyeceğim.
Devremizi kurduktan sonra sıra geldi programımızı(sketch) yazmaya.
#include <LiquidCrystal.h> // LCD kütüphane kodu ekleniyor #define LED 13 // Uyarı ledinin bağlı olduğu dijital pin #define BUZZER 2 // Uyarı buzzerının bağlı olduğu dijital pin
LiquidCrystal lcd(7, 8, 9, 10, 11, 12); // LCD bağlantılarının Arduinomuzda bağlı olduğu pinler const int analogInPin = A5; // LDR'nin bağlı olduğu analog pin int sensorValue = 0; // LDR'den aldığımız değeri tutacak olan değişkenimizin değerini sıfırlıyoruz void setup() { lcd.begin(16, 2); // LCD'nin satır ve sütun sayısı pinMode(13, OUTPUT); //LED'in pinini çıkış olarak ayarlıyoruz pinMode(8,OUTPUT); //Buzzer'ın pinini çıkış olarak ayarlıyoruz } void loop() { lcd.clear(); //LCD'deki karakterleri temizliyoruz sensorValue = analogRead(analogInPin); // Analog pinimizden gelen LDR değerini okuyup değişkenimizi atıyoruz lcd.setCursor(0,0); lcd.print("Sensor:"); lcd.setCursor(8, 0); lcd.print(sensorValue); lcd.setCursor(0,1); lcd.print("LED & BUZZER:"); if (sensorValue <= 840){ digitalWrite(LED,LOW); digitalWrite(BUZZER,LOW); lcd.setCursor(13,1); lcd.print("OFF"); } else{ digitalWrite(LED,HIGH); digitalWrite(BUZZER,HIGH); lcd.setCursor(13,1); lcd.print("ON"); } delay(100); }
Sketchimizin yaptığı iş kısaca şu;
LDR ışığa duyarlı bir direnç olduğundan ışık şiddetiyle ters orantılı olarak bize bir direnç gösterir. Yani ışık şiddeti arttıkça direnç azalır, ışık şiddeti azaldıkça direnç artar.
” if (sensorValue <= 840){ ” satırında gördüğünüz 840 değeri benim devreyi test ettiğim ortamdaki ışık şiddetine göre optimize edilmiş bir değerdir. Normalde LDR’ye lazer tutulduğunda sensör değerimiz 900 civarında görünmektedir, minimum okuduğum değer 840 olduğundan ben bu değerin altına düştüğünde sistemin alarm vermesini istediğimden bu değeri seçtim. Siz ortama göre bu değeri kalibre edebilirsiniz.
Sistemin kurulabilmesi için lazeri harici bir pil veya Arduinonun besleme pinlerinden besleyebilirsiniz.
Hepinize kolay gelsin !!!









