Nr. 54 – NTC Temperatursensor

funduinoshop.com - Dein Onlineshop für Mikroelektronik
Für die Durchführung dieser Anleitung benötigst du:
Menge
Stückzahl
1x
1x
10x
1x
1x

In dieser Anleitung wollen wir mit Hilfe eines günstigen NTC Temperatursensors, bzw. Thermistors, die Temperatur messen.

Ein Thermistor ist ein Widerstandsthermometer, bzw. ein Widerstand, dessen Widerstandswert von der Temperatur abhängig ist. Der Begriff ist eine Kombination aus „Thermisch“ und „Resistor“, also aus „Temperatur“ und „Widerstand“. Es besteht aus Metalloxiden, die mit Stoffen wie Kunststoff, Epoxid oder Glas als Schutzschicht ummantelt werden.
Es gibt aus technischer Sicht zwei Arten von Thermistoren: negativer Temperaturkoeffizient (NTC) und positiver Temperaturkoeffizient (PTC).
Bei einem NTC-Thermistor nimmt der Widerstand ab, wenn die Temperatur ansteigt. Umgekehrt nimmt der Widerstand zu, wenn die Temperatur sinkt.
Bei einem PTC-Thermistor nimmt der Widerstand zu, wenn die Temperatur ansteigt. Umgekehrt nimmt der Widerstand ab, wenn die Temperatur sinkt. Diese Version wird jedoch sehr selten verwendet.
Thermistoren sind einfach zu verwenden und kommen daher auch sehr häufig in elektrischen Geräten des täglichen Bedarfs vor, wie z.B. in 3D-Druckern oder Robotern. Die Sensoren sind aufgrund ihrer einfachen Konstruktion sehr günstig und langlebig. Im vergleich zu teuren Temperatursensoren sind Sie allerdings auch anfällig für Abweichungen in den Messwerten wenn die Versorgungsspannung nicht stabil ist.

Der NTC Temperatursensor zur Verwendung mit Arduino

Wie auch bei anderen analogen Sensoren wird die Temperatur erst mit Hilfe eines Mikrocontrollers, wie z.B. einem Arduino UNO, MEGA oder NANO anhand des ausgelesenen Widerstandswerts berechnet. Bei einem NTC Temperatursensor ist die Auswertung der Messwerte jedoch etwas komplizierter, da die Widerstandsveränderung in Thermistoren nicht linear verläuft. Daher wird für die Umwandlung des Widerstandsmesswertes in einen Temperaturwert eine relativ aufwändige Formel benötigt. Diese Formel nennt man „Steinhart-Hart-Gleichung“.
Um sich etwas mehr Hintergrundwissen anzueignen bietet es sich an, diese Gleichung einmal zu studieren. In dieser Anleitung verzichten wir im Sinne einer didaktischen Reduktion auf die direkte Verwendung der Steinhart-Hart-Gleichung und greifen bei der Programmierung auf eine Programmbibliothek zurück, in der der Temperaturwert im Hintergrund berechnet wird.

Da es bei Thermistoren verschiedene Bauformen und Typen gibt, werden sie immer mit einigen technischen Informationen geliefert. Diese technischen Details sind unbedingt notwendig, damit aus den Messwerten die richtige Temperatur abgeleitet werden kann.

 

 

1) Thermistoren werden nach dem Widerstandswert kategorisiert, der bei 25°C gemessen wird.

2) Maximale und minimale Messtemperatur.

3) Notwendiger Vorwiderstand

4) B-Wert, dieser Wert ist im Datenblatt des Sensors zu finden

Der Schaltplan

Der Programmcode

Einbinden der Bibliothek

Im Versuchsaufbau wird der NTC-Sensor mit dem notwendigen Vorwiderstand in Reihe geschaltet. In unserem Versuch verwenden wir einen NTC-Sensor mit folgenden Daten:
Messbereich: -20C bis 105C
Widerstand: 10K Ohm
B-Wert: B3950

#include <Thermistor.h>
#include <NTC_Thermistor.h>
int Sensor_Pin = A0;
#define Referenzwiderstand   10000 // Widerstandswert des Widerstandes der mit dem NTC in Reihe geschaltet wurde.
#define Nominalwiderstand     10000 // Widerstand des NTC bei Normaltemperatur
#define Nominaltemperatur    25 // Temperatur, bei der der NTC den angegebenen Wiederstand hat
#define BWert                3950 // Beta Koeffizient(zu finden im Datenblatt des NTC)
Thermistor* thermistor;

void setup()
{
  Serial.begin(9600);
  // Nun wird der Sensor mit den spezifischen Daten initialisiert.
  thermistor = new NTC_Thermistor(Sensor_Pin, Referenzwiderstand, Nominalwiderstand, Nominaltemperatur, BWert);
}


void loop()
{
  const double celsius = thermistor->readCelsius(); //Temperatur auslesen
  Serial.print("Temperatur: "); // Ausgabe der Temperatur am Seriellen Monitor - hier nur der Text "Temperatur; "
  Serial.print(celsius); // An dieser Stelle wird der Temperaturwert an den Seriellen Monitor gesendet.
  Serial.println(" °C"); // Hinter dem Temperaturwert wird am Seriellen Monitor nun noch die Einheit "C" angezeigt.
  delay(1000); // An dieser Stelle pausiert das Programm für eine Sekunde. Dadurch wird am Seriellen Monitor ein Temperaturwert pro Sekunde angezeigt.
}

Funduino - Dein Onlineshop für Mikroelektronik

  • Dauerhaft 10% Rabatt für Schüler, Studenten und Lehrkräfte
  • Mehr als 2.000 Artikel sofort verfügbar!
  • Über 8 Jahre Erfahrung mit Arduino, 3D-Druck und co.
NEU