LiquidCrystal etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
LiquidCrystal etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

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.






12 Mart 2014 Çarşamba

Arduino - LM35 Sıcaklık Sensörü ile Termometre Uygulaması

Analog giriş fonksiyonları ile sadece potansiyometre gibi elemanların çıkışlarını değil aynı zamanda analog çıkış veren bütün sensörlerin gerilim değerlerini Arduino'ya aktarabiliriz.Elbette ki bu değerler 5V değerini aşmamalı.



Sol taraftaki resimde sıcaklık değerini analog çıkış olarak vermekte olan LM35 sensörü ve pinlerinin ne için kullanıldığı gösterilmekte.

Vs+ Arduino'muzun 5V, Toprak pini GND'ye ve Vçıkış olarak gösterilen pin de herhangi bir analog girişe takılarak Arduino ile sıcaklık ölçümü yapabiliriz.

Bu proje ile hem sensör ölçümlerine başlamış olacağız, hem de bir önceki yazıda görmüş olduğumuz "float" kodunu da kullanmış olacağız.






Analog giriş için Arduino'daki A1 pin girişini kullandım. Analog girişler sol tarafta olduğundan devre kurma işininin rahat  olması için breadboard un sağ tarafının kullanılması sağlıklı olur.

Matematiksel ifadeyi kurabilmek için yani analog değeri sayısal değere çevirmek için LM35'in analog çıkış yapısını bilmemiz gerekir.

Orta bacağından verilen mV mertebesindeki gerilim her °C için 10 mV üretir. Yani 25 °C için çıkış 250 mV olur. 




Daha ayrıntılı bilgi için http://www.ti.com/lit/ds/symlink/lm35.pdf

Arduino'daki ADC 10 bitlik olduğu için  ve en yüksek değerimiz 5000 mV olduğu için bu 5000 mV'u 1024 parçaya işlemcimiz ayıracaktır. Yani 1023.değer bize 5V'u verecek ve her 10 mV bize 1 °C 'yi verecek şekilde programımızı yazıyoruz.

Kodlarımız ;

float sicaklik; //Analog değeri dönüştüreceğimiz sıcaklık 
float analoggerilim; //Ölçeceğimiz analog değer

void setup () {
  Serial.begin(9600); //Seri haberleşme,Sıcaklığı ekranda görücez
}

void loop () {
 analoggerilim = analogRead(A1); //A1'den değeri ölç
 analoggerilim = (analoggerilim/1023)*5000;//değeri mV'a dönüştr 
 sicaklik = analoggerilim /10,0; // mV'u sicakliğa dönüştür

 Serial.print("Sicaklik Degeri: ");
 Serial.print (sicaklik);
 Serial.println (" derece");
 delay (1000);

}

Seri Haberleşme monitörü ile okuduğumuz değerler. Sensörün etrafında ateş yakarak değeri arttırabilirsiniz. Tabi sensörü yakmayın ateşle :))).

Bu da devremizin videosu.En  kısa zamanda bu sensör ile yaptığımız sıcaklık ölçümünü LCD'ye bağlayarak burda yayınlayacağım. Video'yu beğenmeyi unutmayın :).










22 Ağustos 2013 Perşembe

Arduino - LCD Ekran Uygulaması

LCD uygulamaları mikroişlemciler ile yapılan uygulamalar için önemli bir temel taş. Çünkü ölçülmesini istediğimiz (mesafe ölçümü,hız ölçümü vs.) birimleri aynı anda ekranda görebilme imkanımız bulunmakta.

Öncelikle LCD ekrandan bahsetmek istiyorum.Gereksiz bilgi ama açılımı Liquid-Cyrstal Display. Piyasada çok çeşidi var hatta Arduino için üretilmiş olanları bile var.Fakat ben LCD ekranımı Arduino'yu almadan çok çok önce aldığım için biraz farklı ve bağlantıları resimden de anlaşılacağı üzere biraz karmaşık oldu.







Bu karmaşıklığı LCD numaralarını göstererek daha basite indirgeyebiliriz. Yan tarafta LM016'nın numaralandırılmış hali var.Fakat sorunlar burda da bitmiyor. LCD üreticisi firmalar bu numaraları sıralı bir şekilde üretmeyebiliyor.





 Ben 1-16 arasında numaralandırılmış olan kısmı lehimleme tercihinde bulundum.

Ekran parlaklığını potansiyometre ile ayarlıcaz.Bunu da VDD-VSS arasında potansiyometre koyarak yapcaz. Yani LCD'nin 3 numaralı kısmı potansiyometrenin orta bacağına takılı olcak. 2 numara VDD ve potansiyometrenin uç bacağı, 1 numara VSS ve o da  potansiyometrenin diğer uç bacağına bağlı olacak.

LCD 4 numaralı pin data girişi yeri, 5 numaralı pin toprağa bağlı ekrana datayı yazacak ve 6 numaralı pin de sinyal aktifliği yeri.Daha çok bilgiyi aşağıdaki adresten LM016L'nin datasheetinden edinebilirsiniz.


http://pdf1.alldatasheet.com/datasheet-pdf/view/146552/HITACHI/LM016L.html



Kodlarımız;



#include <LiquidCrystal.h> // Kütüphane Gerekli
LiquidCrystal lcd(7, 8, 9, 10, 11, 12); //Arduino pinleri LCD için

void setup(){
  lcd.begin(16,2); 
}

void loop(){
  lcd.clear(); 
  lcd.setCursor(0,0); //komutu ile imleci istediğimiz karakter kutusunda konumlanmasını sağlıyoruz.İlk satırın ilk sütununa.
  
lcd.print("arduinotik"); // İmlecten itibaren bu yazı yazılacak
  lcd.setCursor(0,1); // 2.satırın ilk sütunundayız şimdi de
  lcd.print("dunyasi"); // 2.satıra bu yazı yazılacak
  delay(15000); //Bu kısım LCD'lerin frekans çalışma aralığı yüzünden giriliyor.
}


Yüklediğim resim biraz karışık bunun için özür dilerim.O yüzden bağlantıları tek tek yazdım devrenin kurulumunun kolay olması için. LCD'nin pinlerini esas aldım.

LCD'nin
1 - VSS (Toprak)
2-  +VDD
3-  Potansiyometrenin Ortası
4-  Arduino 7.pinine
5-  Toprak
6-  Arduino 8.pinine

11- Arduino  9.pinine
12- Arduino 10.pinine
13- Arduino 11.pinine
14- Ardunio 12.pinine
15- +VDD   
16-  Toprak

***Şemada 15. ve 16.pinlerin yerlerini ters yazmışım çok özür diliyorum. 15 VDD, 16 Toprağa bağlı olmalı.Potansiyometrenin

Sağ Bacak Toprak, Sol Bacak +VDD