dominoFiber     domiRobot     Forum


Projeler - DS18B20 Termometre​​

DS18B20 Termometre​​
Bu yazımızda DS18B20 sıcaklık sensörü ile lcd termometre yapmayı göreceğiz. DS18B20  ile  -10 °C ‘den +85 °C ‘ye kadar olan sıcaklıklar ±0.5°C  hassasiyetle ölçülebilir. Maksimum -55 °C ‘den +125 °C arasındaki sıcaklıklar ölçülebilir. Projemizde ölçülen sıcaklık değerini 16x2 LCD ekranda göstereceğiz. Bundan sonra yapacağımız projede de termometremimizi termostat haline getirmeyi öğreneceğiz.

Amaç
Arduino ve DS18B20 kullanarak sıcaklık değerini ölçüp LCD göstergede ölçülen değeri gösterme becerisi kazanmak.

Seviye
Orta

Fotoğraf 1: Projeye ait fotoğraf

Şema 1: Arduino Bağlantı Şeması

Şema 2: ISIS Bağlantı Şeması

Malzeme listesi
Tüm malzemeleri malzeme isimlerine tıklayarak temin edebilirsiniz.

DS18B20 termometre arduino kodu
Kod: [Seç]
/*
www.domirobot.com
DS18B20 ile 16x2 LCD Ekran Termometre
Aralık 2016
@2016, All Rights Reserved
@2016 Tüm Hakları Saklıdır. */

#include <OneWire.h>
#include <LiquidCrystal.h>
LiquidCrystal lcd(8, 9, 4, 5, 6, 7);
OneWire ds(2);

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

void loop(void)
{
byte i;
byte present = 0;
byte type_s;
byte data[12];
byte addr[8];
float celsius, fahrenheit;
// set the cursor to column 0, line 0
lcd.setCursor(0, 0);
ds.search(addr);

ds.reset();
ds.select(addr);
ds.write(0x44, 0);
delay(100);
present = ds.reset();
ds.select(addr);
ds.write(0xBE);
for ( i = 0; i < 9; i++)
{
data[i] = ds.read();
}
int16_t raw = (data[1] << 8) | data[0];
byte cfg = (data[4] & 0x60);
if (cfg == 0x00) raw = raw & ~7;
else if (cfg == 0x20) raw = raw & ~3;
else if (cfg == 0x40) raw = raw & ~1;
celsius = (float)raw / 16.0;
lcd.clear();
lcd.setCursor(0,0);
lcd.print(celsius);
lcd.print(" derece");
lcd.setCursor(0,1);
lcd.print("domiRobot");
}

Download
İhtiyaç duyulması halinde projeye ait dosyaları buraya tıklayıp indirebilirsiniz.

DS18B20 satın al

  • DS18B20 satın alDS18B20 satın alDS18B20 satın al