Herkese merhaba bu yazıda olabildiğince fazla elemanı bir arada kullanamaya çalışacağım. Yapılan çalışma da amaç meşhur ultrasonik ses sensörü ile (mesafe sensörü) istenilen şartlardaki mesafe elde edildiğinde (20 cm) elde edilen verinin seri port ile karşı taraftaki arduino’ya gönderilmesi olayı ele alınacak ve karşı tarafa gelen sinyal ile slave modda ki arduino’muz fotoğraf çekecek. Fotoğrafı çekme olayında özel bir shield kullanmadım elimdeki mevcut fotoğraf makinesini parçaladım ve fotoğraf çekme butonuna röleden gelen 2 adet kablomu bağladım eğer röle’den sinyal gelirse sanki tuşa basmış gibi olacağız ve fotoğraf çekme işlemini gerçekleştireceğiz. Ne demek istediğimi aşağıdaki video da göstereyim.
Şimdi biraz da arduino’lar arası seri haberleşmeden bahsetmeye çalışayım. Seri haberleşmeyi tek şeritli bir yol gibi düşünebiliriz karşılıklı olarak veri gönderilip alınamaz (eş zamanlı) bir cihaz veri gönderir diğer cihaz verileri sürekli alır ya da tam tersi şeklinde olur. Veriler sürekli, adından da anlaşılacağı üzere seri bir şekilde akarlar. Bu seri veri iletişimini bilgisayarlarımızda ki usb portlarından sağlayacağız usb port her yerde usb porttur ve kullanışı aynıdır zaten açılımıda Universal Serial Bus’tır (Evrensel Seri Veriyolu). Ben arduino’ları kablo ile haberleştireceğim burada haberleşme için ayrılmış özel pinler vardır TX, RX pinleri. TX pini Transmit’den gelir ve veriyi gönderen pindir. RX pini ise Receive’den gelir ve verileri alan pindir. Bağlantı yapılırken bu pinler ters bağlanmalıdırlar. Unutulmaması gereken bir diğer nokta iki cihaz haberleşirken iki cihazın topraklamaları ortak olmalıdır (bir cihazın toprağını direk diğer cihazın toprağına kablo ile bağlayın). Bu ön bilgileri verdikten sonra bağlantı şemamıza bakalım.
Bağlantıyı tam da bu şekilde yaptıktan sonra artık iki cihaz arası haberleşmiş olursunuz soldaki kart veriyi gönderecek (master), sağda ki kart ise veriyi alacak (slave).
Şimdi kod kısmın da verileri göndereceğimiz kısıma bakalım;
void setup() { Serial.begin(9600); pinMode(5,OUTPUT); pinMode(6,INPUT); } void loop() { int sure,mesafe; digitalWrite(5,HIGH); delayMicroseconds(1000); digitalWrite(5,LOW); sure=pulseIn(6,HIGH); mesafe=sure/58;//buraya kadar standart uzaklık sensörü kodları if(mesafe<20)//20 cm'den aşağı ise diğer arduino'ya işaret yolluyoruz. { Serial.println("1"); } else { Serial.println("0"); } }
Şimdi diğer verileri yorumlayacağımız arduino kodlarına bakalım;
void setup() { Serial.begin(9600); pinMode(5,OUTPUT); } void loop() { int deger=Serial.parseInt();//seri porttan veriyi okuyoruz if(deger==1)//gelen değer 1 ise röle'ye sinyal göndererek fotoğraf çekmesini sağlıyoruz { digitalWrite(5,HIGH); } else//1 değilse 0 volt yolluyoruz röle'ye { digitalWrite(5,LOW); } Serial.println(deger); }
Yazının sonuna geldik umarım faydalı olur, bu yazıda kendimce bir çok şeyi bir araya getirmeye çalıştım, herkese iyi çalışmalar.