Strom mit Arduino über OPV LM358 berechnen

OP #4201434
Lesenswert?

Hallo Leute,

ich habe folgendes Problem, ich möchte mit meinem Arduino Uno den Strom 
über einen Shunt 10mOhm berechnen.
Da der Spannungsabfall aber zu niedrig ist um ihn direkt an den Analog 
Eingang zu hängen, habe ich einen OPV LM358 als Differenzverstärker 
geschaltet.
Die Spannung an der der Shunt hängt soll einstellbar sein. Die 
Versorgungsspannung für den LM358 ist 12V.
raus kommen soll eine Spannung von 5V, wenn die Spannung am 
Spannungsteiler 4,2V ist.

VccTest->5 Ohm-|-10mOhm shunt -> GND
               V
              OPV

Nun kommt mein Problem, ich weiß nicht wie ich die Verstärkung mit 
berechnen soll.
5/1024 = 4,883mV / 10 Bit Auflösung.

Wie kann ich jetzt den Strom berechnen, da der OPV ja eine Verstärkung 
hat, ich aber nicht weiß wie ich diese anwenden soll :(

Hier ist das Schaltbild mit LT Spice

Danke

Edit. mir war bei dem Schatbild ein kleiner Fehler unterlaufen, der ist 
nun korrigiert
Angehängte Dateien:
Gast #4201442
Lesenswert?

bring erst mal etwas Ordnung in den Shuntwert. Im Schaltbild sind es 
100mOhm, im Text mal

Petr t. schrieb:
> über einen Shunt 10mOhm berechnen.

und mal

Petr t. schrieb:
> VccTest->5 Ohm-|-1mOhm shunt -> GND

Die Umrechnung *5V/1024 gibt dir an, welche Spannung der ADC sieht 
(sofern du als Referenzspannung wirklich 5V verwendest).

Diese Spannung ergibt sich aus Strom mal Shuntwiderstand mal 
Spannungsverstärkung des OPV. (zumindest idealerweise: um die Fehler 
kümmern wir uns, sobald die prinzipielle Funktion verstanden ist).
#4201472
Lesenswert?

> Muss ich die Verstärkung des OPV nicht mit berücksichtigen???

Ich verstehe nicht so ganz, wo genau da Dein Verständnisproblem liegt!?
Den Zweck des OP hast Du ja schon richtig erkennt:

Petr t. schrieb:
> Da der Spannungsabfall aber zu niedrig ist um ihn direkt an den Analog
> Eingang zu hängen, habe ich einen OPV LM358 als Differenzverstärker
> geschaltet.

Und das Ziel hast Du auch schon definiert:
> raus kommen soll eine Spannung von 5V, wenn die Spannung am
> Spannungsteiler 4,2V ist.

Nach Adam Riese ist der Strom 4,2V/5Ohm = 0.84A (- ein bisschen durch 
den Shunt - vernachlässigt),
 * 10mOhm = 8,4mV -> diese willst Du auf 5V verstärken, also muss Dein 
OP eine Verstärkung von 5V/8,4mV = 595 haben.
Danach legst Du die Widerstände aus.
OP #4201479
Lesenswert?

Achim S. schrieb:
> Doch: die gemessene Spannung ist ja nicht V_Shunt sondern V_Out. Der
> Umrechenfaktor zwischen beiden ist die Verstärkung des OPV.

Kannst du mir das bitte erklären ?
Ich habe, nach dem Schaltbild 4,99V (~5V) am Ausgang des OPV´s.
Die Spannung die ich am Shunt messe ist 8,4mV.

Die Formel zum berechnen der Verstärung ist ja V= 1 + R3/R4
V= 1 + 473kOhm/1kOhm
V= 474
Aber wie rechne ich damit weiter ?
Angehängte Dateien:
OP #4201488
Lesenswert?

Thomas E. schrieb:
> 10mOhm = 8,4mV -> diese willst Du auf 5V verstärken, also muss Dein
> OP eine Verstärkung von 5V/8,4mV = 595 haben.
> Danach legst Du die Widerstände aus.

Wie kommst du auf diese Formel ?
Und was muss ich dann mit den 595 rechnen ?
Ich möchte ja im Arduino den Strom berechnen.
Also I=5/10mOhm geht so ja nicht, weil der OPV ja dazwischen hängt.
#4201494
Lesenswert?

Hallo,

so ein OPV von Typ  LM358 ist nicht optimal er 'macht' Fehler:

Offsetspannung, Offesetdrift usw.
Er kann nicht bis auf 0 / Vcc Messen, bzw. Verstärken

Es lohnt sich also einen Rail-to-Rail Inp/Outp präzisions OPV zu wählen.

Stell dir bitte vor, was passiert wenn ein Offsetfehler von 3mV um den 
Faktor 595 Verstärkt wird.

Dann ist da eine um 1,785V Differenz-Fehlerspannung am Ausgang, die man 
nicht haben will !

Wenn der OPV nur 500µV Offsetfehler aufweisen sollte, dann liegt der 
Differenz-Fehlerspannung bei 0,2975V.

So oder so muss man eine Offsetspannungkorrektur durchführen !
Gast #4201499
Lesenswert?

Petr t. schrieb:
> Also I=5/10mOhm geht so ja nicht, weil der OPV ja dazwischen hängt

Nein, aber 5/595 geht, dann hast Du die Spannung am Shunt 
(Ausgangsspannung des OPV geteilt dutch die Verstärkung). Das dann 
geteilt durch 0,01Ohm gibt Dir den Strom, der durch den Shunt fließt.
Gast #4201508
Lesenswert?

Der Fehler des OP ist aber ein ganz neues Problem. Solange das 
Grundproblem nicht verstanden ist verwirrt es eher. Ich würde es auf die 
Liste für später setzen.

Wenn Du am Ausgang 5V zum Messen mit dem AVR haben willst bei ca. 8,4mV 
am Eingang sollte der OP welche Verstärkung haben? (595) Das bedeutet 
die Auslegung der Widerstände anzupassen.

Der Strom im Shunt berechnet sich dann zu I = Ushunt * Verstärkung / 
Rshunt
Gast #4201552
Lesenswert?

Petr t. schrieb:
> Nun kommt mein Problem, ich weiß nicht wie ich die Verstärkung mit
> berechnen soll.

4.2V/5.1Ohm=823mA
823mA*0.01Ohm = 82.3mV
5V/82.3mV=60.1 als Verstärkungsfaktor

Petr t. schrieb:
> da der OPV ja eine Verstärkung
> hat, ich aber nicht weiß wie ich diese anwenden soll :(

R3 beliebig festlegen, z.B. nach Eingangsimpedanz des anderen Eingangs 
auf 10kOhm.
R4 = (60.1-1)*R3 = 591k.

Aber:

Auflösung 823mA/1024 = 803uA

82.3mV für 1024 = 80.37uV für 1 Digit
Offsetfehler LM358 7mV -> Messfehler 87 Digits der 1024 = 70mA.

Dein 10mOhm shunt ist also absolut fehldimensioniert für den absolut 
billigen OpAmp LM358, du erzeugst eher Messfehler als Messwerte.
Nimm wenigstens 25 mOhm und einen LT1013 als OpAmp.

82.5*25 = 206.25mV, Verstärkung 24.27, R4= 233kOhm (0.1%) R3=10k (0.1%)
Fehler 1 von 1024.
OP #4201555
Lesenswert?

OP schrieb:
> Der Strom im Shunt berechnet sich dann zu I = Ushunt * Verstärkung /
> Rshunt

Das kommt irgendwie nicht hin:
8,4mV @ 5V OPV out

 I = Ushunt * Verstärkung / Rshunt
 I = 8,4mV  *  595 / 10mOhm
 I = 4,998V / 10mOhm
 I = 499,8mA

??? Das geht nicht auf, bei 5V habe ich einen Strom von 838 mA nach LT 
Spice
Ich denke dann müsste in deiner Formel noch ein x 1,66 rein, damit die 
Werte sich annähren.

 I = Ushunt  Verstärkung  1,66 / Rshunt
 I = 8,4mV    595  1,66 / 10mOhm
 I = 8,34 V / 10mOhm
 I = 829,6mA

Teiler schrieb:
> Nein, aber 5/595 geht, dann hast Du die Spannung am Shunt
> (Ausgangsspannung des OPV geteilt dutch die Verstärkung). Das dann
> geteilt durch 0,01Ohm gibt Dir den Strom, der durch den Shunt fließt.

Das klappt ganz gut^^

5V OPV Ausgangsspannung, bei 4,2V Spannung an V1 im Schaltbild

5V / 595 = 8,4mV U_shunt

I=  8,4mV / 10mOhm = 840mA
Gast #4201595
Lesenswert?

Petr t. schrieb:
> Teiler schrieb:
>> Nein, aber 5/595 geht, dann hast Du die Spannung am Shunt
>> (Ausgangsspannung des OPV geteilt dutch die Verstärkung). Das dann
>> geteilt durch 0,01Ohm gibt Dir den Strom, der durch den Shunt fließt.
>
> Das klappt ganz gut^^

Das klappt nicht nur ganz gut, sondern ist absolut richtig, wenn der 
Verstärkungsfaktor genau bekannt ist.
Offsetfehler des OPV werden natürlich das Ergebnis verfälschen, und 
darum ist ein LM358 für diese Anwendung auch nicht geeignet.
Gast #4201601
Lesenswert?

Petr t. schrieb:
> Entschuldige, das ich deine ganze berechnung über den Tisch werfen muss,
> aber du hast mit 100mOhm gerechnet, nicht mit 10mOhm

Oh, also Fehler eher 70% als 7% mit dem bililgsten alle billigen AOpAmp 
und einen gnadenlos zu klein gewähltem shunt.

Petr t. schrieb:
> Wie kommst du auf die 7mV ?

http://www.ti.com/lit/ds/symlink/lm158-n.pdf
LM358
MAX
Input Offset Voltage See(2) , TA = 25°C: 7 mV
OP #4201604
Lesenswert?

Teiler schrieb:
> und
> darum ist ein LM358 für diese Anwendung auch nicht geeignet.

MaWin schrieb:
> Nimm wenigstens 25 mOhm und einen LT1013 als OpAmp.


Das mit 25mOhm wird nicht gehen.
Ich habe mir den LT1013 mal angeschaut, von der Pinbelegung ist er 
genauso wie der LM358.
Könnte ich den LM358 einfach durch den LT1013 ersetzen ?
Natürlich müsste ich dann noch die Widerstände entsprechend anpassen.
OP #4201610
Lesenswert?

MaWin schrieb:
> Oh, also Fehler eher 70% als 7% mit dem bililgsten alle billigen AOpAmp
> und einen gnadenlos zu klein gewähltem shunt.

der klein gewählte Shunt erfüllt seinen Zweck ;)
Also denkst du der LT1013 wäre die bessere Alternative ?
Muss ich da etwas beachten ?
Pinbelegung ist beim DIP package genau die gleiche wie bei meinem LM358 
und die widerstände müsste entsprechend anpassen.
Gast #4201625
Lesenswert?

Petr t. schrieb:
> und die widerstände müsste entsprechend anpassen.

Wieso willst du beim LT1013 andere Widerstände wählen. Braucht der 
deiner Meinung nach einen anderen Verstärkungsfaktor?

Petr t. schrieb:
> Also denkst du der LT1013 wäre die bessere Alternative ?

er hat einen wesentlich kleineren Offsetfehler (gut) und er funktioniert 
ebenfalls mit dem Eingang nahe an der negativen Versorgung (auch gut).

Ob die Messung damit genau genug wird, hängt von deinen Anforderungen 
ab. Willst du 1% Fehlergrenze oder 10% oder 100%? Hst du schon mal 
abgeschätzt, um wie viel der gemessene Spannungsabfall durch die 
Widerstände deiner Leiterbahn oder Übergangswiderstände der Lötstellen 
verfälscht wird?
OP #4201638
Lesenswert?

Achim S. schrieb:
> Wieso willst du beim LT1013 andere Widerstände wählen. Braucht der
> deiner Meinung nach einen anderen Verstärkungsfaktor?

Weil ich mir dachte das er, wenn so genau ist, auch intern anders ist 
und tatsache, mit LT Spice hätten die Widerstände nicht funktioniert.
Ich musste sie entsprechend anpassen, aber rest der Schaltung ist gleich 
geblieben.
Angehängte Dateien:
Gast #4201666
Lesenswert?

Petr t. schrieb:
> Weil ich mir dachte das er, wenn so genau ist, auch intern anders ist
> und tatsache,

Natürlich ist er intern anders, aber das spielt für die Festlegung des 
Verstärkungsfaktors erst mal keine Rolle.

Petr t. schrieb:
> mit LT Spice hätten die Widerstände nicht funktioniert.
> Ich musste sie entsprechend anpassen, aber rest der Schaltung ist gleich
> geblieben.

Falsche Schlussfolgerung: du mischst in deiner Betrachtung die 
Auswirkungen von Offsetfehler und Verstärkungsfehler und versuchst, den 
einen durch den anderen auszugleichen. Berechne_ dir die _benötigte 
Verstärkung und stell die ein. Versuch nicht, so lange mit 
Widerstandswerten in LTSpice rumzuspielen, bis du am Ausgang zufällig 5V 
siehst. LTSpice ist ein tolles Programm, aber wenn du es so einsetzt, 
dann schadet es mehr, als dass es nutzt. Die richtige Rechnung, hat dir 
Thomas schon vorgeführt (und diverse andere auch, nur nicht so 
detailliert)
Beitrag "Re: Strom mit Arduino über OPV LM358 berechnen"

Sei dir auch darüber im Klaren, dass LTSpice höchstens mit einem 
Beispielswert für den Offsetfehler rechnet. Der Offsetfehler in der 
Simulation und der Offsetfehler des OPVs, den du einbaust, sind 
unterschiedlich.
Gast #4201678
Lesenswert?

Petr t. schrieb:
> Das mit 25mOhm wird nicht gehen.

Richtig, ich habe mich ja auch um den Faktor 10 verhauen wie du 
herausgefunden hast.

> Ich habe mir den LT1013 mal angeschaut, von der Pinbelegung ist er
> genauso wie der LM358.
> Könnte ich den LM358 einfach durch den LT1013 ersetzen ?

Er ist ein genauerer LM358, mit 0.15mV statt 7mV Offsetspannung.

Er passte gut zum von dir vorgesehenen shunt.

Wenn man aber um deen Faktor 10 besser sein muss, muss man einen
LMP2021, MCP6V11 oder TSZ121 sein.

Die sind netterweise Rail-To-Rail, brauchen also bloss 5V Versorgung um 
5V ausgeebeenzu können, sind also nicht mehr "identsich nur besser " als 
der LM358, sondern "viel besser".

Allerdings sind die so gut, daß du ihre Leistung gar nicht nutzen können 
wirst: Unter 10uV sind so wenig, daß bereits Thermospannungen zwischen 
Kupfer und Lötzinn und IC-Anschlussbeinchen höher sind, daß Biegungen 
der Leiterplatte mehr Offset reinbringen, daß deine Widerstände sowieso 
ungenauer sind und mehr rauschen, und jede allerkleinste Störung 
vonaussen grösser ist als das 1 bit.

Dein shunt ist also einfach viel zu klein gewählt, nimm 0.1 Ohm oder 
0.25 Ohm.
OP #4201686
Lesenswert?

MaWin schrieb:
> Wenn man aber um deen Faktor 10 besser sein muss, muss man einen
> LMP2021, MCP6V11 oder TSZ121 sein.
>
> Die sind netterweise Rail-To-Rail, brauchen also bloss 5V Versorgung um
> 5V ausgeebeenzu können, sind also nicht mehr "identsich nur besser " als
> der LM358, sondern "viel besser".
>
> Allerdings sind die so gut, daß du ihre Leistung gar nicht nutzen können
> wirst: Unter 10uV sind so wenig, daß bereits Thermospannungen zwischen
> Kupfer und Lötzinn und IC-Anschlussbeinchen höher sind, daß Biegungen
> der Leiterplatte mehr Offset reinbringen, daß deine Widerstände sowieso
> ungenauer sind und mehr rauschen, und jede allerkleinste Störung
> vonaussen grösser ist als das 1 bit.

Ich danke dir für die ganzen detaillierten Hinweise und Vorschläge, aber 
ich denke ich werde mit dem LT1013 gut bedient sein^^

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren