Forum: Analoge Elektronik und Schaltungstechnik 0/4-20mA zu 0-5Volt


von Dirk M. (dirkm)


Lesenswert?

Hallo,

möchte gerne einen Sensor, der sonst für SPS ist, an einem Analogeingang 
eines AtMega32 anschließen.

Problem ist jetzt, der Sensor hat einen 4-20mA analogausgang und für den 
AVR benötige ich 0-5Volt.

Wie wandelt man es nun am besten?

Warscheinlich mit einem (rail ro rail)OPV.

Weiß da jemand eine genaue und zuverlässige Lösung?

Schonmal vielen Dank :-)

Gruß
Dirk

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

> Problem ist jetzt, der Sensor hat einen 4-20mA analogausgang und für den
> AVR benötige ich 0-5Volt.
Nimm einen 250 Ohm Widerstand und mach aus 4-20mA für den AVR eine 
Spannung von 1-5V. Diese Spannung wandeln und in der Software 1V 
abziehen.

Du brauchst nämlich garantiert nicht eine Spannung, sondern letztlich 
nur einen Sensorwert  ;-)

von Andrew T. (marsufant)


Lesenswert?

Dirk Meyer schrieb:
> Hallo,
>
> möchte gerne einen Sensor, der sonst für SPS ist, an einem Analogeingang
> eines AtMega32 anschließen.
>
> Problem ist jetzt, der Sensor hat einen 4-20mA analogausgang und für den
> AVR benötige ich 0-5Volt.
>
> Wie wandelt man es nun am besten?
>
> Warscheinlich mit einem (rail ro rail)OPV.

Nicht nötig.

>
> Weiß da jemand eine genaue und zuverlässige Lösung?

Wenn Sensor Masse identisch Systemmasse werden darf:

Einfachst: ein Metallfilmwiderstand.
220 oder 248 Ohm. 1%
Den Rest der Skalierung in der SW berücksichtigen.


Genau für sowas ist 20mA Strom-System ideal.

Wenn'S nicht identishc sein darf: Trennverstärker von Knick, Weidmüller.

Dies Thema taucht im Forum übrignes alle 2 Wochen auf ;-)


hth,
Andrew

von Dieter S. (accutron)


Lesenswert?

Dirk,

man könnte es auch "passiv" aufbauen, indem man eine Stromquelle (z. B. 
LM334) und einen Widerstand von 312,5 Ohm in Serie zu einer Zenerdiode 
mit ca. 3V Z-Spg. verwendet. Der LM334 benötigt einen zusätzlichen 
Widerstand, der die 4 mA einstellt. Der restl. Strom fließt dann über 
den parallen Zweig mit dem 312-Ohm-Wid und der Zenerdiode (letztere ist 
notwendig, damit die Stromquelle mit dem LM334 auch eine Mindestspannung 
erhält und damit zuverlässig arbeitet).

Natürlich kann man auch OP-Schaltungen aufbauen.

Gruß

Dieter

von Dieter S. (accutron)


Lesenswert?

Andrew hat natürlich Recht: Den "Nullpunkt" kann man mit der SPS am 
einfachsten beeinflussen, man muss hier nicht unbedingt aus 4 mA eine 
Spannung von 0 V machen. Ich kenne das Problem aber aus eigener 
Erfahrung: Die Anlagenbauer scheuen sich meist vor jeglichem Eingriff in 
ihre SPS-Software, auch wenn es noch so einfach wäre.

Gruß

Dieter

von Andrew T. (marsufant)


Lesenswert?

@Dieter:

Ebenso das Problem ausgedehnter Anlagen mit den bekannten 
Potential/Masseschleifen Problemen.

von Dirk M. (dirkm)


Lesenswert?

Das ja schonmal super :-)

Am liebsten wären mir wirklich 4-20mA zu 0-5V um den ADC des Atmega32 
voll auszuschöpfen. Er hat ja leider nur 10Bit.

Masseschleifen sind bei mir kein Problem. Der Sensor befindet sich nur 
etwa 1 Meter vom AVR entfernt und beide werden aus dem selben Netzteil 
gespeist.

Dieter S dein Vorschlag ist mir leider noch nicht so ganz klar.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

> Am liebsten wären mir wirklich 4-20mA zu 0-5V um den ADC des Atmega32
> voll auszuschöpfen. Er hat ja leider nur 10Bit.
Was ist das für ein Sensor?
Brauchst du wirklich alle 1024 Schritte, oder reichen dir evtl. die 800?

Willst du den Offset mit einem OP abziehen, kannst du dir durchaus 
andere unschöne Offsetprobleme einhandeln (Abgleich und Temperatur und 
Rauschen). Und auch ein "richtiger" R2R OP kommt am Ausgang nicht ganz 
bis an die Rails, weil du ja auch eine Belastung durch den 
Rückkoppelwiderstand hast.

D.h. es wären z.B. 0,1V .. 4.9V, wäre das wirklich besser?

von Dirk M. (dirkm)


Lesenswert?

Es geht um einen 0,5-10m Distanzsensor. Die 1024 Schritte alleine sind 
schon fast zu wenig. Könnte man es irgendwie auf 2 ADC's aufteilen?

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

> Könnte man es irgendwie auf 2 ADC's aufteilen?
Das ist Murks, dann hast du 2x Offsetprobleme, damit wirst du niemals 
glücklich.

Nimm einen externen 12- oder 14-Bit Wandler mit SPI-Interface, dazu den 
Widerstand und fertig.

von Philipp B. (philipp_burch)


Lesenswert?

Besorg dir einen externen ADC mit z.B. 16 Bit. Je mehr analoge 
Beschaltung noch dranhängt, desto anfälliger auf Störungen wird das 
ganze Ding. Ausserdem gibt's mehr Arbeit mit dem Abgleich.
Bringt denn der Sensor die von dir geforderte Genauigkeit?

EDIT: Grmpf, vor dem Schreiben sollte man immer noch mal F5 drücken...

von Dieter S. (accutron)


Lesenswert?

Dirk,

der LM334, zusammen mit einem passenden Widerstand bildet eine 
Stromsenke für 4 mA. Parallel zu dieser Senke schaltest Du eine 
Serienschaltung aus Shunt 312,5 Ohm und Zenerdiode mit ca. 3 V. Unter 4 
mA fällt am Shunt keine Spannung ab. Bei 4 mA lässt der LM334 eine 
Spannung an sich abfallen, die noch unter der Zenerspannung ist. 
Steigert der Stromtransmitter weiter den Strom, so muss dieser die 
Spannung sow weit erhöhen, bis die Zenerdiode plus Shunt Strom führen.


Gruß

Dieter

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

> Zenerdiode mit ca. 3 V.
Das wäre auch das Mittel meiner Wahl. Aber eher zur Temperaturmessung. 
;-)

> 312,5 Ohm
+- 1%  oder wie?  Jeder Widerstand müsste auf 1 Promille genau sein, 
wenn 10 Bit gefordert sind. Sonst hilft nur ein Abgleich.

Und dann ist es besser, ein paar Bit mehr zu wandeln und den Abgleich in 
die Software zu verlagern.

von Dieter S. (accutron)


Lesenswert?

Lothar Miller schrieb:
>> Zenerdiode mit ca. 3 V.
> Das wäre auch das Mittel meiner Wahl. Aber eher zur Temperaturmessung.
> ;-)

Sie dient in diesem Fall als "Stromhürde".


>> 312,5 Ohm
> +- 1%  oder wie?  Jeder Widerstand müsste auf 1 Promille genau sein,
> wenn 10 Bit gefordert sind. Sonst hilft nur ein Abgleich.

Na und? Widerstände lassen sich auch zusammensetzen.


Dieter

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Dieter S. schrieb:
>>> 312,5 Ohm
>> +- 1%  oder wie?
> Na und? Widerstände lassen sich auch zusammensetzen.
Sie werden dadurch aber nicht genauer. Die Toleranz bleibt ...
Wenn du einen 270 Ohm-Widerstand mit -1% hast,
dann hilft dir am Schluss ein 0,47 Ohm-Widerstand mit +1% wenig  ;-)

von Andrew T. (marsufant)


Lesenswert?

Lothar Miller schrieb:
> Dieter S. schrieb:
>>>> 312,5 Ohm
>>> +- 1%  oder wie?
>> Na und? Widerstände lassen sich auch zusammensetzen.
> Sie werden dadurch aber nicht genauer.

Brauchen sie auch nicht.

> Die Toleranz bleibt ...

Spielt hier erstmal keine Rolle, wenn er sie letztlich mit einer 
Meßbrücke/5 stelliges DMM, o.ä. etc vermißt und zusammensetzt.

> Wenn du einen 270 Ohm-Widerstand mit -1% hast,
> dann hilft dir am Schluss ein 0,47 Ohm-Widerstand mit +1% wenig  ;-)

Eben genau der hilft Dir, das Resultat zu erreichen.

einfach zusammenlöten und "fertich isses" geht natürlich nicht.

von Dieter S. (accutron)


Lesenswert?

Das war mir schon klar, dass die Toleranz bleibt. Ich meinte, die 0,1% 
lassen sich für 312,5 Ohm auch zusammensetzen. Dass man dazu mindestens 
einen mit 0,1% benötigt, weiß ich auch.

Im übrigen: Wie genau oder wie hoch auflösend ist denn der Transmitter? 
->Frage an Dirk. Am Ende ist das ein Ding, das mit 8 Bit auflöst auch 
nur eine ähnliche Genauigkeit aufweist. Und dann wieder nach digital zu 
wandeln mit 14 Bit oder höher, wäre unnötig.

Dieter

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

> einfach zusammenlöten und "fertich isses" geht natürlich nicht.
Richtig, und deshalb wäre mein Ansatz, die Anzahl der Fehlerquellen 
klein zu halten (nur 1 Widerstand), geräumig zu wandeln und den Rest in 
der Software zu machen.

von Andrew T. (marsufant)


Lesenswert?

Lothar Miller schrieb:
>> einfach zusammenlöten und "fertich isses" geht natürlich nicht.
> Richtig, und deshalb wäre mein Ansatz, die Anzahl der Fehlerquellen
> klein zu halten (nur 1 Widerstand), geräumig zu wandeln und den Rest in
> der Software zu machen.

Tja, aber eben ganau den Weg will der TE NICHT gehen da er die 10Bit 
voll ausschöpfen will.

Letztlich wird es eh auf eine andere Wandler-Lösung auslaufen. Ich 
denke, wir können die Diskussion hier jetzt wieder entspannen bevor sie 
sich weiter sinnfrei erhitzt.

von Schlechtwetter (Gast)


Lesenswert?

Der "Bit-Verlust" mit der Widerstandsvariante beträgt gerade mal 0,32 
Bit. Dafür aufwendige Analogelektronik dazu bauen, ist Blödsinn.

Wenn man unbedingt etwas mehr Auflösung will, dann besser nochmals zwei 
Widerstände und ein Kondensator dazu und mit Noise-Shaping die Auflösung 
erhöhen. Das dürfte wesentlich zielführender sein, wenn es die 
Abtastrate erlaubt.

von Thorsten (Gast)


Lesenswert?

Nimm einen RCV420 von Burr-Brown. Der macht aus 4-20mA 0-5V.
Nachteil: nicht ganz billig das Teil.
Gruss,
Thorsten

von Michael (Gast)


Lesenswert?

Oder man nimmt nen externen ADC mit 14/16 Bit. Dann wird aber dessen 
Referenzquelle interessant, die sollte ja auch net gar arg zu toll 
schwanken, net, dass die 4/6 zusätzlichen Bits durch die schlechte Ref 
gleich wieder dahin sind.

Wie genau ist es denn erforderlich die 0.5m bis 10m aufzulösen? Bei 10m 
und 10 Bit würd man ja auf ca. nen Zentimeter genau auflösen.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

> Tja, aber eben ganau den Weg will der TE NICHT gehen da er die 10Bit
> voll ausschöpfen will.
Aber auch die reichen ihm noch nicht (auf 2 AD-Wandler aufteilen usw. 
usf.). Also warum nicht gleich auf 14 Bit umschwenken?

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.