Menu
CoddyTech

Thermistor-Temperatur

Teil des Abschnitts Displays und Sensoren der Arduino-Journey von Coddy. Lektion 20 von 24.

Ein Thermistor ist ein Widerstand, dessen Widerstand sich mit der Temperatur ändert. Bei diesem Modul (einem NTC-Typ) sinkt die Spannung am OUT-Pin, wenn er sich erwärmt: analogRead() ergibt bei 25 Grad C etwa 512.

Der Messwert sinkt nicht linear, daher funktioniert map() nicht. Die Beta-Gleichung wandelt ihn in Grad um. BETA stammt aus dem Datenblatt des Bauteils (hier 3950), und log() ist eine mathematische Funktion, die auf dem Board integriert ist. Du musst der Mathematik nicht folgen: Kopiere die Zeile genau so.

const float BETA = 3950;

float celsius = 1 / (log(1 / (1023.0 / reading - 1)) / BETA + 1.0 / 298.15) - 273.15;

Behalte das .0 in 1023.0 bei. Bei 1023 / reading mit zwei ganzen Zahlen fällt der Bruchteil weg, und das Ergebnis liegt um viele Grad daneben.

challenge icon

Aufgabe

Mittel

Das Thermistormodul ist an A0 angeschlossen. Gib die Temperatur aus:

  • rechne den Messwert mit der Beta-Gleichung in Grad C um
  • gib sie mit Serial.println() zweimal pro Sekunde aus

Drücke Run, ändere die Temperatur auf dem Board und klicke dann auf Check.

Probier es selbst

const float BETA = 3950;  // der Beta-Wert des Thermistors

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

void loop() {
  int reading = analogRead(A0);
  // den Messwert in Grad C umrechnen und ausgeben
  delay(500);
}
quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Displays und Sensoren

Übe selbstständig: Arduino-Playground