Zellspannung messen mit Arduino

Wowbagger

Erfahrener Benutzer
#1
Ich möchte mit einem Arduino die einzelnen Zellspannungen eines Lipos messen. Dazu kann ich auf den Balanceranschluss zugreifen.

Meine erste Idee ist es, den Masseanschluss des Akkus mit der Arduinomasse und die anderen Anschlüsse jeweils mit einem Analog-In des Arduino zu verbinden. Da eine Zellspannung max. 4,2V ist und der Analogeingang max. 5V verträgt, kann ich die erste Zelle direkt und alle anderen Zellen über einen Spannungsteiler anschließen.

Über den ersten Eingang messe ich so direkt die erste Zellspannung.
Über den zweiten Eingang messe ich so die Zellspannung der ersten und zweiten Zelle.
Über den dritten Eingang messe ich so die Zellspannung der ersten, zweiten und dritten Zelle.

OK, das funktioniert, aber ich finde es nicht ganz glücklich gelöst, denn:
- durch die Spannungsteiler wird die Messgenauigkeit jeder höheren Zelle immer größer.
- da zur Berechnung einer Zellenspannung alle Messungen der vorhergehenden Zelle eingehen, summieren sich Meßfehler auf.

Das eigentliche Problem ist ja, dass man nicht einfach die erste Zelle (Spannungsdifferenz zwischen erstem und zweitem Kabel) und gleichzeitig die zweite Zelle (Spannungsdifferenz zwischen zweitem und drittem Kabel) messen kann, da der Arduino immer nur Spannungen bezogen auf das gleiche Niveau (Masse=erstes Kabel) misst.

Gibt es irgendeinen elektronischen Trick, wie man das besser machen kann?
 

Wowbagger

Erfahrener Benutzer
#3
Danke für das Stichwort. Damit habe ich was brauchbares gefunden:
http://www.elektronik-kompendium.de/sites/slt/0210153.htm

Wenn ich dabei R1-R4 mit je 1Megaohm belege, dann habe ich am Ausgang direkt die Differenzspannung der beiden Eingänge und der Akku wird quasi gar nicht belastet.

Sieht gut aus. Jetzt muss ich mal schauen, ob es verschiedene OPs gibt und welcher geeignet wäre. Ich glaube, ich hab noch einen im Vorrat, den ich als Schutz eines RSSI-Ausgangs verplant hatte.
 
#4
Ich hab grade keinen Taschenrechner da, aber ich rechnes mal nach sobald ich daheim bin. 1M-ohm kommt mir aber etwas sehr hoch vor...ich würde da eher in den 2-3 stelligen Kiloohm bereich gehen. Aber an sich nicht falsch.
Du solltest noch den Begriff "Rail to rail" googeln. Ansonsten wird eventuell nicht dein ganzer Messbereich abgedeckt.

Ich werf dir übrigens nur deswegen stichwörter zu, dass du was dabei lernst ;) . Also nicht als böse Absicht betrachten :D
 

Wowbagger

Erfahrener Benutzer
#5
Ja, ist mir schon klar mit den Stichwörtern. :)
Ist auch nicht schlecht, nur bringst Du mich beim Elektronikwissen schnell an die Grenzen. Bei mir endet es ungefähr beim ohmschen Gesetz beim theoretischen Verstehen. ;)

Wenn ich Rail to Rail richtig verstanden habe, dann geht es darum, ob Spannungen bis an die Versorgungsspannung (ist bei mir 5V) heranreichen. Wobei es wohl noch getrennt Angaben geben kann, ob sich das auf Eingänge oder Ausgänge bezieht.

Tja, idealerweise bei einem 3S-Akku hätte ich Versorgungsspannung 5V, max. 12,6V an den Eingängen und max. 4,2V an den Ausgängen. Den Chip, den ich da habe ist übrigens ein LM 358.

Wieso ist 1 Megaohm zu viel. So ganz dumm betrachtet ist der fließende Strom geringer je größer der Widerstand ist. Der Widerstand darf nur nicht so groß werden, dass er im Bereich des Eingangswiderstandes des OPs liegt, weil sonst ein nicht unwesentlicher Teil des Stromes in den OP geht und damit diese Spannungsteiler beeinflusst. Komisch ausgedrückt, aber ich vermute, Du weißt, was ich meine.
 

Ori0n

Back again
#6
Rail-to-Rail-OPVs oder die zukunftsorierntierte Variante: auf Microchip-Controller umstellen, die können mit verschiedensten Referenzspannungen (fixe interne (heist Fixed Voltage Reference und ist auf eine hunderdstel Volt genau)/externe/selbst eingestellte interne (über DAC und intern auf Referenzpin))

Die Microchip-Controller kann man mit reinem C programmieren (nicht viel Unterschied zu Arduino) oder mit Assembler (= Maschinensprache, ziemlich kompliziert weil jedes Bit einzeln programmiert werden muss, aber zum debuggen ein Traum).
Wäre nicht viel Umstellung, vor allem es steht wirklich ALLES (Befehle, mit Beispielen usw.) in den Datenblättern. Microchip kann irre viel, ist aber nicht ganz so bequem wie Arduino (wenns geht benutz ich auch Arduino)
 

Wowbagger

Erfahrener Benutzer
#7
OK, ich habe das Datenblatt von dem LM 358 versucht ansatzweise zu verstehen.

Anscheinend kann ich den nicht benutzen, da die maximale Ausgangsspannung 1,2V unter der Versorgungsspannung liegt, d.h. bei 5V wäre das mit 3,8V für eine volle Lipo-Zelle zu wenig. Und auch die Eingangsspannungen dürfen 5V nicht überschreiten.

Tja, Microchip selber in C programmieren ist mir zu kompliziert und habe ich noch nie gemacht.

Hat jemand einen Tipp für einen Beyound-Rail-OP? Ich habe zwar bei Reichelt gestöbert, aber so richtig schlau werde ich aus den Datasheets nicht. Dafür steht da zu viel, was ich nicht verstehe.
 
FPV1

Banggood

Oben Unten