Arduino Robotik Dersleri 11: LM35 sıcaklık ölçümünü i2C LCD ekranda gösterme.

şerafettin kahramanşerafettin kahraman


Ocak 2018 Arduino Başlangıç (11) 3 Okunma Sayısı: 1902


Arduino Robotik Dersleri 11: LM35   sıcaklık ölçümünü i2C LCD ekranda gösterme.

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

Arduino UNO
Breadboard
16×2  I2C LCD Ekran
LM35

Bir ucu erkek diğer ucu dişi  jumper kablo.
Yukarıdaki malzemelerden 16x2 I2C LCD yi yurt içinde satış yapan internet sitelerinden alabileceğiniz gibi www.aliexpress.com internet sitesinden aceleniz yok ise 10 ile 20 gün arasında alabilirsiniz.

LM35 sıcaklık sensörü, kullanarak makalede yapacaklarımızı uygulararak çok hassas ölçümler alabileceğiniz bir sıccaklık sensörüdür.LM35 sensörümüz  25 °C’de  0,5 °C hassasiyete sahitir,LM35 sensörümüzün 2.bacağı olan aut bacağını Arduino’muzun analog girişinden bağlayarak LM35 ile  sıcaklık ölçümü çok hassas bir şekilde  Arduino Uno muzu kullanarak I2C LCD mize yazdırabiliriz.

 

Arduino Robotik Dersleri 11 LM35   sıcaklık ölçümünü i2C LCD ekranda gösterme.

LM35 in bacak bağlantı şeması yukarıdaki gibidir. 
LM35 i transistör ile karıştırmamak gerekiyor bunun için lütfen üzerinde LM35 yazısının olmasına dikka edelim. LM35 in , 2 numaralı bacağından sıcaklıkla doğru orantılı olacak şekilde LM35 bize  0 ile 1V arasında gerilim çıkışı vermektedir. Bildiğimiz gibi Arduino UNO’muzun analog girişleri, biz aksini belirtmediğimiz sürece 0-5V arasında voltaj değerleri vermektedir.
Eğer analog giriş aralığımızı 0-5V arasında bırakırsak, sensörümüz LM35 in hassasiyet kabiliyetinin %80’lik kısmı boşa gitmiş olacak. LM35 in bu kaybını  engellemek için Arduino’muzun analog ölçümünü 0 ile 1,1V arasında yapacak şekilde Arduino UNO muzu ayarlamamız gerekiyor.

Öncelikle devremizi kuralım:
İ2c pinleri ——- Arduino pinleri
VCC                           5 VOLT
GND                          GND
SCL                            SCL
SDA                           SDA
Arduino Robotik Dersleri 11: LM35 sıcaklık ölçümünü i2C LCD ekranda gösterme.


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

Kodumuz:

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

LiquidCrystal_I2C lcd(0x27,16,2);
 
void setup() 
{
  lcd.begin(16, 2);
  analogReference(INTERNAL);
  lcd.print("Sicaklik Olcumu:");
  pinMode(10,OUTPUT);//Ledimiz için Arduino Uno nun 10 numaralı bacağını ÇIKIŞ olarak ayarlıyoruz.
  pinMode(A0,INPUT);//Lm35 için Arduino nun A0 pinini GİRİŞ Olarak ayarlıyoruz.
  
}
 
void loop()
{
  int sicaklikVolt = analogRead(lm35Pin);
  float sicaklikC =sicaklikVolt / 9.31; 
  lcd.setCursor(0, 1);
  lcd.print(sicaklikC);
  lcd.setCursor(6,1);
  lcd.print("\337C");
  delay(100);
if(sicaklikC>25)
{
digitalWrite(10,HIGH);
}
else
{
digitalWrite(10,LOW);
}
}
 

I2C LCD kütüphanemizi indirmek için aşağıdaki linke tıklayarak I2C LCD kütüphanesini indirip Arduino derleyicinin Libraries klasörünin altın atmalısınız.
İ2C bağlantılı LCD ekranlar diğer ekranlara göre daha sade devreler oluşturmamızı sağlar.
ancak i2c LCD de bazen aşağıdaki sorunlarla kaşılaşabilirsiniz.Yukarıdaki kodu I2C LCD bağlı arduinoya bağladık ancak ekrana yazılar gelmedi ise aşağıdakileri sırasıyla deneyelim.
1-) i2c LCD de Ekran siyah koyu gözüküyor yazılar gözükmüyor ise; i2c LCD nin arka yüzünde i2c LCD nin ekran kontrastını ayarlayan trimpot var onu saatin tersi yönünde yavaş yavaş çeviriniz.
2-) i2c LCD de Ekran açık renk  gözüküyor yazılar gözükmüyor ise; i2c LCD nin arka yüzünde i2c LCD nin ekran kontrastını ayarlayan trimpot var onu saat yönünde yavaş yavaş çeviriniz.
3-) Yukarıdakileri denediniz ancak yine yazılar gözükmüyor ise LiquidCrystal_I2C lcd(0x27, 16, 2); satıırındaki 0x27 değerini 0x3f olarak değiştirin yani yeni satır
LiquidCrystal_I2C lcd(0x3f, 16, 2);  olmalı.

Arduino derleyicinin setup fonksiyonumuzda bulunan analogReference(INTERNAL); komutu, Arduino’muzun analogda dijitale çeviricisinin 1,1V referans voltajı kullanmasını sağlıyordu. Bu sayede, Arduino UNO muzun analog girişten okuyacağımız 0-1023 arası değerlerin her bir basamağı 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 verir. Bu demek oluyor ki, Arduino UNO nun analog girişinden  ölçtüğümüz değeri 9,31 ile çarptığımızda, elde ettiğimiz sonuç sensörün verdiği çıkış geriliminin santigrat cinsinden değerini elde ediyoruz.
lcd.setCursor(0,1) komutu,I2C 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.

arduino uno lm35 ısı sıcaklık sensörü

Makaleye yorum yapmak silmek ve düzenlemek için giriş yapınız.

Giriş Yap

Misafir kullanıcı olarak sorularınızı aşağıya yazabilirsiniz.

Yorum:

Misafir

Misafir 11.1.2018 20:16:08

I2C modulü kulanılsaydı devre daha sade olurdu. -
Misafir

Misafir 15.2.2019 11:37:02

PinMode(A0,INPUT); p harfi küçük olacak. Yeni başlayanlar için hatayı düzeltmek sıkıntı olabilir. Kod çalışıyor. Teşekkürler -
şerafettin kahraman

skahraman 16.2.2019 15:41:50

Uyarı için teşekkürlerler. Arduinoya yeni başlayan arkakaşlar dediğiniz gibi sıkıntı yaşayabilirdi. -

Blog Arama

Son yorumlar

  • https://downloads.arduino.cc/packages/package_index.json dosya imza doğrulama başarısız. Dosya yoksayıldı. BU HATAYI ALMAKTAYIM COZEMEDIM
  • sorun yaşıyordum teşekkür ediyorum faydalı oldu. Bu konuda diğer uygulama yazılarınızı da bekliyoruz.
  • Vin girişine 12 volt verdim. Bazı yerlerde 20 volta kadar yazıyor. Bir katıldı ve ses çıktı. Ir ile perde kontrol esiyordum. Çalışmadı normal görünüyor. Şu anda l293n devresinden 5 volt ile besleniyor. Sizce sorun olmuş mudur. Ben yanlış bir işlem mi yaptım aceba
  • Merhaba ; Öncelikle vermiş oldugunuz bilgiler için çok teşekkürler.Ne zamandan beridir istedigim bir devre var fakat kuramıyorum .Projem ise şu arduinonun herhangi bir analog girşine 5 volt giriş saglandıgında çıkışından led yakmak istiyorum bu konuda yardımcı olurmusunuz.Şimdiden Teşekkkürler..
  • Uyarı için teşekkürlerler. Arduinoya yeni başlayan arkakaşlar dediğiniz gibi sıkıntı yaşayabilirdi.