Arduino İle LM35 Sıcaklık Sensörü Kullanımı

Bu yazımızda arduino ile lm35 sıcaklık sensörü nasıl kullanılır bunu öğreneceğiz. İlk örnekte, sensörden sıcaklık okuma ve sonuçları seri monitörde göstereceğiz.İkinci olarak, bağımsız bir termometre oluşturmak için sıcaklığın bir I2C LCD’de nasıl görüntüleneceğini öğreneceğiz.

Malzeme Listesi

  • LM35 Analog Sıcaklık Sensörü
  • Arduino Uno
  • Breadboard
  • Jumper Kablo
  • 16×2 Karakter I2C LCD
  • Arduino Uno Haberleşme Kablosu

LM35 Sıcaklık Sensörü Nedir?

LM35, Texas Instruments tarafından üretilen ucuz, hassas bir santigrat sıcaklık sensörüdür. Santigrat sıcaklığıyla doğrusal orantılı bir çıkış voltajı sağlar ve bu nedenle arduino ile kullanımı çok kolaydır. Sensör, oda sıcaklığında ±0.5°C doğruluk sağlamak için herhangi bir harici kalibrasyon veya düzeltme gerektirmez. Sensör −50°C ila +155°C sıcaklık aralığında ±1°C hata payı vardır.

LM35’in çıkış ölçek faktörü 10 mV/°C’dir ve 25°C’de 250 mV çıkış voltajı sağlar (aşağıdaki şekile gözükmektedir).

LM35 Sıcaklık Sensörü Sıcaklık Volt Grafiği
LM35 Sıcaklık Sensörü Sıcaklık Volt Grafiği

Sensörün 4 ila 30 V voltaj aralığında çalıştığını ve çıkış voltajının besleme voltajından bağımsız olduğunu unutmayın.

LM35, Texas Instruments tarafından satılan bir dizi analog sıcaklık sensörünün parçasıdır. Serinin diğer üyeleri şunlardır:

  • LM335, çıkış voltajı 10 mV/°K’de mutlak sıcaklıkla doğru orantılıdır.
  • LM34, çıkış voltajı fahrenheit sıcaklığı 10 mV/°F ile doğru orantılıdır.

LM35 Sıcaklık Sensörü Pinleri

LM35 4 farklı pakette gelir, ancak en yaygın tip 3 pinli TO-92 transistör paketidir.

TO-92 Paketi

Sensörün pin çıkışı aşağıdaki gibidir:

LM35 Sıcaklık Sensörü Pinleri
LM35 Sıcaklık Sensörü Pinleri

Sensörün düz tarafı (üzerinde yazılı olan) size doğru baktığında pim 1’in (+VS) en soldaki pin olduğunu unutmayın.

Pin AdıPin BacağıAçıklama
+VS1Pozitif güç kaynağı pini (4 – 30 V)
VOUT2Sıcaklık sensörü analog çıkışı
GND3Cihaz topraklama pimi, güç kaynağının negatif terminaline bağlayın.

LM35 Analog Sıcaklık Sensörü Teknik Özellikleri

Besleme Voltajı4 V – 30 V
Çalışma Akımı60 µA
Çalışma Sıcaklık Aralığı-55°C to + 155°C
Doğruluk Payı±0.5°C at +25°C
±1°C from -55°C to +150°C
Çıkış Ölçek Faktörü10 mV/°C
25°C’de Çıkış Voltajı250 mV
Kendini Isıtmadurgun havada <0.1°C
Paket3-pin TO-92

LM35 Sıcaklık Sensörü Bağlantı Şeması

Bir LM35’i Arduino’ya bağlamak çok kolaydır çünkü sadece 3 pin bağlamanız yeterlidir. +VS pinini Arduino’nun 5 V çıkışına ve GND pinini toprağa bağlayarak başlayın. Ardından, orta pimi (VOUT) Arduino’nun analog girişlerinden herhangi birine bağlayın. Burada analog giriş pini A0’ı kullandık.

LM35 Sıcaklık Sensörü Bağlantı Şeması
LM35 Sıcaklık Sensörü Bağlantı Şeması

LM35 analog sıcaklık sensörü bağlantıları:

LM35Arduino
Pin 1 (+VS)5 V
Pin 2 (VOUT)Pin A0
PIN 3 (GND)GND
LM35 Sensörü-Arduino Bağlantı Pinleri

LM35 Çıkış Voltajını Sıcaklığa Dönüştürme

Sensörün çıkış voltajını Santigrat derece cinsinden sıcaklığa dönüştürmek için aşağıdaki formülü kullanabilirsiniz:

Sıcaklık (°C) = VOUT / 10

milivolt (mV) cinsinden VOUT ile. Yani sensörün çıkışı 750 mV ise sıcaklık 75 °C’dir.

Yukarıdaki bağlantı şemasında da görebileceğiniz gibi LM35’in çıkışı Arduino’nun analog girişlerinden birine bağlanmıştır. Bu analog girişin değeri analogRead() fonksiyonu ile okunabilir. Ancak bu fonksiyon sensörün çıkış voltajını döndürmez.

Arduino kartları, 0 ile çalışma voltajı (5 V veya 3,3 V) arasındaki giriş voltajlarını, 0 ila 1023 arasındaki tamsayı değerlerine eşleyen çok kanallı, 10 bitlik bir analogdan dijitale dönüştürücü (ADC) içerir. Örneğin bir Arduino Uno’da , bu çözünürlük başına 5 volt / 1023 birim veya 0,0049 volt (4,9 mV) okumalar arasında bir çözünürlük sağlar. Yani Arduino’nun analog girişlerinden birindeki voltajı okumak için analogRead() kullanırsanız, 0 ile 1023 arasında bir değer alırsınız.

Bu değeri sensörün çıkış voltajına dönüştürmek için şunları kullanabilirsiniz:

VOUT = ADC'den okuma * (Vref / 1023)

Arduino Örnek LM35 Analog Sıcaklık Sensörü Kodu

Aşağıdaki örnek kod ile bir LM35 sensöründen sıcaklığı okuyabilir ve Seri Monitörde görüntüleyebilirsiniz.

// LM35'in çıkışının Arduino'nun hangi pinine bağlı olduğunu tanımlayın:
#define sensorPin A0
void setup() {
  // 9600 baud hızında seri iletişime başlayın:
  Serial.begin(9600);
}
void loop() {
  // Get a reading from the temperature sensor:
  int reading = analogRead(sensorPin);
  // Sıcaklık sensöründen bir okuma alın:
  float voltage = reading * (5000 / 1023.0);
  // Voltajı Santigrat derece cinsinden sıcaklığa dönüştürün:
  float temperature = voltage / 10;
  // Sıcaklığı Seri Monitörde yazdırın:
  Serial.print(temperature);
  Serial.print(" \xC2\xB0"); // derece sembolünü gösterir
  Serial.println("C");
  delay(1000); // okumalar arasında bir saniye bekleyin
}

Seri Monitörde aşağıdaki çıktıyı görmelisiniz:

Seri Monitör Çıktısı

Seri Monitörün baud hızının da 9600 olarak ayarlandığından emin olun.

LM35 İle Sıcaklığın Ölçülmesi ve I2C Ekranda Gösterilmesi

Bir bilgisayara ihtiyaç duymayan bağımsız bir termometre yapmak istiyorsanız, sıcaklık okumalarının bir LCD ekranda nasıl görüntüleneceğini bilmek güzel olur.

Aşağıdaki örnek kod ile sıcaklık okumalarını 16×2 karakter I2C LCD üzerinde görüntüleyebilirsiniz. Aşağıdaki bağlantı şemasında görebileceğiniz gibi I2C LCD’yi bağlamak oldukça kolaydır.

LM35 Sensörü İle Sıcaklık Okuma ve I2C Ekrana Yazdırma
LM35 Sensörü İle Sıcaklık Okuma ve I2C Ekrana Yazdırma

I2C LCD Bağlantıları

I2C Karakter LCDArduino
GNDGND
VCC5 V
SDAA4
SCLA5

Not: LM35 sıcaklık sensörünün öncekiyle aynı şekilde bağlandığına dikkat edin.

Gerekli Arduino Kütüphanelerinin Yükleme

Öncelikle arduino için LCD Ekran kütüphanesini indirmemiz gerekmekte. Kütüphaneyi indirdikten sonra IDE programını açıyoruz ve aşağıdaki adımları takip ederek kütüphane kurulumunu yapıyoruz.

Taslak > library ekle(kütüphane ekle) > .ZIP Kitaplığı ekle (İndirdiğiniz zip dosyasını seçiyorsunuz). Kütüphane kurulumu başarıyla gerçekleşmiş oluyor. Aşağıdaki kodu yazıp arduinomuza yüklediğimiz zaman sıcaklık değerimizi ekranda göreceğiz.

#include <LiquidCrystal_I2C.h>

#define sensorPin A0
LiquidCrystal_I2C lcd(0x27,16,2); // Bu kodu kullanırken ekranda yazı çıkmaz ise 0x27 yerine 0x3f yazınız !!
void setup() {
  lcd.begin();

}

void loop() {

 // Sıcaklık sensöründen bir okuma alın:
 int reading = analogRead(sensorPin);
 // Okumayı voltaja dönüştürün:
 float voltage = reading * (5000 / 1024.0);
 // Voltajı Santigrat derece cinsinden sıcaklığa dönüştürün:
 float temperature = voltage / 10;
 // Sıcaklığı LCD'ye yazdırın;
 lcd.setCursor(0,0); // İlk satırın başlangıç noktası
 lcd.print("Sicaklik:");
 lcd.setCursor(0,1); // İkinci satırın başlangıç noktası
 lcd.print(temperature);
 delay(2000);

 lcd.clear();
}