Temperatur-Theorie
Wie misst der Drucker Temperatur? In fünf Schritten. Ein reduzierter Überblick.
Einstiegs-Theorie sozusagen. Schulwissen vorausgesetzt.
(Ich möchte alle Profis bitten, hier von der „1023 vs. 1024 -Debatte“ abzusehen. Die gehört frühestens in einen Drilldown-Blog zum 4. Schritt.)
Von der Temperatur im Heatblock oder Heatbed bis zum gemessenen Temperaturwert in °C in der Firmware geht’s in fünf Schritten:
1 – Der Thermistor ändert abhängig von der Temperatur seinen Widerstand
Unser „Standard“-Thermistor leitet umso besser, je wärmer er wird:
- Bei 25°C hat er einen elektrischen Widerstand von 100.000 Ohm.
- Bei 200° sind es nur noch ca. 700 Ohm.
Die Temperatur-Widerstands-Kennlinie des Standard-Thermistor kann mit dem bekannten Wert von 100.000 Ohm bei 25°C und dem Kennwert Beta = 3950 recht genau berechnet werden:
2 – Ein Spannungsteiler macht den Widerstand als Spannung messbar
Der Thermistor ist mit einem normalen Widerstand auf dem Drucker-Mainboard zwischen 5V und 0V als Spannungsteiler in Reihe geschaltet.
Dabei ist das Verhältnis der Spannungen, die über den Widerständen jeweils gemessen werden, gleich dem Verhältnis der Widerstände. Kennt man also den Spannungswert VT am Punkt zwischen Thermistor und Widerstand, kennt man den aktuellen Widerstandswert RT des Thermistors.
3 – Ein Tiefpass filtert schnelle Änderungen aus dem Spannungsverlauf heraus.
Dies ist das Mittel der meisten Druckerhersteller gegen das Thermistorflimmern. Ein R-C-Glied oder Tiefpass auf dem Mainboard aus einem Widerstand und einem Kondensator blockiert schnelle Änderungen.
Eine schnelle Spannungsänderung muss über den Widerstand R erst den Kondensator C aufladen, bevor sie den Ausgang des Tiefpasses erreicht. Sind R und C richtig gewählt, ist die Änderung schon wieder vorbei, bevor sich die Spannung über dem Kondensator deutlich ändern konnte.
Beim Duet 2 Board mit R = 10.000 Ohm und C = 2,2 µF werden Spannungsschwankungen mit einer Frequenz über 160 Hz blockiert.
4 – Ein Analog-Digital-Wandler erzeugt aus der Spannung einen Zahlenwert zwischen 0 und 1023
Im Prozessorchip des Mainboards sind meistens schon Analog-Digital-Wandler eingebaut. Beim „Standard-Drucker“ hat der ATmega2560-Chip einen Analog-Digital-Wandler mit 16 Eingängen. Diese sind als Anschlusspins des Prozessorchips herausgeführt. An einem davon ist der Ausgang des Tiefpasses VT angeschlossen.
Der Analog-Digital-Wandler hat eine Auflösung von 10 Bit. Damit misst er im Standard-Drucker Eine Spannung zwischen 0 und 5 Volt als Zahlen zwischen 0 und 1023.
5 – Mit einer Formel berechnet der Prozessor aus dem Zahlenwert von 0 bis 1023 die Temperatur
Über den Spannungsteiler würde der Analog-Digital-Wandler die vollen 5V sehen, also einen Wert von 1023 messen.
Misst der Wandler über dem Thermistor den Wert ADC, liefert der Dreisatz den Widerstandswert des Thermistors:
Die Formel aus dem Bild umgestellt:
Schließlich wird die Temperatur dann mit der umgestellten Formel der Kennline aus 1 aus diesem Widerstandswert berechnet:
Waren e-Funktion und Logarithmus in der Schule also doch zu etwas gut.
Selbstverständlich könnte man zu jedem Schritt einen ganzen eigenen Blog-Beitrag schreiben. Wenn Ihr daran Interesse habt und Euch nicht zu sehr an Schulbücher erinnert fühlt, raffe ich mich vielleicht auf.
Sehr schön, danke!
Ich freue mich immer über solche Grundlagenerklärungen!
Guter Bericht!
Auch für Laien, toll erklärt. *Daumen hoch
Danke, ein interessanter Beitrag gut aufbearbeitet!
Ich hätte nichts dagegen, wenn es mehr von solchen Sachen hier gibt und finde den auch Vorschlag von top_gun_de gut auf die praktischen Unterschiede der gängigen Thermistoren einzugehen!
Vielen Dank für den verständlichen und informativen Beitrag!
Ich hatte zuletzt mit ebendiesem Thema Probleme und als zentrales Element ist der Thermistor immer eine potenzielle Fehlerquelle.
Super Klasse !
Eine sehr gute Darstellung. Wenn ich mir einen Folgebeitrag wünsche dürfte: Praktische Unterschiede der gängigen Thermistoren – 3950, 104-NT2, PT-100, PT-1000. Warum will man welchen?
Joa. Könnte man mal was mit machen, jo.
Könnte sein, dass wir da vorher aber noch etwas mehr Theorie brauchen, z.B.: Wie ist der Pullup-Widerstand so dimensioniert, dass im Zusammenspiel mit dem Thermistor eine möglichst hohe Genauigkeit erreicht wird. Soweit hab ich das für den Standard-Thermistor schon mal in XLS bearbeitet. Könnte sein, dass man für grob andere Thermistoren auch den Pullup-Widerstand optimieren müsste. Muss ich mal drüber nachdenken.
Zu den Platin-Sensoren habe ich das schon als Empfehlung gelesen – wobei das alleine für mich schon ein Grund ist die Finger davon zu lassen. Löten auf SMD-bestückten Platinen ist nicht meins, fällt mir schon im normalen 2,54er-Raster schwer genug.
Aber die Frage „104 NT-2 oder 3950“ habe ich mir gerade selbst gestellt, als ich ein neues Hotend zusammenbaute. Im V6 und Dragon steckt ein 104NT-2, in der Bastelkiste war aber nur noch ein 3950. Bei den Chinesen ist der 3950 irgendwie der Standard, bei E3D der 104NT-2. (Bis 285°)
Wenn man googlet kommt man dazu dass Marlin sich mit dem 3950 wohl schwergetan hat und es darum sogar mehrere Einträge gibt.
Im Voron-Team schauen sie gerade, ob der 3950 nicht im typischen Temperaturbereich sogar Vorteile bei der Genauigkeit hat.
Ich bin dann beim 104NT-2 geblieben, weil alle meine Filamentprofile mit dem 104NT-2 erstellt sind, und mir die Konsistenz wichtiger als die absolute Genauigkeit ist. Ob der Sensor jetzt bei 245° um 2 oder 5° vom echten Wert abweicht ist egal, ich weiß bei welchem Wert ich ein gutes Ergebnis bekomme. Ob das jetzt in echt 242 oder 248° ist, ist am Ende egal, wichtig ist die Wiederholbarkeit beim nächsten Drucken.