Thermistor

Example Sketch Code

Download Arduino IDE Sketch

Beschreibung

Benötigte Bauteile

  • (1) x SCS Edu-Platine
  • (1) x LCD1602 Modul
  • (1) x 10K Ohm Widerstand
  • (1) x Thermistor
  • (1) x Potentiometer
  • (1) x 830 Punkte Breadboard
  • (18) x M-M Kabel (Männlich zu Männlich DuPont Jumper Kabel)

Einführung in die Komponenten

Ein Thermistor (thermal resistor) ist ein thermischer Widerstand – ein Widerstand, der seinen Wert mit der Temperatur ändert. Technisch gesehen sind alle Widerstände Thermistoren, ihr Widerstand ändert sich leicht abhängig von der Temperatur. Aber die Widerstandsänderung ist nur minimal und schwer zu messen. Thermistoren sind so gebaut, dass sie ihren Widerstand stark abhängig von der Temperatur ändern, sodass ein 1-Grad-Unterschied mehr als 100 Ohm Widerstandsunterschied bedeuten können! Es gibt zwei Arten von Thermistoren: NTC (Negativer Temperaturkoeffizient) und PTC (Positiver Temperaturkoeffizient) -Thermistoren. Normalerweise werden NTC- Thermistoren zur Temperaturmessung genutzt. PTCs werden oft als wiederverwendbare Sicherungen benutzt. Bei steigender Temperatur steigt ebenfalls der Widerstand an. Da durch steigenden Strom die Temperatur steigt, begrenzt der PTC-Thermistor somit durch den Widerstand den Strom wieder, bis normale Temperaturen erreicht sind. Dieser Effekt eignet sich gut zum Sichern von Schaltkreisen.

Verbindungsschema

Der Sketch stellt die aktuelle Temperatur auf dem LC-Display dar.

Verbindungsschema Thermistor

Code

Ein Kommentar über dem lcd Befehl ist nützlich, falls man später mal die Pin- Belegung anpassen will.

// BS    E    D4 D5    D6  D7
LiquidCrystal lcd(7, 8, 9, 10, 11, 12);

In der loop-Funktion passieren nun zwei interessante Dinge. Zum einen muss das analoge Signal des Thermistors in die eigentliche Temperatur umgewandelt werden und als zweites muss die berechnete Temperatur dann auch angezeigt werden. Zuerst aber schauen wir uns an, wie man die Temperatur berechnet:

int tempReading = analogRead(tempPin);
double tempK = log(10000.0 * ((1024.0 / tempReading - 1)));
tempK = 1 / (0.001129148 + (0.000234125 + (0.0000000876741 * tempK * tempK ))
* tempK );
float tempC = tempK - 273.15;
float tempF = (tempC * 9.0)/ 5.0 + 32.0;

Wechselnde Werte auf einem LC-Display anzuzeigen ist kompliziert. Das Hauptproblem ist, dass sich die Anzahl der Ziffern je nach Temperatur ändern kann. Wenn die Temperatur also beispielsweise von 101,50°C auf 99,00°C sinkt, dann kann es passieren, dass die zusätzliche Ziffer des ersten Wertes auf dem Display stehen bleibt, wenn vergessen wird sie zu überschreiben. Um das zu verhinden, werden wir bei jeder Änderung die gesamte Zeile neu setzen.

lcd.setCursor(0, 0);
lcd.print("Temp C");
lcd.setCursor(6, 0);
lcd.print(tempF);

Aufbau

Aufbau Thermistor