Ich habe das Thema mit dem PT100 Sensor weiter verfolgt und jetzt umgesetzt.
Zum E3D Hotend kommt auch der E3D PT100 Sensor zu um Einsatz:
https://e3d-online.com/collections/prin ... ure-sensor
Auf der Suche nach PT100 Verstärkerschaltungen bin ich auf die Dokumente und Beispiele von Texas Instruments gestossen:
https://www.ti.com/lit/an/slyt442/slyt442.pdf
Mit in dem Dokument verlinkten Excel Sheet kann man sich die Widerstände für die Schaltung ausrechnen lassen.
Mein Temperaturbereich und Ausgabespannung: 0°C - 500 °C, 0 - 5V
Schaltung simuliert:
2020-06-28 15_31_10-TI-OP-PT100-1 - Multisim - [TI-OP-PT100-1 _].png
Das gute ist, man muss an der Hauptplatine nichts rumlöten. Der Operationsverstärker kompensiert den 4,7k Pullup am ADC Eingang. Der Stecker für die Extrudertemperatur kann weiter verwendet werden.
2020-06-28 15_52_39-001395717-sp-01-en-RENKFORCE_3D_DRUCKER_RF2000.pdf - Adobe Acrobat Reader DC.png
Eine Platine entworfen für 2 Kanäle.
5V von einer freien Stiftleiste abgegriffen und die Versärkungsplatine an den Extrudertemperatur Stecker angeschlossen.
Derzeit kein Bild da im Drucker bereits eingebaut.
In der Firmware in der Configuration.h den USER_THERMISTORTABLE1 mit den Werten aus dem Excel Sheet belegt:
Code: Alles auswählen
#define NUM_TEMPS_USERTHERMISTOR1 50
#define USER_THERMISTORTABLE1 { {2*4, 14*8}, {23*4, 24*8}, {43*4, 34*8}, {64*4, 44*8}, {84*4, 54*8}, {105*4, 64*8}, {125*4, 74*8}, {146*4, 84*8}, {166*4, 94*8}, {187*4, 104*8}, {207*4, 114*8}, {228*4, 124*8}, {249*4, 134*8}, {269*4, 144*8}, {290*4, 154*8}, {310*4, 164*8}, {331*4, 174*8}, {351*4, 184*8}, {372*4, 194*8}, {393*4, 204*8}, {413*4, 214*8}, {434*4, 224*8}, {454*4, 234*8}, {475*4, 244*8}, {496*4, 254*8}, {516*4, 264*8}, {537*4, 274*8}, {557*4, 284*8}, {578*4, 294*8}, {599*4, 304*8}, {619*4, 314*8}, {640*4, 324*8}, {660*4, 334*8}, {681*4, 344*8}, {701*4, 354*8}, {722*4, 364*8}, {743*4, 374*8}, {763*4, 384*8}, {784*4, 394*8}, {804*4, 404*8}, {825*4, 414*8}, {845*4, 424*8}, {866*4, 434*8}, {887*4, 444*8}, {907*4, 454*8}, {928*4, 464*8}, {948*4, 474*8}, {969*4, 484*8}, {989*4, 494*8}, {1010*4, 504*8} }
In der RFx000.h muss noch der Sensortyp angepasst werden, bzw dass der USER_THERMISTORTABLE1 verwendet wird:
Code: Alles auswählen
#define EXT0_TEMPSENSOR_TYPE 51 //USER_THERMISTORTABLE1
Im Nachgang musste ich einen Offset von 14°C mit einrechnen. Es zeigte dass die Anzeige am Drucker nicht mit der realen Temperatur übereinstimmte. Es wurden 90°C eingestellt. Das Multimeter mit Thermoelement zeigte ca. 100°C an. Am PT100 war die Spannung von 124mV zu messen. Die Verstärkerplatine gab eine Spannung von 1.06V aus. Die Werte passten in etwa zum Excel Sheet.
Nach Versuchen den ADC bzw. den Roh Wert ausgeben zu lassen bin ich zu keiner Übereinstimmung und Lösung gekommen. Es wurde kein Zusammenhang zwischen Roh-Wert, ADC Wert und Temperaturwert aus dem USER_THERMISTORTABLE1 gefunden, Der Roh-Wert passt nicht zu definierten Temperatur.
Ich könnte mir vorstellen dass es was mit FEATURE_HEAT_BED_TEMP_COMPENSATION zu tun hat. Ich habe einen Offset von 15°C definiert:
Code: Alles auswählen
/** \brief The following values represent the setpoint temperatures */
#define BED_SETPOINT_TEMPERATURES {60, 80, 100, 120, 140, 160}
/** \brief The following values represent the real temperature which is measured at the surface of the printing bed in case the temperature sensor delivers the setpoint temperatures */
#define BED_MEASURED_TEMPERATURES {45, 65, 85, 105, 125, 145}
An der Stelle in der Firmware in der Extruder.cpp in der die Temperaturberechnungen stattfinden wird auch die FEATURE_HEAT_BED_TEMP_COMPENSATION mit einbezogen.
Mit meinem Kentnissstand kann ich diese Vermutung aber nicht belegen.