Shunt-Messung für Stromfluss in beide Richtungen

OP Persönliche Seite #3151364
Moin,

ich bastel gerade an einem kleinen Batteriemanagementsystem wo ich u.a. 
den aktuellen Lade/Entladestrom erfassen möchte.

Daher war meine erste Idee einen 0.09 Ω Shunt direkt zwischen 
Batteriemasse und Gerätemasse zu schalten. Jetzt ist die Frage, wie ich 
am geschicktesten mit einem ADC den Spannungsabfall messen kann…

Nach meinem Gedankengang wäre die Spannung überm Shunt negativ, vom 
Massepotential nach dem Shunt aus gesehen, wenn die Batterie entladen 
wird und positiv wenn sie aufgeladen wird.


… der AVR-ADC mag natürlich negative Spannungen gar nicht, jemand eine 
Idee, wie ich das am einfachsten messen kann?

Die Battiespannung ist >10 V, also scheidet High-Side Sensing wohl aus, 
was?
Entweder den ADC im differentiellen Modus betreiben (Messung zwischen 
zwei Pins) oder einen Operationsverstärker davorsetzen. Da kannst du 
dann zum Beispiel das Ausgangssignal so setzen, daß "Null Strom" einen 
Offset von 2,5V hat. Maximaler negativer Strom wäre dann 0V am Ausgang 
und maximaler positiver Strom wären 5V am Ausgang.
OP Persönliche Seite
Bernd S. schrieb:
> Entweder den ADC im differentiellen Modus betreiben (Messung zwischen
> zwei Pins)

Wenn der Spannungsabfall negativ ist, ist ja auch die Eingangsspannung 
an einem der differentiellen Eingangspins negativ… das erlaubt der AVR 
doch nicht, oder?

Datenblatt ATtiny?61:
> 0 - VCC ADC Input Voltage Range

Also Opamp in Addiererschaltung, wo ich einfach 2.5 V (aus 
Spannungsteiler) addiere. Klingt nach einem Plan…
Marian B. schrieb:
>
> Wenn der Spannungsabfall negativ ist, ist ja auch die Eingangsspannung
> an einem der differentiellen Eingangspins negativ… das erlaubt der AVR
> doch nicht, oder?

Du mußt doch nicht den AVR auf die gleiche Masse hängen wie die 
Batterie?
Wenn du deine Schaltung isoliert aufbaust (über einen DC/DC-Wandler), 
dann  hast du keinen Bezug mehr zwischen AVR und Batterie. Und die Pins 
messen wirklich nur die Differenz zwischen den beiden Beinen. Zwischen 
ADC-Eingang und GND des AVR liegt keine Spannung mehr an.
>
> Datenblatt ATtiny?61:
>> 0 - VCC ADC Input Voltage Range
>
> Also Opamp in Addiererschaltung, wo ich einfach 2.5 V (aus
> Spannungsteiler) addiere. Klingt nach einem Plan…

Oder du nimmst den INA219, den Klaus vorgeschlagen hat. Auch eine gute 
Idee, der wird über I²C angesteuert und verträgt +/-26V im differential 
mode.

Noch eine Möglichkeit: der ZXCT1041, ist im SOT23-Gehäuse und kann auch 
beide Stromrichtungen.
OP Persönliche Seite
Bernd S. schrieb:
> Marian B. schrieb:
>>
>> Wenn der Spannungsabfall negativ ist, ist ja auch die Eingangsspannung
>> an einem der differentiellen Eingangspins negativ… das erlaubt der AVR
>> doch nicht, oder?
>
> Du mußt doch nicht den AVR auf die gleiche Masse hängen wie die
> Batterie?
> Wenn du deine Schaltung isoliert aufbaust (über einen DC/DC-Wandler),
> dann  hast du keinen Bezug mehr zwischen AVR und Batterie. Und die Pins
> messen wirklich nur die Differenz zwischen den beiden Beinen. Zwischen
> ADC-Eingang und GND des AVR liegt keine Spannung mehr an.

Stimmt, allerdings wollte ich die Schaltung möglichst einfach halten. Da 
kommt ein 08/15-Opamp als (nicht-invertierender) Summierer einfach 
günstiger weg :-)
Außerdem muss der AVR noch ein paar MOSFETs ansteuern (um die Ladung zu 
aktivieren bzw. sich selbst und den Verbraucher von der Batterie zu 
trennen, falls sie zu tief entladen wird) und dann wird es isoliert doch 
ziemlich haarig…
Gast
Bernd S. schrieb:
> Wenn du deine Schaltung isoliert aufbaust (über einen DC/DC-Wandler),
> dann  hast du keinen Bezug mehr zwischen AVR und Batterie. Und die Pins
> messen wirklich nur die Differenz zwischen den beiden Beinen.

Auch ein Differenzverstärker hat so etwas wie einen "Common Mode Range". 
Auch die einpolige Spannungsmessung muss erst noch erfunden werden.
Gast
Marian B. schrieb:
> Die Battiespannung ist >10 V, also scheidet High-Side Sensing wohl aus,
> was?

High Side Strommessung ist in gewissen Grenzen keine Problem, zumal man 
ganz ohne Signalaufbereitung sowieso nicht auskommen wird.
Beitrag "Stromsensor Schaltung mit OPV"

Wie wäre es mit ein paar Fakten deinerseits?

Um welchen Spannungsbereich geht es 100V, 50V, 20V, 12V ...?
">10V" ist ein weites Feld.

Hat dein µC irgendetwas, was eine Analogsignalaufbereitung erlaubt?
Mr. X schrieb:
>
> Auch ein Differenzverstärker hat so etwas wie einen "Common Mode Range".
> Auch die einpolige Spannungsmessung muss erst noch erfunden werden.

Sorry, du hast recht. Ich ging davon aus, daß der AVR tatsächlich eine 
richtige Differenzmessung macht. Dann hätte das funktioniert. Aber er 
mißt nur zwei Spannungen an den Eingängen (gegen GND!) und bildet intern 
die Differenz dieser beiden Meßwerte. Das ist ein großer Unterschied.
Ich nehme alles zurück! :-)

Also auch an Marian:
Differenzmessung mit dem AVR hilft dir hier nicht weiter.
Gast
Marian B. schrieb:
> Bernd S. schrieb:
>> Entweder den ADC im differentiellen Modus betreiben (Messung zwischen
>> zwei Pins)
>
> Wenn der Spannungsabfall negativ ist, ist ja auch die Eingangsspannung
> an einem der differentiellen Eingangspins negativ… das erlaubt der AVR
> doch nicht, oder?
>
> Datenblatt ATtiny?61:
>> 0 - VCC ADC Input Voltage Range

Es ist zwar nicht erlaubt, aber bei einem Attiny44(V/A) funktioniert das 
trotzdem, solange die Spannung natürlich klein genug ist, damit die 
interne Diode noch nicht leitet. Für letztere braucht man natürlich eine 
entsprechende Strombegrenzung.

Alternativ könnte man den Pegel auch einfach mit einen Spannungsteiler 
nach Vcc, Vref oder eine andere geeignete Spannung hochziehen.
Zur Messung von Positiven und Negativen Strömen benutzte ich einen 
ACS711. Der Strom fliest direkt durch den IC. Der ACS711 basiert auf 
einem Hallsensor und gibt eine Analoge Spannung aus, die durch einen uC 
weiterverarbeitet werden kann.

max. Strom: +/- 25A

Ausgangsspannungen am ACS711:
+25A = 3.3V
0A = 1.65V
-25A = 0V
Angehängte Dateien:
Bei einer Zelle komm ich gerade nicht drauf wie es einfach geht, obwohl 
es eigentlich einfacher sein sollte.^^ Oder ich denke da falsch. Man 
könnte zwei Operationsverstärker nehmen. Der eine wird so beschaltet, 
daß er den Ladestrom mißt, der andere so, daß er den Entladestrom mißt.

Bei mehreren Zellen würde ich den Shunt von der Masse aus gezählt 
zwischen der untersten und der zweiten Zelle anbringen. Solange die 
Zellspannung+Shuntspannung nicht über der Versorgungsspannung liegt 
sollte das gehen. Ansonsten hilft ein Spannungsteiler. Dann noch das 
Signal differentiell messen, bzw. bei Bedarf vorher noch Verstärken. So 
kann am Shunt aus Sicht vom AVR keine negative Spannung auftauchen 
solange die unterste Zelle nicht tiefentladen und durch den Rest des 
Akkupacks verpolt wird. Da wäre aber ohnehin der Notaus fällig.

Gruß Carsten
Google mal nach "lt an105".
Da findest du dann [PDF]
AN105 - Current Sense Circuit Collection - Linear Technology.

Wenn du so im Bereich der Seite 26 herumliest findest du eine
hinlänglich bekannte Schaltung. Wegen der Bidirektionaltität baut man 
deise dann halt 2 mal auf.
Man benötigt dann 3 Stück OPV.

Was daran jetzt einfacher sein soll als nen INA219 oder was ähnliches 
erschliesst sich mir nicht auf den ersten und auch nicht auf den 2ten 
Blick.

Gruss Klaus

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 13 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.