Hallo, ich möchte mit einem 4051 Analogschalter 8 NTCs auslesen. Der NTC hat 100KOhm und braucht im Normalfall einen 4K7 Pullup an 3.3V. Nun die Frage: Was wäre besser (und warum), 8 Pullups an die 8 NTCs oder einen Pullup an den Ausgang des 4051? Rein theorethisch müsste das Ergebnis doch dasselbe sein, ist das so? Es soll eine Erweiterung für meinen 3D Drucker werden... Danke, Gruß, Wolfram.
Theoretisch reicht ein Widerstand. Praktisch verfälscht der R_on des Analogschalters den Spannungsteiler.
Rein theoretisch sind getrennte Pull-Ups natürlich besser. Weil du eine Spannung messen willst, und hoffentlich einen einigermassen hochohmigen Eingang am AD-Wandler hast.
Wolfram F. schrieb: > Der NTC hat 100KOhm Hast Du Dir mal Gedanken darüber gemacht, welchen Einfluss der Serienwiderstand des 4051 auf die Messung hat? In welchem Bereich verändert sich der Widerstand Deines NTC in dem Temperaturbereich, den Du messen möchtes? Wie groß ist der bei Raumtemperatur, wie groß ist der bei Betriebstemperatur (Heizbett oder Extruder)?
Mario M. schrieb: > Theoretisch reicht ein Widerstand. Praktisch verfälscht der R_on > des > Analogschalters den Spannungsteiler. laut datasheet ist der Ron ca 470Ohm bei 5V. Das könnte das Messergebniss tatsächlich verfälschen... Um wieviel Grad ist zu raten.. Ich hatte mit weitaus weniger Ron gerechnet/geschätzt. dann ist wohl besser 8 Pullups zu verwenden
Wolfram F. schrieb: > einen Pullup an den Ausgang des 4051 Dann wird der Messwert durch den (pro Kanal durchaus unterschiedlichen) Bahnwiderstand des 4051 verfälscht weil ja bis zu 1mA fliessen kann, also eine schlechte Lösung.
Da die Dinger sowieso nicht linear sind, wird es genügen einen Pull-Up zu nehmen und für die acht Kurvenverläufe entweder Interpolationstabellen oder Polynome zu erstellen. Beides bezieht dann die Innenwiderstände des Muxers automagisch mit ein. Du kannst auch acht Pull-Ups nehmen, musst jedoch trotzdem den gleichen (recht überschaubaren) Aufwand betreiben.
74HC4051 z.B. wären niederohmiger und die Abweichungen der Kanäle zueinander recht klein. Der Kanalwiderstand kann/muß in der Berechnung berücksichtigt werden und es bleibt auch noch die Frage nach der abs. Genauigkeit. Andreas M. schrieb: > Bau dir eine Matrix mit Reedrelais Dann doch eher 8 x 4k7 Widerstände.
Norbert schrieb: > Da die Dinger sowieso nicht linear sind, wird es genügen einen Pull-Up > zu nehmen und für die acht Kurvenverläufe entweder > Interpolationstabellen oder Polynome zu erstellen. Beides bezieht dann > die Innenwiderstände des Muxers automagisch mit ein. > > Du kannst auch acht Pull-Ups nehmen, musst jedoch trotzdem den gleichen > (recht überschaubaren) Aufwand betreiben. Tabellen u.Ä. kommen nicht in Frage, da später 2 4051 die NTCs auslesen sollen: 1.4051 schaltet einen NTC zum Mainboard des 3D-Druckers 2.4051 kommt an den µC und liest die aktuellen Temperaturen aus. Ich muss später noch mal die Temperatur genau prüfen und ggf. in der Marlin anpassen, dann kann ich in meiner Software auch eine Anpassung machen. Ich nehme nun 8 Pullups dann sollte das passen!° Danke für die Vorschläge und Hinweise!
Wolfram F. schrieb: > Ich nehme nun 8 Pullups dann sollte das passen Wenn du genug Strom hast. Sonst könnte man, um Strom zu sparen, einen pull up mit einem zweiten 4051 auf den zu messenden NTC schalten, muss aber neben der Spannung am NTC auch die Spannung am pull up messen, um den Einfluss des 4051 ausrechnen zu können.
1 | +5V |
2 | | |
3 | 4k7 |
4 | | |
5 | +----- A/D |
6 | | |
7 | 4051 |
8 | | |
9 | +--4051-- A/D |
10 | | |
11 | NTC 8x |
12 | | |
13 | GND |
Wolfram F. schrieb: > Tabellen u.Ä. kommen nicht in Frage, > da später 2 4051 die NTCs auslesen sollen: > 2.4051 kommt an den µC und liest die aktuellen Temperaturen aus. Da bin ich ja mal gespannt. Dir ist klar, dass die Widerstandsverläufe logarithmisch sind und dann noch nicht einmal linear. Wenn also weder Tabellen noch ›Ä‹ in Frage kommen, dann musst du einen wirklich tollen Trick kennen um mit dem µC an die Temperaturen zu kommen.
Norbert schrieb: > Wenn also weder Tabellen noch ›Ä‹ in Frage kommen, dann musst du einen > wirklich tollen Trick kennen um mit dem µC an die Temperaturen zu > kommen. Den Trick kann man z.B. bei Evaluation Boards von Cypress bestaunen.
Cartman E. schrieb: > Norbert schrieb: >> Wenn also weder Tabellen noch ›Ä‹ in Frage kommen, dann musst du einen >> wirklich tollen Trick kennen um mit dem µC an die Temperaturen zu >> kommen. > > Den Trick kann man z.B. bei Evaluation Boards von Cypress bestaunen. Es kommt kein ›Ä‹ in Frage! So lautet die Aussage.
Mario M. schrieb: > Theoretisch reicht ein Widerstand. Praktisch verfälscht der R_on des > Analogschalters den Spannungsteiler. Praktisch ist es so, dass bei Abweichungen zwischen Theorie und Praxis die Theorie das Problem nicht ausreichend detailiert beschreibt und erweitert werden muss, hier um den Eindluss von R_On.
:
Bearbeitet durch User
Norbert schrieb: > Es kommt kein ›Ä‹ in Frage! So lautet die Aussage. Tja, schade. Kommt der Trick doch ohne ein Ä aus. Aber es sind ja nicht meine Zelsiusse die es zu messen gilt.
Wolfram F. schrieb: > 1.4051 schaltet einen NTC zum Mainboard des 3D-Druckers > 2.4051 kommt an den µC und liest die aktuellen Temperaturen aus. Du könntest auf die ganze Analogmultiplexerei verzichten, indem Du den ADC Deines µC ausreichend hochohmig an den NTC ankoppelst, d.h. über einen OpAmp o.ä. Dann kann der Drucker den NTC messen, wann er will, und kommt nicht durcheinander, weil der durch Deine Analogmultiplexerei vielleicht gerade mal nicht da ist, und Dein µC kann den NTC ebenfalls messen - und das auch gleichzeitig. Schließlich geht es nur um eine simple Spannungsmessung, mehr nicht.
Harald K. schrieb: > Du könntest auf die ganze Analogmultiplexerei verzichten, indem Du den > ADC Deines µC ausreichend hochohmig an den NTC ankoppelst, d.h. über > einen OpAmp o.ä. Auf welche wunderbare Weise willst du mit einem OPV die Anzahl der AD-Eingänge vermehren? > Schließlich geht es nur um eine simple Spannungsmessung, mehr nicht. Eben wohl nicht nur eine. ☺
Cartman E. schrieb: > Auf welche wunderbare Weise willst du mit einem OPV die Anzahl > der AD-Eingänge vermehren? Er will einen an einem 3d-Drucker angeschlossenen NTC einen µC anschließen, um parallel die gleiche Temperatur messen zu können. So jedenfalls stellt sich das ganze im Verlauf der Erzählung hier dar. Und wenn nicht: Man multiplext nicht die NTCs, sondern man packt jeden NTC mit entsprechender Beschaltung an einen OpAmp, und kann dann die Ausgänge der OpAmps multiplexen. Dann spielt der Widerstand der Multiplexer eine nachrangige Rolle, weil man nicht mehr in den zur Messung verwendeten Widerstandsteiler eingreift.
Norbert schrieb: > Da bin ich ja mal gespannt. Dir ist klar, dass die Widerstandsverläufe > logarithmisch sind und dann noch nicht einmal linear. > Wenn also weder Tabellen noch ›Ä‹ in Frage kommen, dann musst du einen > wirklich tollen Trick kennen um mit dem µC an die Temperaturen zu > kommen. Die NTC-Kennlinien sehen zwar im erstem Moment "schwierig" aus, aber das Thema ist gut erforscht und Code gibt's schon, z.B. in meinem github: https://github.com/uhi22/ccs32clara/blob/main/ccs/temperatures.cpp Der Trick ist, aus dem ADC-Wert erstmal den Widerstand des NTCs zu berechnen. Das geht mit umstellen der Spannungsteilerformel. Und für die Umrechnung von Widerstand in Temperatur hat der Herr Steinhart eine Formel erfunden, die die Parameter aus dem Datenblatt braucht.
Wolfram F. schrieb: > ich möchte mit einem 4051 Analogschalter 8 NTCs auslesen. Nimm einen besseren 8:1 Multiplexer als diesen alten Zombie. Der (pinkompatible) MAX4617 hat bei 5V Versorgung max. 10 Ohm Übergangswiderstand. Dann geht das locker ohne großen Messfehler mit 1 einzigen Pullup.
noch etwas mehr Erklärung zu dem Projekt: Der 3D Drucker wird vergrößert, bedeutet das Druckbett beträgt 880x450mm. Da man nicht immer so große Objekte druckt, habe ich 8x 220x220mm Silikon-Heizfolien mit 230V/500W jeweils als Bettheizung vorgesehen. Diese sind per Atmega2560 und TFT-Touch Display anwählbar und werden per 74HCT138 jeweils einzelnd per SSR angesteuert. Die Heizzeit pro Heizfolie kann ich zwischn 10 und 1000ms einstellen. So ist auch gesichert, daß selbst bei 8 angewählten Heizfolien trotzdem nur eine Leistung von max. 500W verbraucht wird. Da der Tisch aus einer 3mm Aluplatte besteht, sollte sich die Wärme gut verteilen. (Mit einer Glasplatte muss ich erst probieren, wer weiss, ob das Glas bei einseitiger Hitze nicht springen wird). Da die 8 Heizungen jeweils einen NTC haben, werden diese per 4051 (welcher mit den Logik Eingängen des 74HCT138 gekoppelt ist) ebenfalls nacheinander zum 3D-Drucker Mainboard durchgeschaltet. Das 3D Drucker Mainboard "weiss" also nix von verschiedenen Heizzonen. Die Bed-PID Regeleung vom Mainboard wird also weiterhin ohne Eingriff funktionieren. Der 2.4051 ist nur dafür da, damit ich auf dem Display alle Temperaturen der 8 Heizzonen kontrollieren kann. Damit die SSR's nur dann schalten, wenn der Ausgang fürs Bed vom 3D-Mainboard auch eingeschaltet ist, habe ich einen Optokoppler vorgesehen. Dieser schaltet dann den 74HCT138 Enable oder nicht. Ich denke das ist ganz gut durchdacht. Auf jeden Fall werde ich nun 8 Pullups für jeden NTC einbauen. Der Ron von 470-1000 Ohm des 4051 ist in dem Falle ja ein Serienwiderstand der die Spannung des Pullups+NTCs nicht beeinflussen sollte. Sorry, ich hätte vorher ins Datenblatt des 4051 schauen sollen, hätte nie erwartet, daß der Ron so hoch ist. Nochmal zu den 8 Heizfolien und NTCs: Die Heizfolien würde ich mit verdillten Kabeln plus Metall-Abschirmschlauch (an PE) anschliessen, die NTC's mit abgeschirmten "Mikrofon-Kabeln". Die SSRs sollen angeblich Zero-Crossing Versionen sein, sind aber aus China, daher weiss ich nicht, ob das auch so ist. EDIT: laut Datenblatt sind das Zero-Crossing! Also sollten keine großartigen EMV Probleme entsehen. Der 3D Drucker bekommt noch mehr! Bis zu 8 Werkzeuge, also Extruder, Laser oder Spritzen-Dispensor. Dafür "lauscht" der 2560 auf dem I2C Bus nach eigenen Befehlen die u.A. die Werkzeug-Nummer enthält. Im GCODE des Prusa-Sliers kann ich die Werkzeug-Positionen bestimmen und den Werkzeugwechsel veranlassen. Am "Kopf" befinden sich 2 E-Magnete die stromlos magnetisch sind und den Werkzeug-Träger halten. Diese werden, wenn das Werkzeug an seiner Parkposition gelandet ist bestromt und der Kopf zurückgefahren. Dies klappt mit (z.Z. noch) schon sehr gut. Auch von den 8 Werkzeugen "weiss" das §D Drucker-Mainboard nix. Die (bis zu) 8 Extruder werden später ebenfalls per 74HCT138 ausgewählt (Enable Eingang der DRV8825 Driver) . Die 8 Heizungen mit ihren NTCs werden dann wie beim Bed angesteuert. Um die 24V/70W Hotends anzusteuern, werde ich dann MOSFETs benutzen. SSRs wären da etwas mit Kanonen auf Spatzen... :-) Hab jetzt soviel be/geschrieben, ich denke jetzt sollte mehr Klarheit über mein Projekt da sein. Das Projekt mehr irre Spaß zumal wenn man schon Erfolge sieht, wie in X/Y Richtung mit 60000mm/s (!!!) den Kopf fliegen lassen!
Lothar M. schrieb: > Wolfram F. schrieb: >> ich möchte mit einem 4051 Analogschalter 8 NTCs auslesen. > Nimm einen besseren 8:1 Multiplexer als diesen alten Zombie. Der > (pinkompatible) MAX4617 hat bei 5V Versorgung max. 10 Ohm > Übergangswiderstand. Dann geht das locker ohne großen Messfehler mit 1 > einzigen Pullup. Oh, guter Tip! Den kannte ich garnicht! Noch besser wenn der sogar Pinkompatibel ist! Danke Dir!!
Wenn 4,3 V reichen (scheint so, denn da steht was von Pull-Up zu 3,3 V), dann gibt's da noch den NX3L4051 mit weniger als 1 Ω. Und der hat sogar "4051" im Namen.
F. P. schrieb: > Wenn 4,3 V reichen (scheint so, denn da steht was von Pull-Up zu 3,3 V), > dann gibt's da noch den NX3L4051 mit weniger als 1 Ω. Und der hat sogar > "4051" im Namen. Nicht schlecht! Aber die Muxer werden ja vom ATMEGA2560 angesteuert, der hat 5V als VCC. Die MAX4617 sind ideal (und schon bestellt) Anbei noch die aktuelle Schaltung (das umrandete ist bereits fertig layoutet) BTW: weiss jemand ob es ein ULP für EAGLE 9x gibt, welches "eckige" Leiterbahnen-Ecken automatisch in gerundete Ecken ändert?
:
Bearbeitet durch User
Uwe schrieb: > Die NTC-Kennlinien sehen zwar im erstem Moment "schwierig" aus, aber das > Thema ist gut erforscht und Code gibt's schon, Ja klar gibt's code, massig, hier auch. ;-) Aber eine Berechnung (oder ›Ä‹) zu benutzen wurde ja ausgeschlossen. Es muss ja kein (ach du meine Güte, ein) Polynom sein, kann man auch beliebig einfacher haben. Ich habe auch schon so einige Male mit NTCs gearbeitet. Und bevor ich mit externer Beschaltung herum-clowne, lasse ich gerne den µC ein viertel Promille seiner Rechenleistung darauf verwenden. Hat mich noch nie enttäuscht.
Wolfram F. schrieb: > Die MAX4617 sind ideal (und schon bestellt) Klasse, damit hast Du die Kosten für 7 x 4k7 gespaart und reduzierst die Messfehler vermutlich von 2,7 % auf 2,6 % ;-)
Lothar M. schrieb: > Nimm einen besseren 8:1 Multiplexer als diesen alten Zombie. Der > (pinkompatible) MAX4617 hat bei 5V Versorgung max. 10 Ohm > Übergangswiderstand. Diese Spezial-Muxer läßt sich AD allerdings fürstlich bezahlen. Dagegen sind 2 * 74HC4051 nur Pillepalle. Auch haben viele ADCs gleich einen Konstantstromausgang für RTD-Messung (z.B. AD7792). Der eine 4051 schaltet den Konstantstrom um, der andere den hochohmigen ADC. Und schon ist der teure high-end Muxer eingespart, ganz ohne Meßfehler. Und da der Konstantstromausgang die gleiche Referenz benutzt, wie der ADC, hat man sogar eine echte ratiometrische Messung. Der 4051 ist also überhaupt kein "alter Zombie", wenn man ihn richtig einsetzt.
:
Bearbeitet durch User
Beitrag #7938673 wurde vom Autor gelöscht.
Gerald B. schrieb: > Photo-MOS gibts auch recht niederohmig Ob das nötig ist, hängt von den Anforderungen ab. Wie klein und wie stabil muss der R_DS(on) sein, damit die für die Messung zulässigen Fehlergrenzen nicht überschritten werden?
:
Bearbeitet durch User
Wolfram F. schrieb: > Ich nehme nun 8 Pullups dann sollte das passen!° > > Danke für die Vorschläge und Hinweise! TMUX1208 - On-Widerstand etwa 5 Ohm (60 Cent bei Mouser) MAX4734 - On-Widerstand etwa 0,8 Ohm (~3€)
:
Bearbeitet durch User
Mi N. schrieb: >> Die MAX4617 sind ideal (und schon bestellt) > Klasse, damit hast Du die Kosten für 7 x 4k7 gespaart und reduzierst die > Messfehler vermutlich von 2,7 % auf 2,6 % ;-) Ich halte die Lösung ebenso für falsch. Rainer W. schrieb: > Wie klein und wie stabil muss der R_DS(on) sein, damit die für die > Messung zulässigen Fehlergrenzen nicht überschritten werden? Wenn jeder NTC seinen eigenen Widerstand hat, muß der Analogschalter nur noch das Signal zum Meßeingang durchschalten. Dieser Eingang ist hochohmig genung, als dass ein paar Ohm des Schalters nicht stören. Das Prinzip der Vierpolmessung greift auch hier, obwohl es keine solche ist: Strom speisen und getrennt messen.
Wolfram F. schrieb: > Ich denke das ist ganz gut durchdacht. Da sind 4kW Heizleistung im Druckbett installiert. Ich hoffe, Du hast Dir über ein safety Konzept für den Fehlerfall Gedanken gemacht.
ich denke das ist schon recht sicher: 1. der 74138 steuert maximal ein SSR zeitgleich an, =500W 2. Sollte die Temperatur zu hoch werden, schaltet das 3D Drucker Mainboard das Hauptrelays vor den 8 Heatern 230V seitig ab. (>=130 Grad) 3. sollten tatsächlich alle 8 gleichzeitig eingeschaltet werden weil z.B. alle 8 SSRs gleichzeitig kapputgehen, würde die 10A Sicherung der Steckdosen-Leiste trennen. 4. Sollte aus irgendwelchen Gründen ein Fehlerstrom fliessen, kommt der 10mA FI. 5. ich drucke eigentlich nur, wenn ich auch dabei bin, nie über nacht wie manche. Also in dem Punkte mach ich mir keine Sorgen mehr.
Wolfram F. schrieb: > 2. Sollte die Temperatur zu hoch werden, schaltet das 3D Drucker > Mainboard das Hauptrelays vor den 8 Heatern 230V seitig ab. (>=130 Grad) Software kann abstürzen. Entweder weil ein logischer Fehler drin ist, oder durch Spannungseinbrüche, z.B. wenn das Netzteil in den letzten Zügen liegt. Mach noch zusätzlich eine Übertemperatursicherung (in Hardware) rein. Es hat schon seinen Grund, das in Frittösen u.ä. Heizgeräten sowas als doppeltte Sicherheit verbaut wird ;-)
Gerald B. schrieb: > Software kann abstürzen. Software läuft auf Mikrocontrollern o.ä., die man durch einen Reset neu starten kann, veranlasst durch einen Watchdog. Brown-Out Detection überwacht die Spannungsversorgung (eingebaute Hardware). Im Falle eines Ausfalls der Steuerung ist nicht die Heizleistung das Problem, sondern die Einschaltdauer. Die kann man durch ein Monoflop in der Ansteuerung begrenzen. Der uC steuert den Ausgang dann nicht statisch, sondern muss immer Triggerimpulse zum Monoflop schicken. Ein Temperaturbegrenzer als letzte Instanz braucht man natürlich trotzdem.
Ich frag auch mal; wenn der Pull-Up quasi "von oben" kommt, der NTC nach GND, so geht doch das Netz, auf welcher die Messspannung liegt, "nach rechts" weg, oder? Wenn nun auf dem Weg "nach rechts" kein nennenswerter Strom fliesst, spielt der RDS_on doch überhaupt keine Rolle, oder nich? 8x Pull-Up, 8x NTC und 2x4-fach OPV als Spannungsfolger. Danach kann man dann nach belieben multiplexen. Selbst mit Dioden als Schalter. So gesehen, ist die Frage nicht unberechtigt. Mein Vorschlag ist also alles separat erstmal aufzubereiten und DANACH hin und herschalten, sofern man bei diesem Konzept bleiben will. Alternativen hierzu wurden ja oben schon genannt. Bau dort ruhig solch einen mechanisch wirkenden Öffner ein, der bei 130 Grad auslöst. (Die silbernen runden Bi-Metall-Teile mit den beiden Kabelschuhen dran) Drauf achten, ob es ein Öffner oder ein Schließer ist! Der könnte passen "Thermorex TK24-T02-MG01-Ö130-S120 Bimetallschalter 250 V 16 A Öffnungstemperatur (± 5°C) 130 °C Schließ-Temperatur 120 °" https://www.conrad.de/de/p/thermorex-tk24-t02-mg01-oe130-s120-bimetallschalter-250-v-16-a-oeffnungstemperatur-5-c-130-c-schliess-temperatur-120-1678241.html
:
Bearbeitet durch User
Aber Achtung, ich meine hier gelesen zu haben, dass nicht alle Typen dieser Temperaturschalter isoliert sind!!
Axel R. schrieb: > Bau dort ruhig solch einen mechanisch wirkenden Öffner ein, der bei 130 > Grad auslöst. (Die silbernen runden Bi-Metall-Teile mit den beiden > Kabelschuhen dran) ja das ist ne gute Idee, aber so einen Temperaturschalter kann ich höchstens an den Rand montieren da alle 8 Silikon-Heizfolien stoss-an-stoss plaziert sind. Und von Oben geht garnicht. Da werde ich dann besser 4 Stück a 125Grad an den Rändern der Platte mit Wärmeleitkleber montieren und in Reihe schalten. Guter Tip! Danke! Wegen Über/Unterspannung ist auch eine sehr gute Idee: Da werde ich mir eine Schaltung machen die ohne µC in Hardware erstmal alle Spannungen misst und wenn alle ok sind eine Freigabe für den Rest erzeugt. Also 24V,12V,5V und 3.3V. Wegen EMV Störungen durch die Kabel der Heizfolien: Dadurch das diese per SSDs mit Nulldurchgang-Ansteuerung geschaltet werden, sollte es keine großen Spitzen geben, ist dann eine Verdillung der Kabel eine Abschirmung an PE überhaupt notwendig?
Axel R. schrieb: > Ich frag auch mal; > wenn der Pull-Up quasi "von oben" kommt, der NTC nach GND, so geht doch > das Netz, auf welcher die Messspannung liegt, "nach rechts" weg, oder? > Wenn nun auf dem Weg "nach rechts" kein nennenswerter Strom fliesst, > spielt der RDS_on doch überhaupt keine Rolle, oder nich? Richtig. > 8x Pull-Up, 8x NTC und 2x4-fach OPV als Spannungsfolger. Danach kann man > dann nach belieben multiplexen. Selbst mit Dioden als Schalter. > So gesehen, ist die Frage nicht unberechtigt. Mein Vorschlag ist also > alles separat erstmal aufzubereiten und DANACH hin und herschalten, > sofern man bei diesem Konzept bleiben will. Alternativen hierzu wurden > ja oben schon genannt. Es würde schon reichen, die Spannung je NTC mit einer hinreichend grossen Kapazität, z.B. 10 uF, dynamisch zu puffern. Das sollte ein guter MLCC/Tantal/Elko sein. In dieser Reihenfolge. ☺ OPVs sind da entbehrlich. Man wird ja je Schalterstellung des Muxes, vernünftigerweise nur einmal messen.
Cartman E. schrieb: > Es würde schon reichen, die Spannung je NTC mit einer hinreichend > grossen Kapazität, z.B. 10 uF, dynamisch zu puffern. > Das sollte ein guter MLCC/Tantal/Elko sein. In dieser Reihenfolge. ☺ > OPVs sind da entbehrlich. Man wird ja je Schalterstellung des Muxes, > vernünftigerweise nur einmal messen. auch eine sehr gute Idee die ich einbauen werde! Beim Bett geht das, bei den Hotends wäre das zu langsam für die PID Regelung
Wolfram F. schrieb: > > auch eine sehr gute Idee die ich einbauen werde! > Beim Bett geht das, bei den Hotends wäre das zu langsam für die PID > Regelung Die Zeitkonstante ist ca. 1 Sekunde. ☺ Da ist jeder Thermistor thermisch langsamer.
Cartman E. schrieb: > Es würde schon reichen, die Spannung je NTC mit einer hinreichend > grossen Kapazität, z.B. 10 uF Wie kommst du auf so einen riesigen Wert?
Rainer W. schrieb: > Cartman E. schrieb: >> Es würde schon reichen, die Spannung je NTC mit einer hinreichend >> grossen Kapazität, z.B. 10 uF > > Wie kommst du auf so einen riesigen Wert? Der Wert ist nicht riesig. Überschlägig würde ich annehmen, dass er gegenüber der thermischen Zeitkonstante klein ist. Und man weiss ja auch nie ☺, wie lang die Kabelei daran ist. Viel hilft viel! Was würdest du denn so vorschlagen? 10 nF?
:
Bearbeitet durch User
Ich frage mich noch: wie kommt die Regelschleife in der Druckersteuerung klar, wenn regelmässig ein anderes Heizpad mit anderer momentantemperatur aufgeschaltet wird?
Flip B. schrieb: > Ich frage mich noch: wie kommt die Regelschleife in der Druckersteuerung > klar, wenn regelmässig ein anderes Heizpad mit anderer > momentantemperatur aufgeschaltet wird? Naheliegend wäre ein Regler je Heizpad. Oder eine über die Laufzeit konstante Konfiguration.
Ich denke, eine elegante lösung wäre ein Heizcontroller, der genug analogeingänge und Steuerausgänge besitzt, und diesen mittels expansionsschnittstelle mit dem Druckermainbiard koppeln. Die einstellungen können dann über eigens definierte G/M codes in der Druckdatei übergeben werden.
Ich frage mich noch: wie kommt die Regelschleife in der Druckersteuerung klar, wenn regelmässig ein anderes Heizpad mit anderer momentantemperatur aufgeschaltet wird? Wolfram F. schrieb: > Da die 8 Heizungen jeweils einen NTC haben, werden diese per 4051 > (welcher mit den Logik Eingängen des 74HCT138 gekoppelt ist) ebenfalls > nacheinander > zum 3D-Drucker Mainboard durchgeschaltet. > Das 3D Drucker Mainboard "weiss" also nix von verschiedenen Heizzonen. > Die Bed-PID Regeleung vom Mainboard wird also weiterhin ohne Eingriff > funktionieren. Das klingt nach sofortiger Abschaltung durch springende eingangsmesswerte- Druckersoftware interpretiert das als Sensorfehler.
Cartman E. schrieb: > Was würdest du denn so vorschlagen? 10 nF? Ich würde für jeden NTC einen Pull-Up verwenden, die Abgriffe auf die Multiplexereingänge geben, am Multiplexerausgang 100nF und gut is's. Das ergibt bei Raumtemperatur eine Zeitkonstante von etwa 0,5ms, bei höheren Temperaturen kürzer. Wenn man nach der Kanalumschaltung mindestens acht Zeitkonstanten wartet, hat sich auch im Worst-Case (maximaler Sprung) der Wert auf dem Kondensator auf besser als 0,0003 angeglichen. Ein anderes Thema, dass stärkere Filterung erfordert, könnten natürlich Störungen durch Einstrahlungen auf längeren Leitungen sein. Vielleicht äußert sich der TO noch zu Temperatur-/NTC-Widerstandsbereich und zu den Genauigkeitsanforderungen.
:
Bearbeitet durch User
Rainer W. schrieb: > Cartman E. schrieb: >> Was würdest du denn so vorschlagen? 10 nF? > > Ich würde für jeden NTC einen Pull-Up verwenden, die Abgriffe auf die > Multiplexereingänge geben, am Multiplexerausgang 100nF und gut is's. Dann fliesst aber im Umschaltmoment auch ein nennenswerter Strom durch den Mux. Die Messung und deren Zeitpunkt, müsste dann das Umladen abwarten. Halte ich für eine ganz schlechte Idee. Da ist mir meine Zeitkonstante je Thermistor allemal sympathischer. Ich habe schon genug Software gesehen, bei denen die Autoren nicht das Datenblatt ihres Controllers gelesen hatten, und die Umschaltzeit des Muxes im Controller nicht berücksichtigt haben. Was recht erkleckliche Fehler produziert hat. > Ein anderes Thema, dass stärkere Filterung erfordert, könnten natürlich > Störungen durch Einstrahlungen auf längere Leitungen sein. > > Vielleicht äußert sich der TO noch zu Temperatur/NTC-Widerstandsbereich > und zu den Genauigkeitsanforderungen. Das ist nun einfach: "So genau wie möglich." ☺
Cartman E. schrieb: > Dann fliesst aber im Umschaltmoment auch ein nennenswerter Strom > durch den Mux. Rechne mal nach. Der Strom ist eben nicht "nennenswert" im Sinne von "Belastung". Und der Bahnwiderstand des 4051 verlängert auch die Ladezeitkonstante nit merklich. > Das ist nun einfach: "So genau wie möglich." Sinnvollerweise nicht genauer als 1/2 LSB. Rainer W. schrieb: > Ein anderes Thema, dass stärkere Filterung erfordert Diese Filterung macht man dann aber besser mit einem simplen PT1-Filter in der SW: - https://www.lothar-miller.de/s9y/archives/25-Filter-in-C.html
Lothar M. schrieb: > Cartman E. schrieb: >> Dann fliesst aber im Umschaltmoment auch ein nennenswerter Strom >> durch den Mux. > Rechne mal nach. Der Strom ist eben nicht "nennenswert" im Sinne von > "Belastung". Und der Bahnwiderstand des 4051 verlängert auch die > Ladezeitkonstante nit merklich. Mich stört der Strom überhaupt nicht. Aber die damit verbundenen Implikationen. Für eine Zeitkonstante ist jeder Strom nennenswert. Besonders dann, wenn noch daran herumgeschaltet wird. Die 100 nF müssten vom Thermistor plus Mux im Extremfall umgeladen werden. Das der 4051 da nur einen unwesentlichen Einfluss hat, ist da schon nebensächlich. Der Kondensator gehört nicht hinter den Mux. Punkt. Allenfalls ein ganz winziger, um HF-Einstreuung zu blocken. Das ein AD-Wandler einen Eingangswiderstand hat, und das im Abtastmoment des AD-Wandlers ein Strom in den AD-Eingang fliesst, weiss ich. Für diesen Strom ist der Bahnwiderstand eines 4051 aber allemal gering genug, wenn er auf der geschalteten Seite des Mux durch einen 10 uF mehr als reichlich gestützt wird. Auch dann kann es zweckmässig und der Genauigkeit förderlich sein, nach dem Umschalten etwas zu warten. Diese Zeit könnte man am einfachsten messtechnisch ermitteln. Man kommt ja an alle Punkte gut heran. >> Das ist nun einfach: "So genau wie möglich." > Sinnvollerweise nicht genauer als 1/2 LSB. Genauer als 1/2 LSB kann im Einzelfall immer noch sinnvoll sein. Man denke z.B. an Bauteilealterung. Es pauschal auszuschliessen ist jedenfalls nicht sinnvoll. > Rainer W. schrieb: >> Ein anderes Thema, dass stärkere Filterung erfordert > Diese Filterung macht man dann aber besser mit einem simplen PT1-Filter > in der SW: > - https://www.lothar-miller.de/s9y/archives/25-Filter-in-C.html Wenn in den ADC und die Kabelei nichts einstreut, sollte kein Filter nötig sein. 10 uF leisten da dann ganze Arbeit. ☺
Cartman E. schrieb: > 10 uF leisten da dann ganze Arbeit ... und sind 100-facher technischer Overkill. > wenn er auf der geschalteten Seite des Mux > durch einen 10 uF mehr als reichlich gestützt wird. Also auf der ADC-Seite? Dann hast du auf einmal eine Zeitkonstante von 500ms. > Es pauschal auszuschliessen ist jedenfalls nicht sinnvoll. Ein (partielles) System 100-fach überzudeminsionieren aber auch nicht.
Wolfram F. schrieb: > ich möchte mit einem 4051 Analogschalter 8 NTCs auslesen. > Nun die Frage: > Was wäre besser (und warum), 8 Pullups an die 8 NTCs > oder einen Pullup an den Ausgang des 4051? Die erste Frage ist, mit welcher Genauigkeit Du die Temperaturen messen willst. Ausserdem ist m.E. der Preis von 7 Widerständen derart gering, das sich da langes überlegen nicht lohnt.
Lothar M. schrieb: > Cartman E. schrieb: >> 10 uF leisten da dann ganze Arbeit > ... und sind 100-facher technischer Overkill. Ja und? Die resultierende Zeitkonstante ist schneller als die thermische Zeitkonstante. Und billiger als ein OPV. ☺ Nebenbei verbessert es die Störfestigkeit um den Faktor 100. > Rechne mal nach. Das solltest du mal tun. 100 nF über recht hochohmige Thermistoren umzuladen, würde ganz sicher keinen Designaward gewinnen. >> wenn er auf der geschalteten Seite des Mux >> durch einen 10 uF mehr als reichlich gestützt wird. > Also auf der ADC-Seite? Dann hast du auf einmal eine Zeitkonstante von > 500ms. Wenn du den ganzen Thread gelesen hättest, wüsstest du wo die 10 uF zu verorten wären. Am Thermistor. >> Es pauschal auszuschliessen ist jedenfalls nicht sinnvoll. > Ein (partielles) System 100-fach überzudeminsionieren aber auch nicht. Ich habe einem 3 stelligen Multimeter vor ca. 40 Jahren das Eingangsteil eines 5 stelligem Multimeters spendiert. Mit hydrophobierten Widerständen, Keramikschaltern und dem ganzen Pipapo. Schätze doch einmal den Fehler, den der 3 Steller heute hat. ☺ Ohne Nachkalibrieren!
Rainer W. schrieb: > Ein anderes Thema, dass stärkere Filterung erfordert, könnten natürlich > Störungen durch Einstrahlungen auf längeren Leitungen sein. > > Vielleicht äußert sich der TO noch zu Temperatur-/NTC-Widerstandsbereich > und zu den Genauigkeitsanforderungen. die Kabellängen der Heizplatten sowie der NTCs werden ca. 60cm betragen wobei die NTCs mit abgeschirmten Leitungen verbunden sind. Die NTCs haben 100K, der Pullup zu 3.3V 4.7K. So ist es auch auf den anderen Eingängen beim 3D Drucker Mainboard. Dort sind keine C's verbaut, aber 1µ paralell zu jedem NTC beruhigt das schon gut. Das das Mainboard nun immer verschiedene Temperaturen zu messen bekommt, kann nicht sein, denn wenn z.B. nur 2 Heizplatten aktiviert sind, werden auch nur die entsprechenden 2 NTCs durch den Muxer geschaltet. Durch das Bett verteilt sich die Wärme zwischen diesen beiden Heizzonen so gut, daß es höchstens Bauteil-Toleranz-abhängige Abweichungen geben sollte.
Cartman E. schrieb: > Dann fliesst aber im Umschaltmoment auch ein nennenswerter Strom > durch den Mux Der Strom wird im wesentlichen durch NTC und Pull-Up limitiert. Falls der Strom stört, muss hinter den Mux-Ausgang noch ein OpAmp als Elektometerverstärker. Oder jeder NTC bekommt seinen eigenen Kondensator.
ich weiss garnicht warum soviel Aufriss mit OPs usw. gemacht werden soll! Das 3D Drucker Mainboard hat ausser 2 Schutzdioden und 2 Serienwiderstände a 2k7 auch nix weiteres drauf. Dann gehts gleich zum AD vom STM... Der Muxer soll doch bloss zwischen 8 NTCs umschalten, mehr nicht. Die zusätzlichen Kondensatoren sind natürlich ne Verbesserung..
:
Bearbeitet durch User
ich habe übrigens noch etwas in der Software zur Ansteuerung des 74138 angepasst: eingestellte Zeit fürs Muxen von Heiz-Zone 1- x ist 50ms. Damit die Heizfolien aber am Anfang nicht so niederohmig sind (weil kalt) habe ich einen Zähler mit eingebaut der ab Beginn des Heizen 50ms plus 1500ms dazu addiert und in jeder Loop um 5 dezimiert. So ist gegeben, das die Heizplatten erstmal für sich warm werden können. Das ganze dauert etwa 5 Minuten bis das muxen auf 50ms erreicht ist. Ist in der Praxis noch nicht getestet, aber wird bestimmt gut klappen.
Wolfram F. schrieb: > Da der Tisch aus einer 3mm Aluplatte besteht, sollte sich die Wärme gut > verteilen. (Mit einer Glasplatte muss ich erst probieren, wer weiss, ob > das Glas bei einseitiger Hitze nicht springen wird). Vorher wird es sich biegen. Ob die Kräfte so groß werden, dass es springt, hängt von der Aufheizgeschwindigkeit ab. bei ungleichmäßiger Erwärmung und Verwendung von normalem Glas sind mechanische Spannungen auch danach vorprogrammiert. Um Spannungen zu vermeiden, gibt es Zerodur. Wolfram F. schrieb: > So ist auch gesichert, daß selbst bei 8 angewählten Heizfolien trotzdem > nur eine Leistung von max. 500W verbraucht wird. Damit hast du die 500W Heizleistung auf ein größere Fläche verteilt, d.h. die Flächenheizleistung verringert. Hoffentlich reicht das dann noch, um die Zieltemperatur immer und in der gewünschten Zeit zu erreichen.
:
Bearbeitet durch User
oh, wieder ein super Tip! Danke! Hab grade auf deren Homepage gelesen... scheint ja das perfekte dafür zu sein! Ist ein Ceran-Feld nicht evt. das gleiche Material?
Rainer W. schrieb: > Damit hast du die 500W Heizleistung auf ein größere Fläche verteilt, > d.h. die Flächenheizleistung verringert. Hoffentlich reicht das dann > noch, um die Zieltemperatur immer und in der gewünschten Zeit zu > erreichen. Na meistens werden ja kleinere Objekte gedruckt wo nur 1 oder2/4 Platten heizen müssen. Wenn doch mal alle 8 benutzt werden müssen, wird es länger dauern, ist klar, aber ich denke 60-80Grad sollte trotzdem kein Problem sein. (ABS kommt da sowieso nicht drauf)
Wolfram F. schrieb: > Ist ein Ceran-Feld nicht evt. das gleiche Material? Ceran ist der geschützter Markenname von Schott für Glaskeramik Kochfelder. Und ja, das Material für die Kochfelder ist Zerodur.
ok. Und wie sieht es bei diesem MAterial aus mit der Wärmeverteilung im Vergleich zu Alu? Würden die benachbarten nicht-geheizten Zonen genauso warm wie bei Alu werden?
Moin, vielleicht kannst Du, wenn 10 Bit Auflösung reichen, den eingebauten Muxer und Wandler des ATmega 2560 anstatt des 2. 4051 nutzen. Da sind die Eingänge hochohmig genug. Vielleicht kannst Du auch beide 4051 einsparen, wenn Du über PWM vom Atmega und einen TP wieder ein Analoges Signal erzeugst. Viel Erfolg Gruß Carsten
Beitrag #7939386 wurde vom Autor gelöscht.
Wolfram F. schrieb: > Und wie sieht es bei diesem MAterial aus mit der Wärmeverteilung im > Vergleich zu Alu? > Würden die benachbarten nicht-geheizten Zonen genauso warm wie bei Alu > werden? Nein, Zerodur ist eher ein schlechter Wärmeleiter
Wolfram F. schrieb: > Und wie sieht es bei diesem MAterial aus mit der Wärmeverteilung im > Vergleich zu Alu? Die Wärmeleitfähigkeit ist gut 150 mal schlechter als die von Aluminium. > Würden die benachbarten nicht-geheizten Zonen genauso warm wie bei Alu > werden? Ganz sicher nicht.
Harald W. schrieb: > Nein, Zerodur ist eher ein schlechter Wärmeleiter Das auch, aber bei Zerodur ist wohl eher der geringe Wärmeausdehnungskoeffizient das technisch Interessante, der ist nämlich nahe 0. Deshalb ist das Material für Messskalen in der Längenmesstechnik interessant und wird dort auch verwendet.
Wolfram F. schrieb: > Der NTC hat 100KOhm und braucht im Normalfall einen 4K7 Pullup an 3.3V. Wenn du messen willst, erreichst du die beste Empfindlichkeit, wenn im Arbeitspunkt beide Widerstandswerte gleich sind. Wenn die Eigenerwärmung des NTC und der Stromverbrauch keine Rolle spielt, dann nimm getrennte 8 getrennte Pull-Up Widerstände, und leite nur die gemessene Spannung durch den Analogschalter. Niedrigere Widerstandswerte der Schalter erreicht man mit ICs der 74HC-Serie und noch niedrigere mit 74AHC.
Hp M. schrieb: > Wolfram F. schrieb: >> Der NTC hat 100KOhm und braucht im Normalfall einen 4K7 Pullup an 3.3V. > > Wenn du messen willst, erreichst du die beste Empfindlichkeit, wenn im > Arbeitspunkt beide Widerstandswerte gleich sind. Was willst du damit sagen?` Das Heizbett wird wohl kaum auf 25°C geregelt. Bei gut 110°C (abhängig von der NTC Kennlinie) würde das mit dem Arbeitspunkt recht gut passen.
:
Bearbeitet durch User
Wolfram F. schrieb: > Würden die benachbarten nicht-geheizten Zonen genauso warm wie bei Alu > werden? Die Wärmeleitfähigkeit von Zerodur beträgt bei 20 °C etwa 1,46 W/(m·K), die von Aluminium etwa 236 W/(m·K) Wie ändert sich die Wärmeverteilung wohl, wenn ein Material eine um einen Faktor 160 geringere Wärmeleitfähigkeit besitzt? https://www.schott.com/de-de/products/zerodur-p1000269/technical-details?tab=94a500186e9c4dc88469136f9c65fa4a https://de.wikipedia.org/wiki/W%C3%A4rmeleitf%C3%A4higkeit#Beispielwerte
Rainer W. schrieb: > Das Heizbett wird wohl kaum auf 25°C geregelt. Bei gut 110°C Das Heizbett wird in der Regel auf 60°C geregelt, manchmal auch 70°C. Da wäre der Widerstand des 100kOhm NTC 35,1kOhm (60°C) oder 27kOhm (70°C). 5kOhm bei 150°C.
Rainer W. schrieb: >> Ist ein Ceran-Feld nicht evt. das gleiche Material? > Ceran ist der geschützter Markenname von Schott für Glaskeramik > Kochfelder. Und ja, das Material für die Kochfelder ist Zerodur. Zerodur ist ebenfalls ein Markenname von Schott, wieso also zwei Namen für das selbe Material?
Manfred P. schrieb: > Zerodur ist ebenfalls ein Markenname von Schott, wieso also zwei Namen > für das selbe Material? Traust du Wikipedia? https://de.wikipedia.org/wiki/Zerodur >> Zerodur wurde 1968 auf den Markt gebracht. 1971 folgte Ceran, bei dem >> Zerodur-Glaskeramik für „Ceran“-Kochfelder verwendet wird. Zerodur = das Material Ceran = eine Anwendung des Materials in Form eines Kochfeldes
kannst du ausrechnen, wieviel Grad bei so einer Zerodur Platte oben "ankommen" würden im Vergleich zu einer Aluplatte? Sagen wir mal Alu = 60 Grad, Zerodur ?
:
Bearbeitet durch User
Axel R. schrieb: > Ich frag auch mal Axel R. schrieb: > 8x Pull-Up, 8x NTC und Genau das war seine Frage: Braucht er 8 pull ups (wie deine einzige Lösung) oder geht es auch mit 1 (eine Losung die dir überhaupt nicht in den Sinn kommt). Er braucht 8 (oder andere Zusatzbauteile, wie zweiten 4051). Und da es ihm auf den Stromverbrauch der Messschaltung nicht ankommt, sind 7 weitere pull ups die einfachste Lösung.
Wolfram F. schrieb: > kannst du ausrechnen, wieviel Grad bei so einer Zerodur Platte oben > "ankommen" würden im Vergleich zu einer Aluplatte? > > Sagen wir mal Alu = 60 Grad, > Zerodur ? Das ist dynamisch für den Übergang etwas kompliziert. Wärmeleitung folgt dem Gausschen Fehlerintegral. Einfacher wird es für einen stationären Endwert. ☺ Die 60℃ für Alu kann man nicht als Rechenwert gebrauchen. Auch da gibt es einen Wärmewiderstand/Wärmaleitwert und Abstrahlung und Konvektion. Massgeblich wäre die Temperatur des Heizers selbst. Da gibt es einen Wärmewiderstand zwischen Heizer und Material, einen Wärnewiderstand des Materials selbst, und einen Übergangswärmewiderstand zur Umgebung. Die sind alle in Reihe geschaltet. Für eine gegebene Umgebungstemperatur könnte man das jetzt leicht ausrechnen. ☺ Aber nur wenn man die Materialkonstanten kennt. Die relevante Temperatur wäre die vor dem Übergang zur Umgebung.
:
Bearbeitet durch User
ok. Einfach gefragt: Was würdet Ihr nehmen, Alu oder Zerodur oder normalglas? Bei Alu müssten auch noch diese Magnet-Platten drauf, Bei Glas will ich es mit leicht-sandstrahlen probieren. EDIT: ich habe noch ein altes Ceran-Feld, am Besten wird es wohl sein, wenn ich das zerlege und eine dieser Silikon-Heizfolien draufklebe, dann kann ich am besten testen...
:
Bearbeitet durch User
also scheinbar würde das wohl klappen mit Heizufolie unter nem Ceran-Feld. Es dauert etwas länger bis die Wärme da oben auch ankommt, aber 60-80 Grad sind kein Problem. Neues Problem ist aber, jemanden zu finden, der eine Platte von 900x450mm zu liefern. Bei einer Fa. habe ich angefragt, die können nur max. 250x250mm liefern. Ich weiss nun auch nicht, ob man dieses Material mit nem Glasschneider schneiden kann. Sonst könnte man auch 2 Ceran-Felder zurechtsschneiden, auch wenn mir dies zweiteilige nicht gefällt. Vielleicht doch besser eine passende Aluplatte zu verwenden auch wenn dann Wärme-Verluste entstehen durch die benachbarten nicht-geheizten Zonen entstehen.
Wolfram F. schrieb: > kannst du ausrechnen, wieviel Grad bei so einer Zerodur Platte oben > "ankommen" würden im Vergleich zu einer Aluplatte? Wenn du den Sensor für die Regelung der Temperatur auf der Oberfläche montierst, kommt bei beiden oben die gleiche Temperatur an ;-)
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.