Ich möchte ein Signal, das von einem Messumformer mit 4..20mA kommt, mit
einem Arduino auswerten. Der Sensor misst einen Druck in einem Bereich
von 0 bis 6 bar. Die Schaltung seht ihr im Screenshot.
Vermutlich müsste das auch so gehen, dieser Thread hier scheint das
Thema zu behandeln:
Beitrag "4-20mA --> 0-5 V transformieren"
Meine konkreten Fragen sind (teilweise etwas gemischt, sorry. Wollte
nicht für jedes Thema extra einen Thread aufmachen):
1) Kann ich die Schaltung so verwenden?
2) Ist die Z-Diode so korrekt verwendet, wenn ich mich gegen unzulässige
Spannungen (größer 27 Volt) absichern möchte?
3) Wenn 2) korrekt ist: Mein Netzteil hat eine Leistung von 60 Watt, die
ausgewählte Diode kann nur 5 Watt. Wie sichert man dann so etwas ab?
Durch eine zusätzliche Feinsicherung mit z.B. 40 mA, die in Reihe zur
Z-Diode geschaltet wird? Oder gibt es einen eleganteren Weg?
(Eingangsspannung Ub ist 24 Volt)
4) Es handelt sich um diesen Drucksensor hier:
https://www.sensorshop24.de/tpl/download/FME11.pdf
Welche Variante ist besser für mich geeignet? Die mit 4..20mA oder mit
0..10V? Bei ersterer spare ich mir einen Leiter und kann einen
Kabelbruch recht leicht feststellen, wenn der Strom 0mA beträgt. Der
Messfehler dürfte klein sein, da die Leitung nicht sonderlich lang ist.
Was spricht für die 0..10V-Variante?
5) Wenn ich die 0..10V-Variante verwende, dann muss müsste ich
vermutlich einen Spannungsteiler mit sagen wir mal 2x 5,1kOhm
Widerständen verwenden, um das Signal auf 0..5V zu bringen, korrekt?
6) Wie funktioniert eigentlich der Messwertumformer 4..20mA? Ist das
eine Konstantstromquelle, die das ggf. nichtlineare Signal vom Sensor
linear macht und dann einfach einen gleichbleibenden Strom ausgibt (und
gleichzeitig mit 10 Volt Spannung versorgt wird)?
Wäre super, wenn mir jemand weiterhelfen könnte -- gerne auch nur bei
einzelnen Fragen.
Mein Vorschlag wäre ähnlich:
Meßwiderstand auf der Masseseite von 250 Ohm. Ideal wäre für gute
Meßgenauigkeit ein 0.1% Typ mit niedrigen TK.
Für den Spannungsschutz des Sensors eine TVS Diode zwischen Masse und
Eingangsspannung und Sicherung oder PTC Überstromschutz. TVS deswegen
weil die im Vergleich zu Zenerdioden viel schneller reagieren.
Industrielle 4-20mA Sensoren sind aber meist schon vom Hersteller recht
gut geschützt. Ob dafür ein Spannungsschutz notwendig ist fraglich.
Wenn nur der Arduinomeßeingang geschützt werden soll, genügt ein 10K
Serienwiderstand vom 250Ohm zum ADC Eingang und eine Schottkydiode nach
VDD. Eine 5.6V Zenerdiode nach Masse ist da weniger günstig weil im
Beteich der Zenerknickspannung unberechenbare Leckströme fließen
könnten, die die Meßgenauigkeit beeinflussen. Ein 10n nach Masse ist
notwendig um dem Input MUX des uC Kontrollets genug Strom beim internen
Umschalten zu geben. (Steht im Datenblatt wie groß die ADC Signal
Impedanz sein darf). Solange der Eingangsstrom im Fehlerfall begrenzt
genug ist, genügen dann die internen CMOS Substratdioden die immer
vorhanden sind. Nur passiert bei zu viel Strom ein möglicher Latchup,
der den uC bei genug Strom der Spannungsversorgung den IC zerstören
könnte.
Besser wäre sonst den 10K Serienwiderstand aufteilen und einer 6.8V TVS
Diode nach Masse dazwischenlegen. (Siehe beiligende Skizze). Dann ist
der Strom in den ADC Eingang definiert begrenzt.
Sollte auch noch der Messwiderstand gegen Überlastung geschützt werden
wird es aufwendiger.
Wenn ein 24V Netzteil in Frage kommt, dann sollten für den Arduino zum
Schutz des internen Spannungsregler die Versorgungsspannung auf 8-12V
reduziert werden.
Übrigens, obwohl Du nicht danach gefragt hast: Durch ADC Oversampling,
also laufend so schnell wie praktisch erfassen, läßt sich durch Mitteln
die Auflösung um mindestens 1-2bit (Dithering) vergrößern wenn genug
Zeit vorhanden ist. Das immer vorhandene Rauschen erlaubt mit dieser
Methode die effektive ADC Auflösung zu verbessern. Das lohnt sich ab
16-64 ADC Messungen per Zyklus. Nicht vergessen die Hälfte des
Mittelwert N zum Result hinzuaddieren um den 1/2-bit Fehler zu
kompensieren. Z.B. bei 64 Messungen addierst Du dann am Ausgangswert 32.
durch diese Massnahmen kannst Du den (teuren) Sensor durch bis zu
1-2-bit mehr, besser ausnutzen ohne einen besseren ADC verwenden zu
müssen. Idealerweise, sollte auch eine gute 5V Spannungsreferenz am AREF
Pin angeschlossen werden und auf externe Referenz umschalten. Ob sich
das lohnt weiß ich nicht, da ich den Sensor nicht kenne. Da müsste man
mal rechnen ob es sich lohnt.
https://www.cypress.com/file/236481/downloadhttps://thecavepearlproject.org/2017/02/27/enhancing-arduinos-adc-resolution-by-dithering-oversampling/http://www.ti.com/lit/an/snoa232/snoa232.pdf
Nachtrag:
Ich würde den 4-20mA bevorzugen. Das ist bei größeren Entfernungen
vorteilhaft und einfacher und billiger.
Gerhard O. schrieb:> Meßwiderstand auf der Masseseite von 250 Ohm
"Masseseite" deshalb, damit ich automatisch einen Pull-Down bei nicht
anliegender Spannung für die Digitaleingang habe, korrekt?
> Für den Spannungsschutz des Sensors eine TVS Diode zwischen Masse und> Eingangsspannung und Sicherung oder PTC Überstromschutz. TVS deswegen> weil die im Vergleich zu Zenerdioden viel schneller reagieren.
OK, mir geht es weniger um Überspannung als z.B. um Anlegen einer
dauerhaft falschen zu hohen Spannung beim Einbau. Dann würde der PTC mir
vermutlich nur bedingt helfen. Er würde zwar die Diode vor Überlast
schützen, aber dann bei steigendem Widerstand ggf. irgendwann wieder die
zu hohe Spannung anliegen lassen. Also wäre für diesen Fall der
dauerhaft zu hohen Spannung die Sicherung die bessere Lösung, korrekt?
> Besser wäre sonst den 10K Serienwiderstand aufteilen und einer 6.8V> TVS Diode nach Masse dazwischenlegen. (Siehe beiligende Skizze).
Könntest Du in Deiner Zeichnung noch mal die einzelnen Spannungen (und
Ströme) an den Widerständen und der TVS-Diode einzeichnen? Ich bin nicht
sicher, ob ich da so durchsteige. Was für einen Spannungsabfall hat eine
TVS-Diode? Habe ich noch die 5 Volt als anliegende Spannung am Arduino?
> Ein 10n nach Masse ist notwendig um dem Input MUX des uC Kontrollets> genug Strom beim internen Umschalten zu geben.
Das nehme ich einfach mal so hin. Übersteigt meine
Elektrotechnik-Kenntnisse...
> Wenn ein 24V Netzteil in Frage kommt, dann sollten für den Arduino zum> Schutz des internen Spannungsregler die Versorgungsspannung auf 8-12V> reduziert werden.
Genau, da habe ich schon einen Festspannungsregler vorgesehen, den ich
auf den Buchseneingang des Arduino lege. Ich gehe also nicht direkt aufs
Board. Soweit ich weiß, ist der Buchseneingang auch noch mal abgesichert
Sebastian E. schrieb:> Gerhard O. schrieb:>>> Meßwiderstand auf der Masseseite von 250 Ohm>> "Masseseite" deshalb, damit ich automatisch einen Pull-Down bei nicht> anliegender Spannung für die Digitaleingang habe, korrekt?
Ja. Auf alle Fälle. Ist auch für den ADC Meßeingang notwendig.
>>> Für den Spannungsschutz des Sensors eine TVS Diode zwischen Masse und>> Eingangsspannung und Sicherung oder PTC Überstromschutz. TVS deswegen>> weil die im Vergleich zu Zenerdioden viel schneller reagieren.>> OK, mir geht es weniger um Überspannung als z.B. um Anlegen einer> dauerhaft falschen zu hohen Spannung beim Einbau. Dann würde der PTC mir> vermutlich nur bedingt helfen. Er würde zwar die Diode vor Überlast> schützen, aber dann bei steigendem Widerstand ggf. irgendwann wieder die> zu hohe Spannung anliegen lassen. Also wäre für diesen Fall der> dauerhaft zu hohen Spannung die Sicherung die bessere Lösung, korrekt?
Naja. Kommt darauf an welche Fehlerquellen möglich sind. Gegen
Falschpolung genügt eine Diode. Gegen Sensorüberspannung ist es besser
die Versorgungsspannung zu sichern. Hier könnte eine Sicherung und
Leistungszenerdiode helfen, so daß die zulässige 30V am Sensor nicht
überschriten werden kann. Bei 4mA fallen dann noch 1V am 250 Ohm
Widerstand und 5V bei 20mA. Der Sensor selber braucht eine gewisse
interne Betriebsspannung von ein paar Volt, die aber bei der 30V
maximalen Betriebspannung schon miteinbezogen ist. 24V ist übrigens in
der Industrie üblich. Wenn ich Du wäre, würde ich einfach eine flinke
100mA Sicherung und 27V TVS Diode parallel zum Netzteil nehmen. Zum
Falschpolungsschutz noch eine Seriendiode nach dem Netzteil zum Sensor.
>>> Besser wäre sonst den 10K Serienwiderstand aufteilen und einer 6.8V>> TVS Diode nach Masse dazwischenlegen. (Siehe beiligende Skizze).>> Könntest Du in Deiner Zeichnung noch mal die einzelnen Spannungen (und> Ströme) an den Widerständen und der TVS-Diode einzeichnen? Ich bin nicht> sicher, ob ich da so durchsteige. Was für einen Spannungsabfall hat eine> TVS-Diode? Habe ich noch die 5 Volt als anliegende Spannung am Arduino?
In meinem Schaltungsvorschlag teilte ich den Schutzwiderstand auf um den
Strom durch die Schutzdiode auf einen sicheren Wert zu begrenzen. Das
könnte passieren wenn mal versehentlich 24V am Messwiderstand angelegt
werden würden. Das überlastet zwar den Messwiderstand, schützt aber den
AVR Eingang weil in diesem Fall die Spannung auf rund 6.8V begrenzt
würde. Über die restlichen 10K fließt dann gegen VDD intern über die
CMOS Schutzdiode die bei CMOS immer vorhanden nur ein sehr kleiner Strom
der den AVR nicht beschädigt. Da die 6.8V TVS diode 1.8V von 5V weg ist,
sollte der Leckstrom vernachläßig sein. Im Normalfall bekommt also der
AVR ADC Eingang die erwartete Spannung von 1-5V. Also fallen am 1K und
10K im normalen Betriebsbereich keine Spannungen ab und kannst
ignorieren.
Wenn Du auch noch den 250Ohm Messwiderstand gegen Überspannung bis 30V
schützen willst, müsste mein Schaltungsvorschlag geändert werden. Dann
würde ich einen 50mA SRF oder flinke 63mA Sicherung vor dem Meseingang
in Serie vorschlagen und die TVS Diode parallel zum 250 Ohm Widerstand.
Wenn dann 30V angelegt werden, begrenzt der TVS die Spannung auf 6.8V
und es fliesst dann genug Strom um den 50mA SRF ansprechen zu lassen.
Durch den 250 Ohm Widerstand fliessen dann nur rund 30mA was er
verkraften sollte.
Mit komplizierteren aktiven Schaltungen könnte man noch bessere
Schutzeigenschaften erzielen. Ob sich das lohnt muß im Einzelfall
entschieden werden. Es gibt dafür zahlreiche Schaltungsvorschläge
seitens der IC Hersteller.
>>> Ein 10n nach Masse ist notwendig um dem Input MUX des uC Kontrollets>> genug Strom beim internen Umschalten zu geben.>> Das nehme ich einfach mal so hin. Übersteigt meine> Elektrotechnik-Kenntnisse...
Reduziert nur etwaige Störspannungen und erhöht die Meßgenauigkeit bei
Meßsignalen mit hohen Innenwiderstand. Ist nicht unbedingt notwendig
außer daß ohne C der Innenwiderstand des Messsignals niedrig sein soll.
Beim AVR bedeutet das übrigens nicht größer sein als 10K. Der Grund ist,
daß beim Umschalten des Mux kleine interne Cs im Meßzweig des ADCs
umgeschalten werden müssen und der externe C diese Energie bereitstellt
um Messfehler zu vermeiden. Das wird im Datenblatt näher beschrieben.
>>> Wenn ein 24V Netzteil in Frage kommt, dann sollten für den Arduino zum>> Schutz des internen Spannungsregler die Versorgungsspannung auf 8-12V>> reduziert werden.>> Genau, da habe ich schon einen Festspannungsregler vorgesehen, den ich> auf den Buchseneingang des Arduino lege. Ich gehe also nicht direkt aufs> Board. Soweit ich weiß, ist der Buchseneingang auch noch mal abgesichert
Ich hoffe, das klärt einige Fragenpunkte.