Merhabalar. Bugün sizlerle birlikte Arduino UNO, LCD ekran ve LM35 sensör kullanarak sıcaklık ölçme uygulaması yapacağız.

Gerekli malzemeler:

LM35 sıcaklık sensörü, hassas sıcaklık ölçümü yapan analog çıkışlı bir sıcaklık sensörüdür. 25 °C’de 0,5 °C hassasiyete sahip olan bu sensörü, Arduino’muzun analog girişinden bağlayarak sıcaklık ölçümü yapıla bilinmektedir.

 

lm35

Sensörümüzün pin konfigürasyonu bu şekildedir. TO-92 kılıf yapısına sahip bu sensörü transistör ile karıştırmak oldukça mümkündür, lütfen herhangi bir bağlantı yapmadan önce üzerinde yazanı okuyalım. Bu sensör, 2 numaralı bacağından sıcaklıkla doğru orantılı olacak şekilde 0 ile 1V arasında gerilim çıkışı vermektedir. Hatırlarsanız Arduino’muzun analog girişleri, biz aksini belirtmediğimiz sürece 0-5V arasında gerilimleri ölçmekteydi.

Eğer analog giriş aralığımızı 0-5V arasında bırakırsak, sensörün hassasiyet kabiliyetinin %80’lik kısmı boşa gitmiş olacak. Bunu engellemek için Arduino’muzun analog ölçümünü 0 ile 1,1V arasında yapacak şekilde ayarlamamız gerekli.

Öncelikle devremizi kuralım:

Devre şeması 17/01/2017 tarihinde güncellenmiştir.

Kodumuz:

#include <LiquidCrystal.h>
 
int lm35Pin = A0;

LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
 
void setup() 
{
  lcd.begin(16, 2);
  analogReference(INTERNAL);
  lcd.print("Sicaklik Olcumu:");
}
 
void loop()
{
  int sicaklikVolt = analogRead(lm35Pin);
  float sicaklikC = sicaklikC = sicaklikVolt / 9.31; 
  lcd.setCursor(0, 1);
  lcd.print(sicaklikC);
  lcd.setCursor(6,1);
  lcd.print("\337C");
  delay(100);
}

setup fonksiyonumuzda bulunan analogReference(INTERNAL); komutu, Arduino’muzun analogda dijitale çeviricisinin 1,1V referans voltajı kullanmasını sağlıyor. Bu sayede, analog girişten okuyacağımız 0-1023 arası değerlerin her bir adımı 1,0742 mV (milivolt) gerilime denk düşüyor. LM35 sıcaklık sensörünün çıkış bacağında okuduğumuz her 10 mV, 1 °C sıcaklığa denk geldiğinden; 10 / 1,0742 bize yaklaşık olarak 9,31 değerini veriyor. Yani bu demek oluyor ki, analog girişten ölçtüğümüz değeri 9,31 ile çarparsak, elde ettiğimiz sonuç sensörün verdiği çıkış geriliminin santigrat cinsinden karşılığını elde ediyoruz.

lcd.setCursor(0,1) komutu, LCD ekranımızın 1 numaralı satırının (ilk satır 0 olarak kabul edilir, yani 1 numaralı satır alt satır olmuş oluyor) 0’ıncı karakterine istediğimiz sonucu yazmamızı sağlıyor. Aynı şekilde ##.## şeklindeki sıcaklık değeri 5 karakter yer tuttuğu için bir karakter boşluk vererek 6’ıncı karaktere de santigrat derece sembolünü koyuyoruz (°C). Eğer sıcaklık ölçümü çok hızlı değişiyorsa, delay() komutunun alacağı parametre ile her bir ölçüm arasındaki süreyi arttırarak daha sabit bir değer elde edebiliriz.

14 Yorumlar

    • Bu devrede potansiyometre LCD’nin kontrastını ayarlamak için kullanılmakta. Potansiyometre yerine uygun değerde direnç koyarak LCD’nin sabit bir kontrastta kalmasını sağlayabilirsiniz.

  1. Merhaba. Devreyi kurup kodu derledim ancak ekranın ilk satırı tam dolu görünüyor. Potansiyometre kısıp açıyor ancak hiçbir yazı yok. Bir tahmininiz var mı?

  2. Merhaba,

    Lcd göstergeli ve internetten izleyebileceğim bir sıcaklık sensörü yapmak istiyorum. Aşağıdaki parçaları almak uygun göründü sizcede öylemi almam gereken başka parçalar varmı Pot direnç vs. ? Son olarak böyle bir devre ile ilgili örnek bir kaynak gösterebilirmisiniz? Teşekkürler.

    Su Geçirmez DS18B20 Dijital Isı Sensörü
    Arduino UNO R3 Klon – USB Kablo Hediyeli – (USB Chip CH340)
    9V 1200mA Adaptör
    ESP8266 Ekonomik Wifi Serial Transceiver Module
    Mini Breadboardlu Arduino UNO R3 Proto Shield Kiti
    2×16 LCD Ekran, Mavi Üzerine Beyaz – TC1602A
    1X40 12MM 180 Derece Erkek Pin Header

  3. Bu tasarım ile negatif sıcaklıkları ölçmek mümkün değil galiba. Onun için tasarımda nasıl bir değişiklik yapmak uygun olur?

  4. Merhabalar bağlantıyı kurdum 10k potansiyel yerine 10k direnç bağladım ve bu direnci pin ile şase arasına bağladım. LCD nin ekran ışığı yandı fakat herhangi bir sayı göstermiyor. Seri port ekranı kısmında da hiçbir yazı gelmiyor sorun ne olabilir acaba ? teşekkürler

CEVAP VER