Neben dem Entlade- und Ladeaufbau, denke ich auf einem einfachen Aufbau für die Messung der einzelnen Zellspannungen mit dem Arduino herum.
Der Arduino Duemilanove hat nur eine begrenzte Anzahl von Analogen Eingängen zur Spannungsmessung (6), was für unsere 45 Zellen nicht ausreicht.
Somit habe ich ein paar Multiplexer (CD4051) bestellt, die das Problem lösen sollen.
Über drei digitale Ausgänge des Arduino schalte ich bis zu acht Multiplexer und kann so an nur einem einzelnen analogen Eingang des Arduino bis zu 64 analoge Signale messen.
Dabei wird nur ein Wert zur Zeit gemessen, aber da der 4051 sehr schnell schaltet, wird dies keine größeren Verzögerungen mit sich bringen.
Für unsere Unterspannungsmessungen ausreichend, denke ich.
Mit Franz haben wir schon einmal diskutiert, was wichtig für die Überwachung ist.
Nicht die ständige Anzeige aller Zellen, sondern die Zelle mit der aktuell niedrigsten Spannung muss betrachtet werden und ggf. muss eine Überwachung eingreifen, sollte sich der Ladezustand dem kritischen Bereich nähern.
Die Kür ist neben der Anzeige, eine aktive Drosselung des "Gaspedals", durch die Zuschaltung eines Widerstands zum Fahrpoti.
Im Versuch mit einer einzelnen Zelle ist alles kein Problem, aber im Fahrzeug sind die Zellen in Reihe geschaltet und somit können diese nicht auf einen Massepunkt gebrahct werden.
Offene Frage: Wie bekomme ich eine übersichtliche galvanische Trennung der Eingänge zueinander hin?
Mal sehen, was Franz darüber in seinem Blog stehen hat ... ;)
Das sieht ja schon gut aus........
AntwortenLöschenMeine Versuche gehen derzeit in Richtung
"daisychain" also eine Reihenschaltung
ohne galv.Trennung zwischen den Zellen
.....und das mit der "Daisychain"
macht einen guten Eindruck fürs Erste.
Das klappt sowohl mit dem seriellen
Weiterleiten der Daten als auch
mit einer Kette aus Transistoren.
Ich will eine Kette aus ATtiny24V
aufbauen und die seriellen Daten
per Software-UART und je einem
open-Collektor-Transistor von
unten nach oben durchreichen.
unten kommt ein Startbefehl rein,
und der String wird von Station zu
Station um ein Byte länger.
So geht im Idealfall nur ein Draht
von Messmodul zu Messmodul und zwei
Isolatoren (optokoppler oder ADUM 5241
oder dergleichen) können reichen
Den Spannungssprung von Zelle zu Zelle
kann man ohne "galv.Trennung" überwinden.
Der zeitliche Abstand zwischen den Messungen ist das größte Problem, aber vielleicht sollte man darüber nachdenken, einfach nur den Status
ok oder nicht ok abzufragen.
ebenso erst mal messen, und dann gemütlich auslesen. Auf eine Sekunde hin oder her kommts
beim Übertragen nicht an, aber die Messung
muss möglichst gleichzeitig bei allen Zellen
erfolgen sonst verfälscht jede Stromschwankung das Ergebnis.So bräuchte man halt zwei Befehle,
einen nur zum Einlesen und einen zum Abholen der Messwerte
Die "galv.Trennung" ist das große Problem,
aber ein Optokoppler zu jeder Zelle ist
zwar möglich, aber nicht die ideale Lösung.
Ich kann momentan einfach zu wenig Zeit
abzweigen, da endlich weiterzumachen.
In der Franzbox ist die ganze Auswertung
ja schon drin, das lässt sich problemlos
anpassen. Da sende ich derzeit nur ein Byte
mit der Zellennummer und erwarte dann als
Antwort den Messwert als ein Byte.
(das ist genau genug, meine ich!)
Die Platine ist mittlerweile neu aufgelöst,
aber noch nicht in der Fertigung, ich hätte
da sehr gerne noch einen Max232 draufgepackt,
aber es ist eng geworden......
Mit dem Multiplexer wollte ich die Werte durchlaufen. Der schaltet mit 16ns, was bei 45 Zellen nicht einmal ein Millisekunde wäre.
AntwortenLöschenUnd als ich bei Dir von den AdUM laß, dachte ich, das könnte klappen ...
Der ADUM kann nur digitale Signale
AntwortenLöschenweiterleiten. Die Dinger haben gleich
einen DC-DC-Wandler drin, aber da kommen
ca 5,5V hinten raus, das ist ein
unpraktischer Wert.... zu niedrig um
5,0V draus zu machen, und der Wirkungsgrad
ist schlecht.(wird warm)
ein oder zwei sind kein Problem, aber
50 oder so das ist nichts..........
ich werde wohl zehnergruppen per Daisychain
als Versuch testen....mal sehen......
Habe mir jetzt den von dir ausgesuchten Multiplexer nicht genauer angesehen. Bei gemeinsamer Masse könntest du das aber auch mit Spannungsteilern lösen. Ob das dann aber übersichtlich wird?
AntwortenLöschenHast du dir schon mal den LTC6802-2 angesehen?
Der scheint mir für deinen Zweck passender zu sein.
Methods vom Endless-Sphere-Forum setzt den erfolgreich ein. Vlt ist das eine interessante Lektüre.
Beim Drüberlesen ist mir aufgefallen, dass das mit den Spannungsteilern etwas kurz geschossen war.
AntwortenLöschenWas ich eigentlich schreiben wollte:
Du könntest die Spannung jeder Batterie zur Masse messen. Dazu müsstest du mit Spannungsteilern die Spannungen in den 5V-Bereich bringen. Da du dann die Spannung von n Batterien misst, subtrahierst du in deinem Programm einfach jeweils die n-1'te Spannung. So erhälst du die Spannung jeder Batterie. Die Auflösung wird dann natürlich nicht besonders toll sein.
Mit den LTC6802 ist das deutlich eleganter, 4 davon und du bist fertig.
@ Guy:
AntwortenLöschendas geht mit vier Zellen ganz gut,aber nicht
mit 45 Zellen........
(ein Atmega48 je vier Zellen hab ich schon
erfolgreich getestet, da hat man dann sogar
die Balancer per PWM geregelt...und Anbindung
per serieller Schnittstelle) aber die vielen
Spannungsteiler belasten die Zellen ungleich.
Das ist also auch nicht das Wahre.
Auch wenige mA Unterschied wirken auf Dauer!
Der LTC6802 oder 6803 in den verschiedenen
Ausführungen ist schon das Eleganteste, aber
das Ding soll recht empfindlich sein,
und ich persönlich habs noch nicht auf die
Reihe gebracht den korrekt anzusteuern.
Sehr interessant ist übrigens der LTC6801,
der kann zwar nur überwachen und Gut bzw
Schlecht ausgeben, aber der ist gut per Jumper konfigurierbar und braucht keinen Steuerrechner
Hallo,
AntwortenLöschenmelde Dich doch bitte mal bei mir: christianamendt@gmx.de
Ich hab ein System entwickelt/gebaut, mit dem kannst Du bis zu 108Zellen überwachen und aufzeichnen. Gut ablesbares 2,1TFT Farb-Display, modular erweiterbar, dezentraler Aufbau. Kontaktlose Strommessung bis 600Ampere, 2x Kontakttemperatur, 1x Infrarottemperatur und, wenn es ein muss mit GPS.
Gruß,
Christian
@Franz:
AntwortenLöschenMit der unterschiedlichen Belastung hast du natürlich recht, das hatte ich nicht bedacht.
Darf ich fragen woran du beim LTC6802 gescheitert bist?
Die Diskussion im Endless-Sphere Forum kennst du dann vermutlich auch. Ich hatte den eigentlich für ein zukünftiges Projekt fest eingeplant, in Verbindung mit einem Arduino. Wenn das aber nun nicht ganz so einfach funktioniert wie Methods das beschrieben hat, muss ich mich wohl noch weiter umschauen. Ein Tiny je Parallelblock ist mir jedenfalls zu aufwändig.
@ Guy:
AntwortenLöschenIch bin nicht am LTC6802 gescheitert,
sondern ich hab mich einfach noch nicht
intensiv genug damit beschäftigt.
Die ganze Auswertung war mir bisher
etwas zu kompliziert, bzw ich habe noch zu
wenig mit SPI gearbeitet.
Hinzu kamen einige "Schauergeschichten"
über die Empfindlichkeit des 6802.
Durchbrennen, "einfrieren von Messwerten"
und so weiter........
(die aber wohl nich wirklich begründet
sind, bzw auf Handhabungsfehler rauslaufen)
Da arbeitet man halt mal mit höheren Spannungen und muss entsprechend aufpassen!
Aber in der Summe seiner Eigenschaften
scheint der LTC6802 bzw sein Nachfolger
LTC6803 in den verschiedenen Varianten
momentan der geeignetste Chip für so ein Projekt zu sein.Insbesondere die
Möglichkeit, externe Transistoren anzuschliessen und die Temperaturmessung
machen den hochinteressant.
Das Protokoll ist auf den ersten Blick recht unübersichtlich, aber wenn man sich da mal richtig reindenkt wirds schon logisch.
Auch der Preis relativiert sich, viele
kleine Schaltungen läppern sich auch
schnell mal zusammen........
Versuch mal, so einen anzusprechen, der Rest
ist dann nicht mehr kompliziert, und vergiss beim Design halt nicht, dass der oberste
Chip auf ca 150V hängt........
Das klappt dann schon.Umschauen nach alternativen ist immer gut, aber alles was ich bisher gefunden habe ist noch viel komplizierter oder hat andere Nachteile!
Ich hab halt rein Interessenhalber auch
mal alle (???) anderen Möglichkeiten durchgespielt(auch als Programmierübung etc......)
bin aber noch nicht zu einem wirklich guten anderen Ergebnis gekommen.
Das ist letztlich der Grund, warum es für die Franzbox noch kein BMS gibt.
In der neuen Version sind jedenfalls schon mal die SPI-Leitungen reserviert, und das wollte ich demnächst noch mal intensiv in Angriff nehmen. Dass Michael nun auch in dieser Richtung
nach Lösungen sucht kam etwas überraschend.
mfG
Franz
Danke für den Tipp, den Nachfolger hatte ich noch gar nicht auf dem Schirm.
AntwortenLöschenDas einzige, was mich noch vom "Spielen" abhält, ist das Gehäuse, SSOP ist mehr als unhandlich. Und das offizielle Demo Board ist zurzeit nicht ganz in meinem Studentenspielbudget, in ein paar Monaten vlt.
Das unhandlichste was ich bisher hatte
AntwortenLöschenwar der S-8209B von Seiko.
Da ist ein Komplettes BMS mit überspannung
unterspannung und Balancerausgang
auf 2 x 2 mm mit acht "Pins" im 0,5mm
Raster komprimiert!!!
Sehr interessant! aber halt keine
Messwertabfrage.
Das Problem bei diesem wohl für
Handyakkus oder MP3-Player gedachten IC
ist, dass man da mindestens eine Rolle
abnehmen muss (5000) und dass man
die Parameter zwar nach Wunsch bestellen
kann, aber die sind dann halt so!
Ich habe ein paar Muster bekommen, und
es sogar geschafft ein IC auf den
Leiterbahnen eines alten RAM-Bausteins zu
kontaktieren, und das Ding funktioniert
auch prima! (Da stammt die Daisychain
Idee her, die schalten das auch einfach
der Reihe nach durch...gute Idee!)
Die gäbs auch in etwas größer mit
echten Pins. Sollte man zumindest
kennen! Z.B. für Modellbau etc......
Ist nur kaum zu bekommen!
(das war das erste Projekt in meinem Blog)
Anbei noch das nicht ganz vollständige Handbuch:
AntwortenLöschenhttp://epo-bike.de/Handbuch.pdf
christian@epo-bike.de
Gruß,
Christian