NTC ile Sıcaklık Ölçümü
Günümüzde sıklıkla karşılaşmakta olduğumuz termistörler sıcaklık ile uçları arasındaki direnç değerini anlık olarak değiştirmekte olan devre elemanlarıdır. termistörler sıcaklığın değişimine karşı olarak direnç değerlerini doğrusal olmayan bir karakteristik eğri ile değiştirmektedirler.
İşte NTC’lerde bu termistörlerin bir çeşidi olarak karşımıza çıkmaktadır.
Bir termistörün direnç sıcaklık katsayısı veya diğer bir deyişle alfa (∝), aşağıdaki ifadeyle gösterildiği gibi, belirli bir sıcaklıkta (T) termistörün sıcaklıkla direncinin değişim oranının oranı olarak tanımlanır:
Burada T = Kelvin cinsinden sıcaklık ve R = T sıcaklığında Ohm cinsinden direnci simgelemektedir.
Alfa değeri, bir sıcaklık noktasında bir NTC termistörünün sıcaklık katsayısını hesaplamak için kullanılır.
NTC termistörleri için, alfa veya sıcaklık katsayısı, Santigrat (C) derece başına eksi yüzde direnç değişimi birimlerinde ifade edilir. Bir NTC termistörünün yarı iletken doğası nedeniyle, sıcaklık arttıkça direnç sıcaklık katsayısı azalır veya bu durumun tam tersi şekilde de çalışmaktadır.
NTC, R/T eğrisi boyunca her sıcaklık noktası için farklı olduğundan, değiştirilebilir NTC termistörleri, bir sıcaklık aralığında direnç toleransı yerine bir sıcaklık toleransıyla belirtilir [yani. ± 0,2 ̊C 0 ̊C ila 100 ̊C] . Sıcaklık toleransı, belirli bir sıcaklık noktasında elektrik direnci üzerindeki tolerans yüzdesiyle orantılı olduğundan, NTC, yüzde birimleriyle ifade edilen direnç toleranslarını hesaplamak için kullanışlıdır. Yüzde direnç toleransı, belirtilen sıcaklık toleransının, verilen sıcaklık noktasında termistörün NTC’si ile çarpılmasıyla belirlenir.
NTC (%/°C) × Sıcaklık Toleransı (± °C) = ± % Direnç Toleransı.
Ölçümün nasıl yapılacağını görmeden önce burada bilmemiz gereken bir konu vardır. Bildiğimiz gibi bu NTCler sayesinde bir sürü veri okuyacağız. Okunan bu değerleri doğrusallaştırmak ve daha yüksek hassasiyetle sıcaklığı ölçmek için belli başlı yöntemler kullanılmaktadır. İşte gelin o yöntemlerden birine kısaca bakalım.
Steinhart-Hart Denklemi
Steinhart-Hart denklemi, -80 ̊C ila 260 ̊C sıcaklık aralığındaki belirli sıcaklık aralıkları için mükemmel bir doğrusal eğri uydurmamızı sağlamaktadır.
Burada: T = Kelvin birimleri (°C + 273.15), A, B, C, D eğri uydurma katsayılarıdır ve ln(R) = ohm cinsinden bir direncin doğal logaritmasıdır.
Belirli bir sıcaklık aralığı için A, B, C, D katsayılarını belirlemek için, aslında 4 noktada sıcaklık değerlerini ve ona karşılık gelen direnç değerini bilmemiz gerekmektedir. Bu noktada her sıcaklık için bu denklemi yazdığımızda karşımıza 4 bilinmeyenli bir denklem gelecektir. İşte bu noktada bu denklemi çözmek için en çok kullandığımız yöntemlerden biri matrix çarpımı olacaktır.
Steinhart-Hart yöntemini de kısaca öğrendiğimize göre gelin artık NTC ile nasıl sıcaklık ölçülüyor onu görelim. Bu noktada NTC ile sıcaklık ölçmek istiyorsak öncelikle elimizdeki NTC’nin direncini bulmalıyız. Sonrasında elde edilen direnç değerini sıcaklık ile ilişkilendirmemiz gerekmektedir. Bu süreci gerçekleştirmek için önceden üzerinde bolca pratik yapmış olduğumuz bir gerilim bölücü devresi ve basit bir mikrodenetleyici işimizi kolayca görecektir.
Bu projemizi gerçekleştirmek için kontrol kartı olarak herkesin kolay bir şekilde edebileceği bir Arduino‘yu kullanmayı tercih ettik. Arduino erişimi kolay bir kart olduğu için projeyi gerçekleştirmek herkes için rahat olacaktır. Zaten sonrasında siz başka bir mikrodenetleyici ile yapmak isterseniz, yapmanız gereken tek şey kaynak kodu kendi sisteminize entegre etmek olacaktır. Ayrıca buradan kullandığımız NTC’nin veri sayfasına bakabilirsiniz.
Devre Şeması
Program Kodu
int ThermistorPin = A0;
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); // Termistörden analog veriler okunuyor
R2 = R1 * (1023.0 / (float)Vo - 1.0);
logR2 = log(R2);
T = (1.0 / (c1 + c2*logR2 + c3*logR2*logR2*logR2)); // Steinhart-Hart Denklemi
Tc = T - 273.15; // Sıcaklık Celsius cinsinden hesaplanıyor
Tf = (Tc * 9.0)/ 5.0 + 32.0; // Sıcaklık Fahrenheit cinsinden hesaplanıyor
Serial.print("Temperature: ");
Serial.print(Tf); // Sıcaklık yazdırılıyor
Serial.print(" F; "); // Fahrenheit birimi yazdırılıyor
Serial.print(Tc); // Sıcaklık yazdırılıyor
Serial.println(" C"); // Celsius birimi yazdırılıyor
delay(500);
}
Yorum yapma özelliği, forum tarafından gelen istek sebebiyle kapatılmıştır. Lütfen tartışmalar ve sorularınız için topluluk forumumuza katılın.