Temperaturmessung mit Heißleiter MF52

Thermistor MF52B3950 (NTC)

In diesem Experiment wird der Heißleiter (NTC) MF52B3950 verwendet. Dies ist ein Thermistor, d.h. elektrischer Widerstand, dessen Wert sich mit der Temperatur ändert. In unserem Fall des Heißleiters einen niedrigeren Widerstand bei hohen Temperaturen und einen höheren Widerstand bei niedrigeren Temperaturen.
Der MF52 hat einen sog. B-Wert von 3950 Kelvin und einen Nennwiderstand von 100 kΩ bei einer Umgebungstemperatur von 25°C.

MF52 Thermistor

Thermistor MF52B3950 (NTC)

Der MF52 ist ein kleiner in Epoxyharz gegossener NTC Thermistor, von dem es verschiedenste Ausführungen gibt. Das Datenblatt des jeweiligen Herstellers bietet eine Übersicht, anhand der man in bestimmten Abständen den Widerstand einer bestimmten Temperatur zuordnen kann. Man kann natürlich auch den NTC in einem gewissen Temperaturbereich kalibrieren. Aufgrund der Halbleitereigenschaften des NTCs kann man auch die Temperatur errechnen:

Formel zur Berechnung der Temperatur des MF52 Thermistors

RT = ermittelter Widerstand abhängig von der Temperatur
RN = Widerstand bei Nenntemperatur (hier 100 kΩ)
B = angegebener B-Wert vom Hersteller (hier 3950 Kelvin)
TN = Nenntemperatur in Kelvin (= 273,15 K + 25°C = 298,15 K)
T = gemessene Temperatur (zu erhaltende Wert)

Verwendete Bauteile

Aufbau und Funktionsweise

Der MF52B3950 hat lt. Hersteller bei 25°C einen Nennwiderstand von 100kΩ. Um mit dem Arduino nun den aktuellen Widerstandswert ermitteln zu können, muss nun ein zweiter aber fester Nennwiderstand RN mit 100kΩ in Reihe zu dem MF52 geschaltet werden, um somit einen Spannungsteiler zu schaffen.
Es teilt sich nun die gesamte Spannung Uges auf den MF52 und den anderen Widerstand auf und man kann mit der Spannungsteilerregel RT berechnen:
Uges / (100kΩ + RT) = UNTC / RT
Umgestellt kann man mit dieser Formel nun RT berechnen:
RT = (100kΩ*UNTC/Uges) / (1-UNTC/Uges)
Allerdings gibt der Arduino die Spannung nicht direkt aus, sondern einen Wert zwischen 0 und 1023. Daher muss der gemessene Wert zunächst in eine Spannung umgerechnet werden, d.h.:
UNTC/Uges = Bitwert/1024

Aufbau auf dem Breadboard

Sketch

#define PIN_THERMISTOR A0

float R1 = 10000.0;
float logR2, R2, T, Tc;
float c1 = 1.009249522e-03;
float c2 = 2.378405444e-04;
float c3 = 2.019202697e-07;

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

void loop()
{
    int value = analogRead(PIN_THERMISTOR);
    R2 = R1 * (1023 / (float)value - 1);
    logR2 = log(R2);
    T = (1.0 / (c1 + c2*logR2 + c3*logR2*logR2*logR2));
    Tc = T - 273.15;

    Serial.println(String(Tc) + " °C");

    delay(2000);
}
Ausgabe der Temperatur auf der seriellen Konsole
Abb.: Ausgabe der Temperatur auf der seriellen Konsole
zurück