Ana Sayfa dnyARDUINO dnyArduino Sıcaklık Sensorü ile Fan Kontrolü

dnyArduino Sıcaklık Sensorü ile Fan Kontrolü

8 min read
1
0
7,364
DC motor

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
dnyARDUİNO bağlantıları

 

LCD BAĞLANTILARI:

lcd

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:

asa

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:

 

Buna Benzer Yazılar Göster !
Daha Fazlasını Yükle - Burak Ablay
Daha Fazla Göster -  dnyARDUINO

1 Yorum

  1. Ahmed Emin Baş

    7 Nisan 2018 at 12:42

    abi fritzing devresini atabilirmisn

    Reply

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Bak Bakalım ?

Modbus POLL ile Allen Bradley Motor Sürücüsünün Haberleşmesi

Merhabalar arkadaşlar , Bu yazımızda RS485 yada Modbus haberleşmesi ile ilgilenen arkadaşl…