Arduino Türkiye ProtoShield ile Lazerli Alarm Sistemi
Cevdet // 4 Şubat 2012 // 23 yorum // kategori: Arduino Programlama, Arduino Projeleri, GenelElektroniğ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 !!!
Etiketler:
Merhabalar bu proje’nin çizilmiÅŸ devresi var mı ? varsa eÄŸer benimle iletiÅŸime geçebilirmisiniz. okulda proje olarak bunu yapmayı planlıyordum, bunun devresi çok karışık. yardımlarınız için ÅŸimdiden teÅŸekkürler
Merhabalar
Bu devreyi yapmak istedim fakat şekildeki gibi kurduğum halde bir sonuç alamadım.Nasıl kurabilirim bu devreyi?
Merhaba Ekrem. Devre Tahtası(Breadboard) Kullanımı konusunda bir yanlış yapmıyorsanız devrenin çalışması gerekmektedir.
Bağlantıları ve kullandığınız malzemeleri tekrar kontrol etmenizi tavsiye ederim.
Klasik breadboard.defalarca bağladım fakat sonuca henüz ulaşabilmiş değilim.
lcd nin model kodu ile datsheetini bir karşılaştırın bazı malzemelerin kodunda bir harf değişimi bile farklı bacak bağlantılarını ifade edebilir.
Merhaba sitelerde verilen LCD devreleri genelde 16*2 LCD ler Elimde 20*4 LCD var devreleri bunun uzerinde denıyorum fakat 16*2 gibi calısıyor 4 satırı tam anlamıyla kullanamıyorum bunun ıcın lcd.begin(16, 2); kodunu 20, 4 yaptıgımdada hıcbır sonuc alamıyorum yardımcı olurmusunız
şuradaki örneği denermisin http://www.hacktronics.com/Tutorials/arduino-character-lcd-tutorial.html pin bağlantılarını kendine göre düzenle ama
Yok Hocam Gene Olmadı neden yapamıyorum bilmiyorum ama amaç öğrenmekse çözmem gerekli 🙂
http://i.hizliresim.com/xRkbOZ.jpg
lcd.begin(16,2); komutunu lcd.begin(20,4); ÅŸeklinde düzelttin deÄŸil mi? örnektekini birde lcd.begin(16,4); ÅŸeklinde denermisin… birde ÅŸurada farklı bir ÅŸekilde yapmışlar bir bak http://playground.arduino.cc/LCD/SC2004CSWB
Ben Size bı vıdeo cekıp porgramla beraber gonderıyım hocam
lcd nin kodu ne üstünde ne yazıyor pdf ine baksak daha iyi olurdu
LCD nin Uzerinde Dogru Dürüst Birsey Yazmıyor Resmini Atıyorum
Bunlar Resim Linki
http://i.hizliresim.com/w1vgpY.jpg
http://i.hizliresim.com/K6PXNE.jpg
ve kitaptaki LCDye yazı Yazdırmayı yaptım
[code]
#include
char gelenKarakter;
int gelenKarakterSayisi;
int i;
String yazi = “”;
String kaydirilacakYazi = “”;
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
void setup()
{
Serial.begin(9600);
lcd.begin(20, 4);
lcd.home();
}
void loop()
{
gelenKarakterSayisi = Serial.available();
if(gelenKarakterSayisi > 0 )
{
while(Serial.available()>0)
{
gelenKarakter = Serial.read();
if(gelenKarakter !=’\n’)
{
yazi +=gelenKarakter;
}
else
{
kaydirilacakYazi = yazi;
lcd.clear();
lcd.print(yazi);
yazi = “”;
}
}
}
YaziKaydir(kaydirilacakYazi);
}
void YaziKaydir(String yazi)
{
int sayac;
for (sayac = 0; sayac < 13; sayac++){
lcd.scrollDisplayRight();
delay(250);
}
}[/code]
Buda Videosu gerci telde Normalde Youtubede yan cıkmıs 🙂
http://www.youtube.com/watch?v=iLHQMNp8l2E&feature=youtu.be
şu komutları bi denesene
lcd.setCursor(0,2);
lcd.print(“Row 3”);
lcd.setCursor(0,3);
lcd.print(“Row 4”);
elinize sağlık çok güzel bir örnek olmuş
bugün ARDUİNO Kitabının siparişini verdim
sabırsızlıkla bekliyorum
teşekkürler
Merhaba,
Yazdığınız örnek programlar ile biz amatörlere çok faydalı oluyorsunuz. Program kısmında anlamadığım bir kısım var ” #define BUZZER 2″ olarak tanımlanmış iken neden “pinMode(8,OUTPUT);” yapılmış?
Teşekkürler.
Bu projenin areste baskı devre semasini paylasabilirmisiniz
yukarıdaki breadboardlı resim (fritzing.org) ile yapıldı, programı bilgisayarına yukle yukarıdaki resme bakarak aynısını oluştur daha sonra programda pcb moduna geçince otomatik hem şema hem pcb yi görürsün.
Ömer Koman abi bizim bi ödevimiz var arduino ile bişeyler yapmamız gerekıyor bizde istiyoruz ki şöyle değişik cok fazla gorulmedık birşey olsun istiyoruz yardım edebilirmisin bize ?
foruma gelin sorun. herkes orada. arduinoyu hem ogrenelim hemde proje yapalım derdındeysenız o iÅŸ pek olmuyo baÅŸtan diyeyim. arduino program yapısı, kutuphaneler, seri iletiÅŸim, bt modul, lcd, motor surme, servo kontrol, adc okuma, buton okuma, led yakma projelerini kopyala yapıştır olmadan anlayarak hakkıyla ornekleri yapın projeniz daha hızlı ve kolay biter. verilen odevlerin amacı size bırseyler ogretmek zaten. benımı zamanım olmadığı için kiÅŸisel yardım yapmam imkansız. foruma gelin. çizgi izleyen bir arac sanki guzel olur gibime geliyor herkes yapıyor ama siz guzelını yapın mesela duraklı yol seçimli filan biÅŸe olursa degısık olabilir…
merhabalar aynısını uzaktan kumanda ile yapmak istiyorum proje için yani sistem kumanda ile açılıp kapanacak nasıl yapacağımı bilmiyorum yardımcı olurmusunuz kodlar nelerdir?
garaj kumandaları 433mhz rf modullerle çalılır. rf433 modulleri araştırın. foruma gelin.
bu devrede potansiyometre kaç ohm veya kohm?
4.7k veya 10k olabilir