DERS-9 NTC Sıcaklık Sensörü Kullanımı:

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

Isı ölçüm cihazları, termostat, oda sıcaklığı ölçümü ve akıllı ev sistemi gibi projelerde rahatlıkla kullanılabilen bu sensör Arduino başta olmak üzere bir çok mikrodenetleyeci sistemi ile beraber kullanılabilmektedir. Negative Thermocouple kelimelerinin kısaltmasından oluşur. NTC, aslında sıcaklığa bağlı olarak değeri değişen bir dirençtir. Sıcaklık yükseldikçe direnci azalır; bu sayede sensör görevi görmüş olur.

NTC Sıcaklık Sensörü
NTC Sıcaklık Sensörü

Bu derste oda sıcaklığını ölçen bir devre tasarlayacağız. NTC semsörü odanın sıcaklığını alacak. Gerekli matematiksel işlemleri yaptırıp oda sıcaklığını bir değişkene atacağız. Sonra bir led yardımı ile oda sıcaklığı 24 derecenin üzerine çıktığında bu led otomatik olarak yanacak.
Aşağıda bu devrenin bağlantı şekli görülmektedir.

DEVRE ŞEMASI

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

NTC sensörünün artı eksi bacak ayrımı yoktur. Bir bacağını +5 V bağlıyoruz. Diğer bacağı ise 10K ohm luk bir direnç den sonra GND pinine bağlıyoruz. Ayrıca bacak ile direncin birleştiği yerden de A0 (Analog 0) girişine bir bağlantı sağlamalıyız. Ledimizin + ucunu bir direnç ile 4 numaralı dijital pine bağlıyoruz.

Devre kurulumunu tamamladık şimdi gelelim kod kısmına.

KOD YAPISI

#include <math.h>
#define led 4

void setup() {
Serial.begin(9600);
pinMode(led,OUTPUT);
}

void loop() {
int veri = analogRead(A0);
  double sicaklik = Sicakolcum(veri);
  Serial.println(sicaklik);

  if(sicaklik > 25){
    digitalWrite(led,HIGH);
  }
  else{
    digitalWrite(led,LOW);
  }

  delay(250);
}

double Sicakolcum(int deger){
    double sicaklik;
    sicaklik = log(((10240000 / deger) - 10000));
    sicaklik = 1 / (0.001129148 + (0.000234125 +(0.0000000876741 * sicaklik * sicaklik)) * sicaklik);
    sicaklik = sicaklik - 273.15;
    return sicaklik;
}

Öncelikle kod yapımıza math kütüphanesini eklememiz gerekiyor. Çünkü sensörden gelen sıcaklık değerini bildiğimiz sıcaklık birimine çevirebilmek için matematiksel ifadeler kullanmamız gerekecek. Setup kısmında Serial haberleşmeyi başlatıyoruz ve led OUTPUT olarak ayarlanıyor.

Void Loop kısmında ise int veri = analogRead(A0); komutu veri değişkenine sensörden aldığı değerin atamasını yapıyor. Fakat bu değeri sıcaklık olarak alğılayamayız. Bir takım matematiksel işlemlerden geçmesi gerekmektedir. Tamda bu noktada double sicaklik = Sicakolcum(veri); komutu ile bu aldığımız veriyi Sicakolcum adı fonksiyona yolluyoruz. Dönecek olan değeri de double tipinde sicaklik isimli bir değişkende saklayacağız. Şidi gelin bu foksiyona bir göz atalım.

double Sicakolcum(int deger){

    double sicaklik;
    sicaklik = log(((10240000 / deger) - 10000));
    sicaklik = 1 / (0.001129148 + (0.000234125 +(0.0000000876741 * sicaklik * sicaklik)) * sicaklik);
    sicaklik = sicaklik - 273.15;
    return sicaklik;
}

Bu foksiyon sensörün ölçtüğü değeri alıyor bir takım matematiksel işlemlerden geçirip sonucunu bizim anlayacağımız santigrat dereceye çeviriyor. Bu kısmı olduğu gibi kopyalayabilirsiniz. Sonuç olarak return sicaklik; kod satırı ile bir sicaklik değeri döndürüyor.

Dönderdiği bı sıcaklık değerini Serial.println(sicaklik); ile seriport ekranına yazdırıyor. Aşağıdaki resimlerde bunu görebilirsiniz. Sonrasında if yapısı ile bu değer 25 den büyükse LED yanıyor. Büyük değilse LED sönük kalıyor.

NTC nin ısınabilmesi için elinizle üzerine dokunabilirsiniz.

UYGULAMA RESİMLERİ

NTC Serial
NTC Kullanımı
NTC Sıcaklık Sensörü Kullanımı

You may also like...

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir