dnyARDUINO dnyArduino Sıcaklık Sensorü ile Fan Kontrolü By Burak Ablay Posted on 9 Temmuz 2015 8 min read 1 0 7,364 Paylaş ! Facebook Paylaş ! Twitter Paylaş ! Google+ Paylaş ! Reddit Paylaş ! Pinterest Paylaş ! Linkedin Paylaş ! Tumblr ısı sensörü ve motor motor ve sensör Merhaba arkadaşlar , Bu yazımızda sıcaklık sensörünü kullanarak bir ev otomasyon sistemi ve fabrika kontrol sistemlerinden birçok kez kullanılan ve sürekli kullanılmaya devam edecek sıcaklık sensörü ile fan kontrolü yaptık.Bu sistemi kendi sisteminize kolaylıkla uygulayabilirsiniz.Deneyi dnyARDUİNO üzerinde kolay bağlantılarla yapılmış olsada bunu ayrıyeten arduino alıpta kurabilir ve sisteminiz kontrolünü yapabilirsiniz.dnyARDUİNO bilindiği üzere bir deney oluşturma platformudur.dnyARDUİNO iç bağlantılarında kafanıza takılan yerleri elimizden geldiğince açıklamaya çalışıyoruz ama yinede iç bağlantıların ve deney setinin kolay bağlantılarının nasıl yapılacağını merak eden arkadaşlarımızın bu siteden : http://www.mikrouygulamalar.com/#!dnyarduino/cwc2 kullanım klavuzunu indirerek kafasına takılanları çözebilirler.. Deneyin anlatımına gelirsek , Deneyde sıcaklık sensörü , DC motor , LCD ve harici güç kaynağı kullanılmıştır.dnyARDUİNO üzerinde 5V çıkışları bulunmaktadır.Motor bağlantı yerlerinden direk olarak 5V bile gelmektedir.Ama ben harici bir güç kaynağı kullanmayı tercih ettim sebebi ise motorun çektiği akım LCD üzerinde dalgalandırmalar oluşturmakta.Motor için 5V ile çalışan motor yeterlidir. Otomasyonda yapılmak istenilen : Sıcaklık sensörü ortamdaki sıcaklığı ölçücek bunu LCD ekranda göstericek. Kontrol kısmı ise ortamdaki sıcaklık 30 derece yi geçtiği anda DC motor çalışıyor. DC motor soğutucu görevini üstleniyor. Tekrar 30 derecenin altına düştüğü anda motor duruyor. Devreyi ve bağlantıları tam olarak açıklayabilmek için devre şemasını ve bağlantıların gösterildiği resmi paylaşmak istiyorum buradan yavaş yavaş kısımların nasıl kullanıldığını ve bağlantıları hakkında bilgiler vermek istiyorum.. DEVRENİN BAĞLANTI ŞEMASI: dnyARDUİNO bağlantıları LCD BAĞLANTILARI: dnyARDUİNO üzerinde 2 satır , 16 sütun karakter sınırı olan LCD bulunmaktadır.Karakter LCD ler kullanıcı yönlendirici bilgi veya değişken sayısal verilerin gösterilmesinde çok sık kullanılır. LCD PİNLERİ: 1-GND ,2-VCC,3-LCD Kontrast pini,4-RESET,5-YAZMA-OKUMA,6-ENABLE PİNİ,7-10 arası kullanılmayan pinler ,11-DATA4,12-DATA5,13-DATA6,14,DATA7,15-Arka aydınlatma VCC,16-Arka aydınlatma GND dir. SICAKLIK SENSÖRÜ(MCP9700): Sensör -40 ile 125 derece arasında çalışmaktadır. 1 derece için 10mV çıkış değeri göstermektedir. Datasheet:http://www.alldatasheet.com/view.jsp?Searchword=Mcp9700 Sıcaklık sensörünün hesabını arduino kodundan giderek anlamaya çalışalım. float temperature = ((float)analogRead(A0) * 5.0 / 1024.0) – 0.5; temperature = temperature / 0.01; Bildiğimiz üzere analog değer okunduğunda 0-1024 arası bir değer göstermektedir. Bunu 0-5V arası için göstermektedir.Yani 0V 0 ‘ a , 5V 1024 değerini göstermektedir. Burada da okuduğumuz analog değer çarpı 5V bölü 1024 değeri bölelikle voltaj olarak bir değer elde etmiş oluyoruz. 0.5 V çıkartılmasının nedeni 500mV kayma değeri yaşanmaktadır bu çıkartılıyor.Peki daha sonra 0.01 değerine bölünmesiyle 1 derece için 10mV şartını hesaba dökmektedir.Böylelikle aradığımız değeri bulmuş oluyoruz. DC motor: 0 ile 5V arasında çalışan heryerde kolaylıkla elde edebileceğiniz bir motor kullanıldı.5V verilmesi halinde çalışmaktadır. dnyARDUİNO üzerindeki motor kontrol ünitesi: Kırmızı çember içine alınan kısım B kısmına doğru çekilirse 5V ‘ u deney setinden vermektedir. VIN kısmına çekilirse harici güç kaynağı ile besleyebiliriz.Arduino çıkışından çalışması için 5V gönderilen M4 kısmıdır.Buraya 5V uygulandığında üstteki motoroun bir bacağının bağlı olduğu kısımdaki M4 e GND gelir.Yani motorun diğer ucunuda VCC yani +5V a bağlarsanız resimde gösterildiği gibi motorunuz çalışmaya başlayacaktır. DEVRENİN ARDUİNO KODU: [php] #include<LiquidCrystal.h> LiquidCrystal LCD(11,10,2,3,4,5); void setup() { // put your setup code here, to run once: Serial.begin(9600); pinMode(8,OUTPUT); LCD.begin(16, 2); } void loop() { // put your main code here, to run repeatedly: float temperature = ((float)analogRead(A0) * 5.0 / 1024.0) – 0.5; temperature = temperature / 0.01; LCD.setCursor(0,1); LCD.print(" "); LCD.print("SICAKLIK:"); LCD.print(temperature); LCD.setCursor(0,1); if(temperature>30){ digitalWrite(8, HIGH); } if(temperature<30){ digitalWrite(8, LOW); }}[/php] DEVRENİN VİDEOSU: