Ana Sayfa Arduino Arduino ile DS18B20 Sıcaklık Sensörü Kullanımı

Arduino ile DS18B20 Sıcaklık Sensörü Kullanımı

4 min read
1
0
7,313

Merhaba arkadaşlar,

Bu çalışmada,Arduino ile sıcaklık sensörü uygulaması yapılmıştır.Sıcaklık kontrolü bir çok uygulamada karşımıza çıkabilir.Sıcaklık sensörü ile fan kontrolü vb. uygulamalar geliştirebiliriz.Önce kullandığımız malzemelerden sizlere bahsedelim.

  • Arduino Uno
  • 4K7 Direnç
  • Dallas DS18B120 Sensörü
  • Jumper Kablolar

Biraz sensörümüzden bahsedelim.

DS18B20-pinout

*9-12 bit çözünürlük

*55 °Cile +125°C  arasındaki değerler okunabilir.

*3 volt ve 5.5 volt arasında güç verilebilir.

*10°C ile +85°C  arasında 0.5°C hassasiyetli

Sensör hakkında detaylı bilgiye buradan ulaşabilirsiniz.

 

Program yazmaya başlamadan önce 2 tane kütüphane indirmemiz gerekmektedir.Buradan indirebilirsiniz.

İndirdikten sonra,OneWire ve DallasTemperature kütüphanelerini Arduino kütüphanelerine dahil etmelisiniz.

Kodlar

#include <OneWire.h> // OneWire kütüphanesini ekliyoruz.
 
// Sıcaklık sensörünü bağladığımız dijital pini 2 olarak belirliyoruz.
int DS18S20_1_Pin = 2;
// Sıcaklık Sensörleri Giriş-Çıkışları
OneWire ds1(DS18S20_1_Pin); // sensör 2. Dijital pinde.
 
void setup(void) {
Serial.begin(9600); // Seri iletişimi başlatıyoruz.
}
 
void loop(void) {
 
float temperature1 = getTemp(ds1); // sensörden gelen sıcaklık değeri
 
// Sensörden gelen sıcaklık değerlerini serial monitörde yazdırıyoruz.
Serial.print("Sicaklik:");
Serial.print(temperature1);
Serial.print(" | ");
 
// 1 saniye bekliyoruz. Monitörde saniyede 1 sıcaklık değerleri yazmaya devam edecek.
delay(1000);
}
 
// Aşağıdaki fonksiyon DS18B20 sıcaklık sensörümüzden gelen verileri
// Celcius cinsinden sıcaklık değerlerine çevirmek için kullanılıyor.
// Herhangi bir değişiklik yapmamız gerekmiyor.
 
float getTemp(OneWire sensor){
/
 
byte data[12];
byte addr[8];
 
if ( !sensor.search(addr)) {
 
sensor.reset_search();
return -1000;
}
 
if ( OneWire::crc8( addr, 7) != addr[7]) {
Serial.println("CRC gecerli degil!");
return -1000;
}
 
if ( addr[0] != 0x10 && addr[0] != 0x28) {
Serial.print("Aygit taninmadi");
return -1000;
}
 
sensor.reset();
sensor.select(addr);
sensor.write(0x44,1);
 
byte present = sensor.reset();
sensor.select(addr);
sensor.write(0xBE);
 
for (int i = 0; i < 9; i++) {
data[i] = sensor.read();
}
 
sensor.reset_search();
 
byte MSB = data[1];
byte LSB = data[0];
 
float tempRead = ((MSB << 8) | LSB);
float TemperatureSum = tempRead / 16;
 
return TemperatureSum;
 
}

Video’dan projenin çalışmasını inceleyebilirsiniz.

Buna Benzer Yazılar Göster !
Daha Fazlasını Yükle - Konuk Yazar
Daha Fazla Göster -  Arduino

1 Yorum

  1. FRİEND

    31 Mayıs 2017 at 23:28

    iyi günler bu sensörü çoklu yapsak bunların içinden en yüksek olanı seçmeye çalışsak nasıl yapardık bilgilendirebilir misiniz? teşekkür ederim…

    Reply

Bir cevap yazın

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

Bak Bakalım ?

Lazer İşleme Makinesi Yapımı

Merhaba arkadaşlar,bu projemizde sizlerle birlikte lazer işleme makinesi yapımını göreceği…