Forum: Mikrocontroller und Digitale Elektronik Arduino Thermoelement / DAC Ground Problem


von Clemens B. (cb95)


Angehängte Dateien:

Lesenswert?

Hallo liebe Community,

ich muss im Rahmen meiner Ausbildung eine PID-Schaltung einer 
Vakuumkammer bauen. Das Thermoelement ist schon vorhanden (Typ K) und 
eingebaut, ein Labornetzteil (6261B; ein relativ altes Teil) ist 
ebenfalls vorhanden und auch eingestellt, um es mit einer externen 
Spannungsquelle steuern zu können. Dieses Netzteil steuert anschließend 
ein Heizelement (ebenfalls eingebaut). Ich habe mich für einen Arduino 
Nano Every entschieden als Mikrokontroller, da dieser leicht zu 
programmieren ist sowie auch Steckbrett kompatibel ist.

Ich habe mein verwendetes Schaltbild angehängt sowie den relevanten 
Ausschnitt aus der Bedienungsanleitung des Netzteils. Ich messe das 
Thermoelement mittels eines MAX31856, welcher die benötigte genaue 
Auflösung besitzt. Das Messen des Signales nur mit diesem Sensor im 
Steckbrett funktioniert. Wenn ich nun aber meinen DAC (ein MCP4725) auf 
das Steckbrett dazu stecke führt dies dazu das mein MAX31856 einen zu 
hohen und konstanten Wert (ansonsten fluktuiert das Signal um ca. +- 
1xAuflösung) ausgibt (in etwa 300°C anstatt den normalen ~25°C). Ich 
habe schon mit dem Multimeter durchgemessen und vermute das der Grund an 
unterschiedlichen Ground-Spannungen liegt (Wenn ich die beiden Ground 
messe ist die Spannung ca. 1V). Habe auch probiert den Ground nur an den 
DAC zu hängen und diesen als Referenz Ground zu nehmen, was jedoch 
wieder in einen zu hohen Wert mündet.

Ich wollte nun fragen ob ihr eventuell eine Lösung für mein Problem 
wisst. Ein anderes Netzteil kommt nicht in Frage, jedoch bin ich bei der 
Schaltung sehr flexibel. Meine Überlegung wäre diese beiden Breakout 
Boards galvanisch zu trennen mittels zb. eines Optokopplers jedoch weiß 
ich nicht wie sich das auf das I2C Signal des DAC auswirkt. Auch der 
Grund wieso dies auftritt wäre interessant zu erfahren falls dies 
irgendwer weiß. :)

Für die PID-Steuerung selbst gibt es genügend Literatur das ich da keine 
Probleme haben werde meiner Meinung nach.

von Vanye R. (vanye_rijan)


Lesenswert?

> Meine Überlegung wäre diese beiden Breakout
> Boards galvanisch zu trennen mittels zb. eines Optokopplers jedoch weiß
> ich nicht wie sich das auf das I2C Signal des DAC auswirkt.

Gehe auf jedenfall den Weg das Thermoelement potentialfrei zu machen.
Du willst da Mikrovolt messen und hast jede Menge Stoerungen durch
die Heizung und lange Leitungen. Selbst kleinste Kriechstroeme sind
da bereits uebel.

Vanye

von Clemens B. (cb95)


Lesenswert?

Danke für die schnelle Antwort. Also reicht ein Optokoppler oder gibt es 
andere bessere Varianten? Bin leider noch etwas unerfahren mit dem 
Galvanischen Trennen bzw. deren Möglichkeiten. Und würde ich dann nur 
den Ground vom Rest trennen oder soll ich auch die 5V mit trennen?

von Daniel F. (foxi_the_daywalker)


Lesenswert?

Hi,

hast du das Board von Adafruit (MAX31856)?
Wenn ja, dieses Board hat einen eigenen Spannungsregler auf der Platine 
aber keinen Pegelwandler, wenn ich es richtig sehe.
Wenn du die Platine mit 5V versorgst, arbeitet der MAX31856 trotzdem nur 
mit 3 / 3,3V.
Wenn ich es richtig sehe, arbeitet der Nano Every mit 5V.
Ich würde einen Pegelwandler vorsehen zwischen den beiden Boards. Einger 
bekommt seine Versorgung vom Nano und der andere vom Adafruit-Board 
(Vout).
Pegelwandler kann man auch mit zwei Widerständen und einem MOSFET 
realisieren.

Dann würde ich alle Boards mit ordentlicher Verdrahtung getrennt zur 
Spannungsversorgung führen (Sternverdrahtung). Dann gibt wenig Probleme 
mit einer Spannungsverschiebung. Wenn das Board mit dem DAC mehr Strom 
zieht, ist nur seine Leitung davon betroffen und nicht die der anderen.

Vielleicht könnte man auch Serienwiderstände in den Signalleitungen 
einplanen (CLK, SDI, SDO). Da kann man dann auch leichter dran messen, 
ob es einen großartigen Spannungsabfall gibt. Aus der Hüfte geschossen, 
würde ich mit 33 Ohm bis 100 Ohm mal testen.

Man kann vielleicht auch noch je einen Elko in der Nähe der Boards 
vorsehen.

Grüße
Daniel

von Rainer W. (rawi)


Lesenswert?

Clemens B. schrieb:
> Ich habe mein verwendetes Schaltbild angehängt

Wo?
Das, was du da angehängt hast, ist eine Fritzing Steckanleitung.

Ein Schaltplan hat andere Ansprüche und sieht deshalb auch ganz anders 
aus.
https://de.wikipedia.org/wiki/Schaltplan

von Armin X. (werweiswas)


Lesenswert?

Wer einen Schaltplan lesen kann versteht auch den "Fritzing"-Plan.

von Clemens B. (cb95)


Angehängte Dateien:

Lesenswert?

@Daniel
Ja genau hab das Board von Adafruit. Ich verstehe allerdings nicht ganz 
wie dies mein Problem beheben soll da ja bei den beiden Ground Signalen 
eine Spannung anliegt. Ich könnte allerdings auch einfach den 3.3V 
Ausgang des Nano Everys verwenden um den MAX31856 zu betreiben dann 
bräuchte ich keinen Pegelwandler und hätte auch eine Trennung der 
Betriebsspannungen der beiden Boards.
Bezüglich der Sternverdrahtung, ich habe allerdings nur eine 
Spannungsquelle welcher der Arduino Nano Every ist, welcher die Spannung 
über das USB-Signal eines PCs bezieht (dieser handelt nimmt die Daten 
auf und verarbeitet diese anschließend weiter). Weswegen ich nicht weiß 
wie eine Sternverdrahtung hier helfen könnte.
Danke für den Tipp mit den Widerständen werde ich das nächste mal 
probieren wenn ich wieder im Labor bin!

@Rainer
Dachte das der Fritzing Plan mehr Aussagekraft hat, weswegen ich den 
angehängt habe. Habe nun den wirklichen Schaltplan angehängt.
(Anmerkung: Es fehlen die Verbindungen von dem Thermoelement diese sind 
natürlich in der richtigen Polarität an den THERM-/THERM+ angeschlossen, 
sowie die Verbindung zum Labornetzteil welches an  VOUT und GND das DAC 
angeschlossen ist. Das meinte ich mit mehr Aussagekraft :) )

von Peter D. (peda)


Lesenswert?

Heizungssteuerungen sind extrem träge, da regelt man nicht mehr analog, 
sondern über den Tastgrad. Man schaltet also periodisch die Heizung voll 
an und aus. Zum Messen bietet sich dann der Zeitpunkt kurz vor dem 
wieder Einschalten an. Das Schaltsignal kann man über ein SSR galvanisch 
vom Meßkreis trennen.

Da die Thermospannung nur wenige µV beträgt, ist der Meßkreis 
sauempfindlich gegen Störungen. Der Gleichtakteingangsbereich des 
Meß-ICs ist penibel einzuhalten. Typisch ist der Sensor 2-polig 
herausgeführt und ein Pol wird dann direkt am Meß-IC geerdet. 
Vorzugsweise nimmt man geschirmte Ausgleichsleitung bis zum Sensor und 
überall Typ-K Steckverbinder, die gibt es auch als Vakuumdurchführung.

1kW Heizleistung im Vakuum ist schon ne Hausnummer, man hat ja nur 
Strahlungsverluste. Wieviel 1000°C sind denn gefordert?

von Rainer W. (rawi)


Lesenswert?

Armin X. schrieb:
> Wer einen Schaltplan lesen kann versteht auch den "Fritzing"-Plan.

Ist die Aussage auch umkehrbar?
Es geht nicht um Verstehen, sondern um einen gewissen Standard bei der 
Ausbildung. Ich würde mich jedenfalls nicht trauen, so etwas als 
Dokumentation einer Schaltung abzugeben.

von Michael B. (laberkopp)


Lesenswert?

Clemens B. schrieb:
> Wenn ich nun aber meinen DAC (ein MCP4725) auf
> das Steckbrett dazu stecke führt dies dazu das mein MAX31856 einen zu
> hohen und konstanten Wert (ansonsten fluktuiert das Signal um ca. +-
> 1xAuflösung) ausgibt (in etwa 300°C anstatt den normalen ~25°C). Ich
> habe schon mit dem Multimeter durchgemessen und vermute das der Grund an
> unterschiedlichen Ground-Spannungen liegt

Es darf keine unterschiedlichen Ground-Spannungen geben.

Beide Leitungen des Thermoelements dürfen keinen Kontakt mit irgendwas 
haben, auseer den Klemmen des Mess-Boards. Es darf eine Abschirmung ums 
Kabel liegen die mit GND=Masse verbunden ist, aber die kontaktiert 
keinen Thermoelementdraht-

Clemens B. schrieb:
> Also reicht ein Optokoppler

Häh ?

Es reicht, die Masse Verbindung eines Drahtes deines Thermoelements 
aufzuheben.

Übrigens: Vakuum ist ein schlechter Wärmeleiter, sowohl zum Messen für 
das Thermoelement als auch für das Heizen mittels Elektroheizung. Ich 
ziehe deinen ganzen Versuchsaufbau in Frage, wenn nicht Heizung und 
Thermoelement an demselben Metallklotz im Vakuum angebracht sind.

von Rainer W. (rawi)


Lesenswert?

Michael B. schrieb:
> Übrigens: Vakuum ist ein schlechter Wärmeleiter, sowohl zum Messen für
> das Thermoelement als auch für das Heizen mittels Elektroheizung.

Das hast du hübsch ausgedrückt.
Echtes Vakuum leitet die Wärme ÜBERHAUPT nicht. Energieübertragung 
findet dort nur durch Strahlungsaustausch statt.
Manche Leute bezeichnen allerdings schon leicht abgesenkten Luftdruck 
als "Vakuum".

von Clemens B. (cb95)


Angehängte Dateien:

Lesenswert?

@Peter
Danke für den Input, die eigentliche Messaufbau ist schon älter (~ende 
90er) und ich sollte so möglich wie wenig daran verändern. Allerdings 
könnte ich diesen Input schon einbringen, ob ich ihn auch durchführen 
darf steht auf einem anderen Blatt.
Der Sensor ist 2 Polig herangeführt mit einem Abgeschirmten Kabel, 
Steckverbinder vom Typ K schon eingebaut.
Das Netzteil wird voraussichtlich nicht vollständig ausgenutzt, dh die 
Heizleistung beträgt nie 1kW, jedoch kann ich nicht genau sagen wieviel 
sie betragen wird dies muss erst ermittelt werden wenn die Steuerung 
funktioniert. Es soll jedoch eine Temperatur von ~700°C erreicht werden.

@Michael
Also die beiden Thermoelement Kabel sind nur an den Klemmen des Boards 
angeschlossen. Und die Abschirmung liegt an Ground an. Dadurch das sich 
aber der Ground vom Netzteil her anderer Spannung liegt als der vom 
Arduino Nano Every, vermute ich das dies zu Problemen führt. Zumindest 
sobald ich den Ground anschließe, führt dies zu dem oben beschriebenen 
unerwünschten Verhalten.
Das Vakuum ein schlechter Wärmeleiter ist ist mir durchaus bewusst, zur 
Info dieser Aufbau wird/wurde verwendet um ein Thermodesoptionsspektrum 
aufzunehmen, der Aufbau stammt nicht von mir sondern ist mir vorgegeben 
worden. Wie schon erwähnt habe ich darauf keinen Einfluss. Es ist ein 
UHV Anlage mit einer freien Weglänge von in etwa 10^5m. Die Temperatur 
wird an einer Düse gemessen welche sich in der Anlage befindet somit ist 
die Wärmeleiteigenschaft des Vakuums irrelevant! Geheizt wird die zu 
ermittelnde Probe bzw. das Gehäuse in welchen sich diese befindet, wo 
auch die Düse verbunden ist. Also sind die beiden am gleichen 
Metallklotz angebracht.

Allerdings stellt sich mir die Frage wie ich die Masse Verbindung 
aufheben kann diese sind ja direkt an das Board angeschlossen.

@Rainer
Es gibt mehrere Klassen von Vakuum, also Vakuum in diesem Sinne ist 
nicht als absolut Teilchenloser Raum zu verstehen (gibt es auch nicht!). 
Und leicht abgesenkten Luftdruck (bis ca. 1mbar) bezeichnet man als 
Grobvakuum. Also ist die Bezeichnung Vakuum schon korrekt.

: Bearbeitet durch User
von Rainer W. (rawi)


Lesenswert?

Clemens B. schrieb:
> Es gibt mehrere Klassen von Vakuum

Wie wahr
https://www.chemie.de/lexikon/Mittlere_freie_Wegl%C3%A4nge.html

10^5m ist doch schon mal eine Aussage ;-)

: Bearbeitet durch User
von Vanye R. (vanye_rijan)


Lesenswert?

> Also reicht ein Optokoppler oder gibt es andere bessere Varianten?

Optokoppler geht, aber heute nimmt man auch gerne magnetische oder
kapazitive koppler. Also Adum von AD oder ISO7041(oder andere) von TI.

Vanye

von Clemens B. (cb95)


Lesenswert?

Vanye R. schrieb:
>> Also reicht ein Optokoppler oder gibt es andere bessere Varianten?
>
> Optokoppler geht, aber heute nimmt man auch gerne magnetische oder
> kapazitive koppler. Also Adum von AD oder ISO7041(oder andere) von TI.
>
> Vanye

Danke für deine Hilfe!
Ich wüsste aber noch gerne wie man dies genau bewerkstelligt das 
erschließt sich mir noch nicht ganz. Wie schon gesagt habe noch nie mit 
sowas zu tun gehabt. Mein Physik Studium ist mehr auf der theoretischen 
Seite aufgebaut. Also wo konkret muss ich den die Galvanische Trennung 
einbauen um das Thermoelement Potentialfrei zu machen?

von Uwe B. (uwebre)


Lesenswert?

Clemens B. schrieb:
> Wenn ich nun aber meinen DAC (ein MCP4725) auf
> das Steckbrett dazu stecke führt dies dazu das mein MAX31856 einen zu
> hohen und konstanten Wert (ansonsten fluktuiert das Signal um ca. +-
> 1xAuflösung) ausgibt (in etwa 300°C anstatt den normalen ~25°C).

Wird der DAC in der Software angesteuert? Was passiert wenn du die 
Funktionen auskommentierst?
Ich vermute ein Softwareproblem bzw. hängen der Kommunikation mit dem 
DAC.
Die Pullupwiderstände für den I2C-Bus sind auf dem MCP4725-Board?

Uwe

von Sebastian W. (wangnick)


Lesenswert?

Clemens B. schrieb:
> Habe nun den wirklichen Schaltplan angehängt.

Ich sehe im Schaltplan nur ein GND.

Ist der angeschlossene PC, und also dessen USB-Port, geerdet? Oder 
benutzt ihr ein Notebook mit Netzteilstecker ohne Erdung?

LG, Sebastian

von Vanye R. (vanye_rijan)


Lesenswert?

> Also wo konkret muss ich den die Galvanische Trennung
> einbauen um das Thermoelement Potentialfrei zu machen?

DA wo es fuer dich am einfachsten ist. :-)

Also wohl in die SPI-Leitungen. Ausserdem musst du natuerlich noch
die Stromversorgung trennen. Da bietet sich ein DCDC-Wandler an
wie du ihn fertig kaufen kannst. Kaufe da nicht zu billig sondern
von einem Hersteller der dir in einem Datenblatt zeigt wie
man das Dingen filtert und entstoert. Des weiteren haben die
Teile ueblicherweise keine Regelung der Ausgangsspannung, also
brauchst du noch einen LowDrop Regler auf deine Sollspannung.

Natuerlich wirst du Datenblaetter lesen:
https://www.ti.com/lit/ds/symlink/iso7041.pdf

Es wird fuer dich ohne Bedeutung sein, aber du koenntest
mit Freude zur Kenntnis nehmen das es mittlerweile eine
Reihe von Certificaten gibt:
https://www.ti.com/product/ISO7041#tech-docs

Und es gibt sogar Module mit denen du spielen koenntest:
https://www.ti.com/lit/ug/sllu331/sllu331.pdf

DCDC koennte dann vielleicht sowas sein:
https://www.mouser.de/datasheet/2/281/1/kdc_nte-2940969.pdf

Beachte das Filter auf Seite5

Vielleicht auch mal das hier lesen:
https://www.ti.com/lit/an/snva871/snva871.pdf

Hier noch ein paar Grundlagen:
https://emcfastpass.com/wp-content/uploads/2017/04/DC_DC_Converters_Output_Noise.pdf

Beachte besonders Ct damit kann man an manchen dieser DCDC
Bausteine ein mittleres Wunder bewirken.
https://electronics.stackexchange.com/questions/516154/isolated-dc-dc-coupling-capacitor-location

Vanye

von Michael B. (laberkopp)


Lesenswert?

Clemens B. schrieb:
> Also wo konkret muss ich den die Galvanische Trennung einbauen um das
> Thermoelement Potentialfrei

Dein Thermoelement ist potentialfrei, da ja deiner Beschreibung nach 
angeblich kein Sensordraht mit Masse (dem Gehäuse, der Abschirmung, dem 
Metallklotz) elektrisch verbunden ist.


Dein 6261B ist wohl auch potentialfrei, da GND als extra Kontakt 
unbelegt, eingezeichnet ist.


Wir wissen nicht, ob dein Heizelement potentialfrei ist, und wir wissen 
nicht, wo die Versorgung des Arduino herkommt.

Es kann doch wohl nicht so schwer sein  zu ermitteln wo es 
unterschiedliche GND gibt die erst durch den uC verbunden werden.

von Clemens B. (cb95)


Lesenswert?

Uwe B. schrieb:
> Wird der DAC in der Software angesteuert? Was passiert wenn du die
> Funktionen auskommentierst?
> Ich vermute ein Softwareproblem bzw. hängen der Kommunikation mit dem
> DAC.
> Die Pullupwiderstände für den I2C-Bus sind auf dem MCP4725-Board?

Ja der wird in der Software angesteuert, habe dies schon probiert und 
das Problem bleibt bestehen. Die Pullupwiderstände sind auf dem MCP4725 
Board.

Sebastian W. schrieb:
> Ist der angeschlossene PC, und also dessen USB-Port, geerdet? Oder
> benutzt ihr ein Notebook mit Netzteilstecker ohne Erdung?

Ich benutze ein Notebook mit Netzteilstecker welches mit Schuko Stecker 
ist, also müsste es meines Erachtens geerdet sein.

Vanye R. schrieb:
> Also wohl in die SPI-Leitungen. Ausserdem musst du natuerlich noch
> die Stromversorgung trennen. Da bietet sich ein DCDC-Wandler an
> wie du ihn fertig kaufen kannst. Kaufe da nicht zu billig sondern
> von einem Hersteller der dir in einem Datenblatt zeigt wie
> man das Dingen filtert und entstoert. Des weiteren haben die
> Teile ueblicherweise keine Regelung der Ausgangsspannung, also
> brauchst du noch einen LowDrop Regler auf deine Sollspannung.

Danke für die ausführliche Beschreibung. Werde dies ausprobieren sobald 
ich das nächste mal im Labor bin. Hoffe das dies dann das erwünschte 
Ergebnis bringt :)

Michael B. schrieb:
> Wir wissen nicht, ob dein Heizelement potentialfrei ist, und wir wissen
> nicht, wo die Versorgung des Arduino herkommt.
>
> Es kann doch wohl nicht so schwer sein  zu ermitteln wo es
> unterschiedliche GND gibt die erst durch den uC verbunden werden.

Die Versorgung des Arduino ist über die USB Büchse welche an einem 
Laptop angeschlossen ist.
Die Unterschiedlichen Grounds sind bekannt und von dem Arduino (also USB 
von Laptop) und der S- von dem 6261B diesen muss ich ja an den Ground 
vom MCP4725 hängen.

Danke an euch alle für euer Bemühen! :)

von Clemens B. (cb95)


Lesenswert?

Ich habe das Problem identifiziert, es ist der MAX31856 welcher bei 
gewissen Umständen sozusagen "hängen" bleibt. Beschreibung unter anderem 
in diesem https://forums.adafruit.com/viewtopic.php?p=843331 Post zu 
finden. Ein reinitialisieren hat bei mir nichts gebracht da er sofort 
wieder "hängen" blieb. Somit werde ich diesen ersetzen durch etwas 
anderes. Falls jemand das gleiche Problem hat, das "hängen" bleiben kann 
man ermitteln in dem man das Thermoelement absteckt, falls dann noch 
immer der gleiche Wert übermittelt wird anstatt eines "thermocouple 
open" Fehlers, ist dieser "hängen" geblieben.

von Uwe B. (uwebre)


Lesenswert?

Clemens B. schrieb:
> Ich habe das Problem identifiziert, es ist der MAX31856 welcher bei
> gewissen Umständen sozusagen "hängen" bleibt.

Scheint eine Mimose zu sein, der Käfer.
Hier gibt es etwas Info, kommen Ferritperlen drin vor.
https://www.eevblog.com/forum/projects/max31856-thermocouple-amplifier/

Schade eigentlich.

Uwe

von Vanye R. (vanye_rijan)


Lesenswert?

> Ich habe das Problem identifiziert, es ist der MAX31856 welcher bei
> gewissen Umständen sozusagen "hängen" bleibt.

Seufz. Ein Thermoelement was ist das? Ein Kurzschluss aus zwei Draehten 
die ein paar uV liefern. Wie kann das irgendein Problem verursachen? 
Ausser natuerlich du bringst die Eingangstufe in den Latchup, z.B weil 
du ein Potentialproblem hast. .-)

Vanye

von Clemens B. (cb95)


Lesenswert?

Uwe B. schrieb:
> Scheint eine Mimose zu sein, der Käfer.
> Hier gibt es etwas Info, kommen Ferritperlen drin vor.
> https://www.eevblog.com/forum/projects/max31856-thermocouple-amplifier/

Danke für den Input. Schaut vielversprechend aus zumindest in der 
Theorie und ist sicherlich einen Versuch wert!

Vanye R. schrieb:
> Seufz. Ein Thermoelement was ist das? Ein Kurzschluss aus zwei Draehten
> die ein paar uV liefern. Wie kann das irgendein Problem verursachen?
> Ausser natuerlich du bringst die Eingangstufe in den Latchup, z.B weil
> du ein Potentialproblem hast. .-)

Scheint nach dem Post oben und anderen Posts ein häufig auftretendes 
Problem mit diesem IC/BOB zu sein, somit wohl doch öfter ein Problem :)

von Vanye R. (vanye_rijan)


Lesenswert?

> Scheint nach dem Post oben und anderen Posts ein häufig auftretendes
> Problem mit diesem IC/BOB zu sein, somit wohl doch öfter ein Problem :)

Es gabe natuerlich noch die Moeglichkeit eines Software problems.
Irgendjemand programmiert etwas falsch und das hat dann solche Folgen.
Aber wieso sollte das der Fall sein? Muessten dann ja ganz viele Leute
falsch machen. Dss ist statistisch unrealistisch. Ausser wir wuerden
in einer Welt leben wo Entwickler keine Datenblaetter lesen und nur
den Sourcecode anderer Leute kopieren. Also sehr unrealistisch.

Vanye

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
Noch kein Account? Hier anmelden.