e
sv

Arduino ile Sıcaklık Ölçümü

204 Okunma — 29 Aralık 2018 22:39
avatar

Mehmet Ural

  • e 0

    Mutlu

  • e 0

    Eğlenmiş

  • e 0

    Şaşırmış

  • e 0

    Kızgın

  • e 0

    Üzgün

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.

Video oynatıcı

Kaynak: Bu yazı Kerem İZGÖL’ün https://maker.robotistan.com/arduino-dersleri-11-sicaklik-olcumu/ adresindeki yazısından alınmıştır. Kendisine teşekkür ederiz.

Sıradaki içerik:

Arduino ile Sıcaklık Ölçümü