Batteriespannung messen mit Spannungsteiler

Hallo,

Ich vermisse bei der gesamten Diskussion eine Angabe über die tatsächlichen Verhältnisse des Spannungsteilers zunächst mal ganz ohne Belastung und ohne Arduino , mal abgesehen von dem Multimeter. Dazu scheinen mir zwei Messungen, auch über ein paar Minuten, erforderlich zu sein.
Wie genau sind die Widerstände des Teilers tatsächlich und wie ist die Belastung des Teilers durch den Arduino. Wie kommt es zu dem wegdriften der Spannung. Hat das eventuell was mit Erwärmung eines Bauteils , Überganswiderstandes von Kabel und Steckbrett, zu tun ?

1.Spannung am Spannungsteiler mit Multimeter messen ohne Verbindung zum Arduino.
2. Gleiche Messung mit Verbindung zum Arduino.

Das eigentliche Problem scheint mir das Wegdriften zu sein. Ich würde auch mal alle anderen unbenutzten Analogeingänge auf GND legen.

Aus https://www.arduino.cc/reference/de/language/functions/analog-io/analogreference/

Anmerkungen und Warnungen

Wenn die Referenzspannung geändert wird, können die ersten Messwerte von analogRead() fehlerhaft sein.

Da reicht eine kleine Wartezeit, dann ist auch die erste Messung ok.
(kann man leicht mit meiner ADC Klasse ausprobieren)

Ist egal, nach einer Kalibrierung.
Und sowieso sollten die R Values gar nicht in die Rechnung eingehen.

Das spielt keine Rolle.

Die Aussage ist vergleichsweise ungenau. Wenn man jetzt einmal annimmt. Du hast zwischen GND und IO-pin A0 gemessen. Wenn mit dem IOpin A0 sonst nichts verbunden ist dann ist doch völlig klar das man da 0V misst.

Du musst schon die Batterie an deinen Spannungsteiler angeschlossen
und
den Minuspol der Batterie mit GND des Arduino verbunden haben
und
den Spannungsteiler mit io-pin A0 verbunden haben und dann messen.

Wenn wie oben beschrieben alles angschlossen ist und dann zwischen GND und Io-pin A0
0,00 V angezeigt werden und noch nicht einmal 0,X V dann stimmt etwas nicht.

Hallo,
das sehe ich ebenso, mit ging es nur darum , der T0 wundert sich halt darüber das er 11.xx Volt am der Batterie misst und mit dem Arduino nur auf 10,xx kommt. Auf die naheliegende Idee mit dem Multimeter mal den Ausgang des Spannungsteilers zu messen sollte man doch als erstes kommen.

Gruß Heinz

Hallo alle zusammen,

herzlichen Dank für die vielen Antworten. Hier ein kurzes (erfolgreiches) Update zum Projekt:

Ich habe mich über das Wochenende nochmal hingesetzt und einen Faktor berechnet für die Kalibrierung, so wie @combie es gesagt hatte. Vielen dank an der Stelle nochmal für den Hinweis!
Die Werte auf dem Multimeter weichen jetzt nur noch 0,01V von den Werten im seriellen Monitor ab, was aber verzeihlich ist und wohl an der Auflösung (0-1023 Byte --> 0-15,00 V) liegt.

Die Spannungsmessung ist jetzt auch sehr stabil. Leider kann ich mir nicht erklären wieso es auf einmal nicht mehr schwankt, aber ich bin froh das es funktioniert. Ich habe das ganze nun auch auf einen Arduino MEGA angewendet und auch hier klappt es.


Ich hätte allerdings noch eine weitere Frage. Kennt sich jemand von euch mit sogenannten "Shunts" aus? Unser Prof. meinte nun, dass wir so etwas noch zur Batterieüberwachung integrieren sollen. Es wird wohl verwendet zur Strommessung und zwischen die Verbraucher, die an der Batterie hängen und den Minuspol geschaltet. Er möchte damit wohl realisieren, dass man erkennen kann, wie viele Verbraucher noch angeschaltet werden können bzw. wann man sie abschalten muss.

Genauer Wortlaut:

Wenn Sie (auch) den Strom messen, könnte man z.B. sagen, dass man für die Programmierung die Kapazität der Batterie vorgibt (z.B. 100Ah) und den Arduino davon einfach subtrahieren lässt, wieviel Ah aus der Batterie entnommen wurde (Strom mal Zeit), beispielsweise addieren lässt, wieviel Ah der Batterie zugeführt wurde. Dann liegt es beim Betreiber darauf zu achten, dass man bei 70Ah nicht mehr weiter entlädt.

Im Internet habe ich leider kein gescheites Arduino-Projekt zur Orientierung gefunden. Auch bezüglich den Bauteilen (Shunt + ADC) bin ich mir sehr unsicher, in welcher Ausführung genau wir das bräuchten. Kennt sich jemand von euch damit aus und kann mir sagen, wie man am besten vorgeht? (Oder soll ich besser einen zweiten Foreneintrag dazu veröffentlichen?)

Dankeschön und viele Grüße

Maja

In welchen Größenordnungen bewegt sich der Strom (0 ... Maximum)

Gruß Tommy

Der Mega hat einen eingebauten Verstärker (Stichwort: Gain), das könnte dir bei der Messung über einen Shunt entgegenkommen.

Nicht Vergessen den Shunt auf der Minus Seite vom Akku klemmen sonst brennt Diene MCU ab. Du musst ja den Minus vom Akku mit GND verbinden. 100A Shunt gibt bei 100A Belastung normaler weise 75mV raus, es gibt aber welsche mit anderer Ausgang Spannung.
Wichtig bei Messung den nicht anfassen sonst Finger Aua = Verbrennung Gefahr :wink:

Die Hinweise von @fony Fony möchte ich etwas korrigieren.

  1. Shunt nie in die Minus-Seite
  2. Selbst bei Missachtung von 1. brennt da nix ab (wenn man den Rest nicht völlig verquer bastelt)
  3. Ein Shunt gibt nichts raus, es fällt an ihm eine Spannung ab. In welcher Höhe, hängt vom Widerstandswert ab, es gibt keine "normalerweise"
  4. Wenn man sich am Shunt die Finger verbrennt, ist er
    a) falsch berechnet
    b) überlastet (durchaus Folge von a)

Dan hast ein 100A mit 80 A belasteten Shunt war ganz heiß 100A / 75mV.
Zeichne mall Bitte wie Du den am Mega direkt anklemmst.

Reicht auch sagen?
GND des Arduino an eine Seite des Shunt, und ein Ax Pin auf die andere.

Wen der Shunt an Plus Seite vom Akku hängt, so wie @Klaus_ww das vorhat?
Der TO hat schon Minus vom Akku mit GND verbunden

Nöö!
Unter den Umständen braucht man einen isolierenden ADC.

Genau um das ginge mir. Und ja es gibt andere Möglichkeiten wen der soll unbedingt an Plusseite hängen.

Ein Shund ist ein niederohmiger Widerstand, der in den Stromkreis geschalten wird. Der Spannungsabfall ist proportional zum Strom der durchfließt. Shunts für höhere Ströme haben 4 Klemmen. 2 große für den zu messenden Strom und 2 kleinere für das Abgreifen des Spannungsabfalls.

Es gibt spezielle Bausteine für diesen Zweck zB den INA219
Der mißt Spannung und Strom und hat den ADC integriert.
Er kann die Verstärkung für die Strommessung in 4 schritten einstellen: 40, 80, 160 und 320mV
Du brauchst also einen Shund bei dem bei Nennstrom eine dieser Spannungen abfällt.

Grüße Uwe

Egal wie, beides geht in dem Fall nicht so einfach. Es sollen Lade- und Entladeströme gemessen werden.
Mit einem INA21X (X = 0 - 5 je nach Verstärkung) sollte es möglich sein. Der macht die Umsetzung der Shuntspannung im + Zweig der Batterie auf eine brauchbare Spannung zur Messung. Wichtig ist die Referenzspannung nicht auf GND, da sonst Ströme nur in eine Richtung gemessen werden können.
INA215 Datasheet

Gruß, Jürgen

Was gefällt Die an meinem INA219 nicht? Der ist zum Unterschied zum INA210 bis 215 nicht nur ein Verstärker sondern auch gleichzeitige ein A/D Wandler.

Grüße Uwe

Sorry, das habe ich komplett übersehen. Der ist echt interessant.

Habe gerade mal kurz das Datenblatt überflogen und zuerst gedacht der kann keine Minusströme, weil ein Offset Eingang fehlt. Aber dann habe ich die Seite 22 entdeckt...
Jetzt stinkt es mir das meine Platine bereits fertig geätzt auf dem Tisch liegt. Da ist der INA215 drauf und danach kommt ein I2C A/D-Wandler...
Hmmm... Schreit dann doch nach einer neuen Version der Platine. Habe die Schutzbeschaltung der LiFePo Zelle versemmelt. Die MosFETs schalten mit der geringen Spannung nicht durch.

Danke Uwe!

Gruß, Jürgen

Es gibt Mosfet-Treiber. Die werden nicht wegen der Spannung sondern um einen größeren Ladestrom der Gate-Kondensators zu haben und somit den MOSFET schneller zu schalten.

Grüße Uwe