22 Temmuz 2024 Pazartesi
Arduino Projeleri

Arduino ile Sıcaklık Sensörü (Termistör) Yapımı

797views

Termistörler, projeleriniz için sıcaklık verilerini almayı kolaylaştıran basit, ucuz ve doğru bileşenlerdir. Uzaktan hava istasyonları, ev otomasyon sistemleri ve ekipman kontrol ve koruma devreleri, termistörlerin ideal olacağı bazı uygulamalardır. Bunlar analog sensörlerdir, bu nedenle kod, özel kütüphaneler ve çok sayıda kod gerektiren dijital sıcaklık sensörlerine kıyasla nispeten basittir.

Bu yazıda termistörlerin nasıl çalıştığını açıklayacağım, ardından Arduino ile seri monitöre veya lcd’ye sıcaklık okumaları verecek temel bir termistör devresinin nasıl kurulacağını göstereceğim.

Bir TERMİSTÖR nasıl çalışır?

Termistörler, dirençlerini sıcaklıkla değiştiren değişken dirençlerdir. Dirençlerinin sıcaklık değişimlerine tepki verme biçimine göre sınıflandırılırlar. Negatif Sıcaklık Katsayılı (NTC) termistörlerde, sıcaklık arttıkça direnç azalır. Pozitif Sıcaklık Katsayılı (PTC) termistörlerde, sıcaklık arttıkça direnç artar.

NTC termistörleri en yaygın olanlarıdır ve bu eğitimde kullanacağımız tür budur. NTC termistörleri, sıcaklığa duyarlı bir iletken malzeme oluşturmak üzere ısıtılan ve sıkıştırılan yarı iletken bir malzemeden (metal oksit veya seramik gibi) yapılır.

İletken malzeme, içinden akımın akmasına izin veren yük taşıyıcıları içerir. Yüksek sıcaklıklar, yarı iletken malzemenin daha fazla yük taşıyıcı salmasına neden olur. Ferrik oksitten yapılan NTC termistörlerinde elektronlar yük taşıyıcılarıdır. Nikel oksit NTC termistörlerinde yük taşıyıcılar elektron delikleridir.

TEMEL BİR TERMİSTÖR DEVRESİ

Nasıl çalıştığını görmek için temel bir termistör devresi yapalım, böylece daha sonra diğer projelere uygulayabilirsiniz.

Termistör değişken bir direnç olduğundan, sıcaklığı hesaplamadan önce direnci ölçmemiz gerekir. Ancak Arduino direnci doğrudan ölçemez, yalnızca voltajı ölçebilir.

Arduino, termistör ile bilinen bir direnç arasındaki bir noktadaki voltajı ölçecektir. Bu bir voltaj bölücü olarak bilinir. Bir voltaj bölücü için denklem şöyledir:

Bir termistör devresindeki voltaj bölücü açısından, yukarıdaki denklemdeki değişkenler şunlardır:

Bu denklem, termistörün direnci olan R2 için çözülecek şekilde yeniden düzenlenebilir ve basitleştirilebilir: Son olarak, Steinhart-Hart denklemi, termistörün direncini bir sıcaklık okumasına dönüştürmek için kullanılır.

Devre Bağlantısı

Termistörü ve direnci Arduino’nuza şu şekilde bağlayın:

Direncin değeri, termistörünüzün direncine kabaca eşit olmalıdır. Bu durumda termistörümün direnci 100K Ohm’dur, bu yüzden direncim de 100K Ohm’dur.

Termistörün üreticisi size direnç olduğunu söyleyebilir, ancak değilse, öğrenmek için bir multimetre kullanabilirsiniz. Multimetreniz yoksa Arduino Ohm Metre eğitimimizi takip ederek Arduino’nuzla bir Ohm metre yapabilirsiniz. Sadece termistörünüzün büyüklüğünü bilmeniz gerekir. Örneğin, termistör direnciniz 34.000 Ohm ise, 10K’LIK bir termistördür. 340.000 Ohm ise, 100K’LIK bir termistördur.

SICAKLIK OKUMALARININ LCD ÇIKIŞI İÇİN KOD

Sıcaklık okumalarını 16X2 Lcd’ye çıkarmak için öğreticimizi izleyin, Arduino’da LCD Ekran Nasıl Kurulur, ardından bu kodu panoya yükleyin:

#include <LiquidCrystal.h>

int ThermistorPin = 0;
int Vo;
float R1 = 10000;
float logR2, R2, T;
float c1 = 1.009249522e-03, c2 = 2.378405444e-04, c3 = 2.019202697e-07;

LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

void setup() {
Serial.begin(9600);
}

void loop() {

  Vo = analogRead(ThermistorPin);
  R2 = R1 * (1023.0 / (float)Vo - 1.0);
  logR2 = log(R2);
  T = (1.0 / (c1 + c2*logR2 + c3*logR2*logR2*logR2));
  T = T - 273.15;
  T = (T * 9.0)/ 5.0 + 32.0; 

  lcd.print("Temp = ");
  lcd.print(T);   
  lcd.print(" F");
  
  delay(500);            
  lcd.clear();
}

Leave a Response

ekurt
Tecrübelerini ve bildiklerini kendine saklamayan, iyi bir eğitimci olmaya çalışan Mühendis...