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.
Aufgabe
MittelDas 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);
}
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