Arduino Sıcaklık Sensörü (LM35) ve Sıcaklık Ölçümü

Merhaba arkadaşlar,
Mobilhanem.com için hazırladığımız Arduino derslerine Arduino Sıcaklık Sensörü ve Sıcaklık Ölçümü  ile devam ediyoruz. Bu dersimizde LM35 sıcaklık sensörünü inceleyerek ortamın sıcaklık değerini nasıl ölçebileceğimizi inceleyeceğiz.

LM35 Sıcaklık Sensörü

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

Ortamın sıcaklığını ölçmeye yarayan LM35 sıcaklık sensörü analog çıkışlı bir sıcaklık sensörüdür. LM35 sıcaklık sensörü çıkış gerilimi sıcaklık ile doğru orantılı olarak değişir. Sıcaklık ölçüm aralığı -55 ile 150 derece arasında değişmektedir. 4-30 V arasında bir gerilim değeri ile beslendiğinde ve 60 mikro A’den az akım ile 0.5 derece hassasiyetle ölçüm yapabilmektedir. Her bir derece için çıkış değeri 10mV değişim gösterir. Sıcaklık sensöründe ölçüm yapılabilmesi için sensörün üzerinde yazıların bulunduğu tarafın sol kısmına güç hattı sağ kısmına da toprak hattı bağlanır. Orta kısımda bulunan bacak analog çıkış verdiği için Arduino kartı üzerinde bulunan analog giriş pinleri ile bağlantısı kurulur.

LM35 sıcaklık sensörü hakkında daha fazla bilgi almak için datasheet‘ine göz atabilirsiniz.

Arduino Sıcaklık Sensörü Kullanımı

Arduino ile birlikte LM35 sıcaklık sensörünün kullanabilmek için sensör üzerinde bulunan 3 bacağın örnek bağlantıları aşağıdaki şekildeki gibi olmalıdır.

Arduino Sıcaklık Sensörü Devre Şeması
Arduino Sıcaklık Sensörü Devre Şeması

Arduino Sıcaklık Sensörü Kodları

Arduino ile birlikte sıcaklık sensörünü kullanabilmek için devrenin şemasını gösterildiği gibi kurduktan sonra aşağıdaki kodları kullanarak sıcaklık ölçümü yapabilirsiniz. Gerekli açıklamaları kod satıraları arasında bulabilirsiniz.

Ekran Çıktısı:

Arduino Sıcaklık Sensörü
Arduino Sıcaklık Sensörü Kullanımı Örneği Ekran Çıktısı

Matemetiksel İşlemlerin Açıklanması:

analogRead() fonksiyonu Analog pinlerden en düşük değer olarak 0(sıfır), en yüksek değer olarak 1023 değerini okuyabilir.

Analog pinlerden okunan

0 değeri = 0V

1023 değeri = 5V

eşittir.

Sıcaklık değerini hesaplayabilmek için öncelikle analogRead() fonksiyonu ile okunan değerin kaç mV değerine eşit olduğunu bulmamız gerekiyor.

0(sıfır) ile 1023 değeri arasında okunan sensör değerinin 0 ile 5000mV değeri arasındaki karşılığı nedir?(1v=1000mV)

sorusuna cevap olarak yukardaki kod satırını kullanarak gerilim değerini mV cinsinden hesapladık.

Bu dersimizde Arduino ile LM35 Sıcaklık Sensörü kullanarak nasıl sıcaklık ölçme işlemini gerçekleştirebileceğimizi anlatmaya çalıştım. Konuyla ilgili yorumlarınızı konu altından yapabilir, sorularınızı Mobilhanem Soru&Cevap bölümünden sorabilirsiniz. Bir sonraki içeriğimizde Mobilhanem.com‘da görüşmek üzere.

Tüm Arduino Dersleri için tıklayınız..

Esat Gözcü

12 Yorum

    • Öncelikle sensörden okuduğunuz değeri yazabilir misiniz?
      Eğer sensörden okunan değerleri öğrenebilirsem hatayı nerde yaptığınızı daha iyi öğrenebilirim çünkü sensörden okunan değeri öncelikle gerilim değerine ardından sıcaklık değerine dönüştürüyoruz. Sensörden okunan değerleri matematiksel işlemlere tabi tutuyoruz belki matematiksel işlemlerde hata yapmış olabilirsiniz. Düşük bir ihtimal olarakta sensör bozuk olabilir.

      • bendede aynı sorun var
        böyle değer veriyor ne yapama lazım lütfen yardımcı olun

        Sensör Değeri: 549.00
        Gerilim Değeri: 2683.28
        Sıcaklık Değeri: 268.33
        **********************************
        Sensör Değeri: 342.00
        Gerilim Değeri: 1671.55
        Sıcaklık Değeri: 167.16
        **********************************

  • bendeki sensörde sıcaklık degerini 500 civarında ölçüyor haliyle derecede 57 derece civarlarında geziyor neden kaynaklanabilir bu hata

    • Sıcaklık değerini 500 civarında ölçüyor derece 57 derece oluyor derken hangi değerleri kast ettiğinizi tam olarak anlamadım çünkü sıcaklık değeri derece cinsinden ifade edilir. Bu iki sonuç birbirininin aynısı olması gerekiyor.

      Öncelikle sensörden okuduğunuz değeri yazabilir misiniz?
      Eğer sensörden okunan değerleri öğrenebilirsem hatayı nerde yaptığınızı daha iyi öğrenebilirim çünkü sensörden okunan değeri öncelikle gerilim değerine ardından sıcaklık değerine dönüştürüyoruz. Sensörden okunan değerleri matematiksel işlemlere tabi tutuyoruz belki matematiksel işlemlerde hata yapmış olabilirsiniz. Düşük bir ihtimal olarakta sensör bozuk olabilir.

  • bendede aynı sorun var
    böyle değer veriyor ne yapama lazım lütfen yardımcı olun

    Sensör Değeri: 549.00
    Gerilim Değeri: 2683.28
    Sıcaklık Değeri: 268.33
    **********************************
    Sensör Değeri: 342.00
    Gerilim Değeri: 1671.55
    Sıcaklık Değeri: 167.16
    **********************************

  • Aşağıdaki kodlarda sorun nedir ki A0 daki lm35 doğru çalışırken, A1 deki lm35 sıfır dönüyor sürekli ? şimdi den teşekkürler…

    int h_sicaklik, s_sicaklik,h_sayac, s_sayac, h_ortalama,s_ortalama=0;
    int h_kalibre=147;
    int s_kalibre=150;
    float h_okunan, s_okunan, h_vdeger, s_vdeger=0;
    double sontime=0;

    void setup()
    {
    analogReference(INTERNAL);
    Serial.begin();
    }
    void loop ()
    {
    if (millis()-sontime>=100)
    {
    h_okunan+=analogRead(A0);
    h_sayac++;
    if (h_sayac>=10)
    {
    h_ortalama=h_okunan/10;
    h_vdeger=h_ortalama/1023*5000;
    h_sicaklik=h_kalibre-(h_vdeger/10);
    h_okunan=0;
    h_sayac=0;
    }
    s_okunan+=analogRead(A1);
    s_sayac++;
    if (s_sayac>=10)
    {
    s_ortalama=s_okunan/10;
    s_vdeger=s_ortalama/1023*5000;
    s_sicaklik=s_kalibre-(s_vdeger/10);
    s_okunan=0;
    s_sayac=0;
    }
    sontime=millis();
    }
    } “

    • Kodlarda bir sıkıntı yok zaten A0 pininde çalıştığını söylemişsiniz. Sizin kartınızda A1 pininde arıza olma ihtimali olabilir mi?

  • Bu LM35 in kararlılığı nasıldır? Her ölçümde çok fark var. 25 – 32 – 14- …. gibi . araya direnç , kondansatör falan koyarak stabil hale getirilemez mi. Mesela DHT11 sensorunda daha düzgün değerler görüyorum..

Haftalık Bülten

Mobilhanem'de yayınlanan dersleri haftalık mail almak ister misiniz?