Arduino

Arduino Sıcaklık Sensörü Yapma (Termistör)

BİR TERMİSTÖR NASIL ÇALIŞIR?

Termistörler, sıcaklıkla dirençlerini değiştiren değişken dirençlerdir. Dirençlerinin sıcaklık değişikliklerine tepki verme şekline göre sınıflandırılırlar. Gelen Negatif Sıcaklık Katsayısı (NTC) termistör direnci, sıcaklık artışı ile azalır. Gelen Pozitif Sıcaklık Katsayısı (PTC) termistörler, sıcaklıktaki bir artış ile direnç artar.

NTC termistörleri en yaygın olanıdır ve bu öğreticide kullanacağımız tip budur. NTC termistörleri, ısıya duyarlı bir iletken malzeme oluşturmak için ısıtılan ve sıkıştırılan yarı iletken bir malzemeden (metal oksit veya seramik gibi) yapılır.

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

TEMEL BİR TERMİSTÖR DEVRESİ

DEVREYİ BAĞLAYIN

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

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

Termistörün üreticisi size direncini söyleyebilir, ancak değilse, bulmak için bir multimetre kullanabilirsiniz .

SICAKLIK ÖLÇÜMLERİNİN SERİ MONİTÖR ÇIKIŞI KODU

Yukarıdaki devreyi bağladıktan sonra, sıcaklık değerlerini Fahrenheit’teki seri monitöre çıkarmak için bu kodu Arduino’nuza yükleyin:

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;

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; 

  Serial.print("Temperature: "); 
  Serial.print(T);
  Serial.println(" F"); 

  delay(500);
}

 

Bu program Celsius ve Fahrenheit’i aynı anda gösterecektir:

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

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));
  Tc = T - 273.15;
  Tf = (Tc * 9.0)/ 5.0 + 32.0; 

  Serial.print("Temperature: "); 
  Serial.print(Tf);
  Serial.print(" F; ");
  Serial.print(Tc);
  Serial.println(" C");   

  delay(500);
}

 

SICAKLIK ÖLÇÜMLERİNİN LCD ÇIKIŞI KODU

#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();
}

What is your reaction?

Excited
0
Happy
0
In Love
0
Not Sure
0
Silly
0

You may also like

Leave a reply

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

More in:Arduino