20 Temmuz 2016 Çarşamba

PIC18F452 CCS C - DS1307 Zaman Modülü Uygulaması



Bu yazımda DS1307 entegreli RTC modülümüzle I2C haberleşmesini kullanarak gün/tarih/saat bilgilerini okuyup, bu bilgileri PIC18F452 mikrodenetleyicimizle LCD'de göstereceğiz. 


Modülün sağdaki resimde görüldüğü gibi iki tarafında da header padleri bulunmakta. Ben sadece sol taraftaki padleri kullandım. İsterseniz sol üste DS18b20 modülünü de takarak sıcaklık değeri okuyabiliyorsunuz. Ben sadece zaman okudum.





I2C Haberleşmesi ( Inter-Integrated Circuit)


Kısaca bahsetmek gerekirse I2C , PHILIPS firmasının kendi ürünlerinde kullanmak üzere geliştirdiği,veri giriş-çıkış hızının çok önemli olmadığı ve pin kullanımını azami sayıya düşüren bir haberleşme protokolüdür. Haberleşmede iki uç kullanılır.Bunlar;

SDA - Seri Veri Giriş-Çıkış
SCL - Seri Saat Sinyali ( Clock )

Master-Slave ilkesine göre iş yapan bu protokolde, özetle master cihaz öncelikle SDA hattından "START" bilgisi gönderir, iletişim kuracağı cihazın adresini yazar ve adresi yazılan slave , "STOP" bilgisi gelene kadar master ile haberleşme kontağında bulunur.

6 Temmuz 2016 Çarşamba

Arduino - TCRT5000 IR Sensör Uygulaması

Bu yazımda TCRT5000 kızılötesi sensörün kullanımından bahsedeceğim. HC-SR04 ultrasonik sensör ile mesafe ölçmüştük. HC-SR04 ses dalgası kullanıyordu. TCRT5000 ise kızılötesi dalgaları kullanıyor.

TCRT5000 ile sadece mesafe ölçümü değil ayrıca lojik-1 lojik-0 düzeyinde de kullanabilir bunun yanı sıra siyah-beyaz bant ayrımı da yaptırtabilirsiniz. Bu sayede çizgi izleyen bir robot yapabilirsiniz.

Ben bu yazımda sensörün analog çıkışını okuyacağım ve bunu LCD ekrana yazdıracağım. Sensörü soldaki şemaya göre oluşturup, siyah gözü 5v'a çektiğimiz yeri Arduino'nun A0 pinine bağlıyoruz.

Siyah gözü 10K ile Mavi Gözü 100ohm ile 5V'a çekiyoruz. Ben 20K-100 ohm ikilisini kullandım, siz aldığınız ölçümlere göre en optimum ikiliyi seçip kullanabilirsiniz.




Ben yaptığım ölçümlere göre konuşmam gerekirse tam direnç değerlerini tutturamadığım için yaptığım ölçümleri lineer bulmadığım için en azından şu anlık beğenmedim. Tam  direnç değerlerini tutturduktan sonra tekrar deneyeceğim. 
O yüzden yazılımda uzaklık değerine dönüştürmedim okuduğum ADC değerini.