Akkuspannungsmessgerät 6s mit LCD-Anzeige

    Wir benutzen Cookies, um die Nutzerfreundlichkeit der Webseite zu verbessern. Durch Deinen Besuch stimmst Du dem zu. Weitere Informationen

      Akkuspannungsmessgerät 6s mit LCD-Anzeige

      Hab es geschafft, dass ich mein Fachreferatsthema mit dem guten alten Modellbau verbinden konnte!! ;)
      Das Gerät wird für meine 6-Zeller LiFePo's (A123) verwendet damit ich auf dem LC-Display alle Zellenspannungen gleichzeitig sehen kann.
      Dadurch kann ich dann sofort erkennen, um wieviel Volt die Zellen voneinander abweichen, ob nach dem Fahren, vor dem Fahren, beim Balancen und möglicherweise auch wärend des Ladevorgangs.

      Vom großen C bestellte Komponenten:

      1 x C-Control I Unit M 2.0 Best.-Nr. 198822
      1 x I²C-Bus LC-Display (2x16 mit Beleuchtung) Best.-Nr. 198330
      1 x Schnittstellen/Programmier Modul 2.0 USB Best.-Nr. 198318
      2 x CC I SCHNITTSTELLENKABEL 2.0 Best.-Nr. 198876

      Zusätzlich kommt noch hinzu:

      Gehäuse
      Elektronische Bauelemente (IC's, Widerstände usw.)
      Platine
      7-poliger LiPo-Stecker für 6s
      Schalter/Taster
      Schrauben, Muttern und was man halt so alles braucht :D

      Was geplant ist:

      Beim einschalten soll zuerst eine kleine Begrüßung erscheinen.
      Die daraufhin folgende Spannungsanzeige sollte im Endeffekt wie folgt aussehen:

      3,30 3,30 3,30
      3,30 3,30 3,30

      Womögliche kleine Extras:
      - Die Anzeige der Zellenspannungen soll nach einem gewissen Zeitintervall verschwinden und die Gesamtspannung des Akkupacks soll angezeigt werden.
      - Nach einem zweiten Zeitintervall sollen die Zellenspannung erneut vermessen und angezeigt werden
      - Vielleicht schreib ich nach der Begrüßung noch rein "Alle Angaben in Volt" oder sowas ähnliches
      - Durch einen Pausentaster kann die Anzeige angehalten werden damit man in Ruhe ein paar Werte abschreiben kann um eine Tabelle zu erstellen

      Aber das ist alles noch Zukunftsmusik. Erstmal muss das Grundprinzip funktionieren und dann überleg ich mir die anderen Kleinigkeiten.

      Ich werde jedenfalls den Verlauf dieses Projekts weiterhin posten.

      Gruß
      Fesler
      So, ich habe endlich einen wichtigen Schritt im Projekt geschafft.
      Dafür bin ich auch ziemlich dankbar, da ich mich in die Programmierung mit der Programmiersprache Basic erst komplett neu einlesen musste. Dann habe ich die Sache auch noch 2-3 mal falsch angesetzt.

      Mein Problem war auch, dass ich ein Buch inklusive Programmiersoftware von der Vorgängerversion der C-Control hatte. Hat schon lange genug gedauert bis ich erstmal darauf gekommen bin, dass ich ne andere Software brauche. Bei der dritten Software bin ich jetzt geblieben:
      - CCBasic
      - CCBasic++
      - Workbench++

      Jetzt nach ca. 4 Tagen hab ich es endlich geschafft die C-Control so zu programmieren, dass ich einen Spannungsbereich von 0 - 5V messen kann.

      Dieser Bereich liefert mir über einen im Protessor integrierten A/D-Umsetzer Digitalwerte von 0 - 255. Diese werte ich über eine Tabelle aus in Werte von 0 - 500. Somit habe ich dann schonmal den Spannungswert in 1/100V. Über das LCD lasse ich den Spannungswert auf 2 Stellen nach dem Komma anzeigen. Es ergibt sich eine Genauigkeit von 20mV.

      Der jeweilige Spannungswert (0 - 500) wird durch kurze Rechenoperationen in eine Vorkomma- und zwei Nachkommastellen aufgeteilt. Diese werden dann einzeln an das Display übertragen.

      Das LCD wird über einen IIC-Bus (Inter Integrated Circuit) angesteuert. Vorallem mit dem IIC hatte ich zuerst meine Probleme, da ich die Ansteuerroutinen selbst programmieren wollte und es einfach nicht geklappt hat. Außerdem waren in der Betriebsanleitung und im Datenblatt zum Display zu wenig Infos zur Ansteuerung.
      Zum Schluss hab ich es dann doch gut sein lassen da beim Softwarepacket auch solche fertigen Routinen dabei waren. Da ich eh unter Zeitdruck stehe kam mir das gerade recht...

      Jetzt muss ich nur noch diese Erfassung, Auswertung und Ausgabe des Spannungswertes 6 mal nacheinander machen und schon bin ich mit der Programmierung fertig.

      Es traten natürlich haufenweise diverse Probleme auf und soviel könnte ich zwar, will ich aber gar nicht hier reinschreiben.

      Von daher lass ich es jetzt mal gut sein und wenn ich die Hardware-Entwicklung gemacht habe und man mal bisschen mehr sieht, schieße ich auch noch ein paar Picks.



      Ablauf beim Einschalten (nur das Display):

      1. Begrüßung ("_" steht für Leerzeichen):

      HABADERE_MIT_DER
      ZICK-ZACK-SCHERE

      2. Angabe der Einheit:

      __ALLE_ANGABEN__
      ______in_V______

      3. Displayeinteilung für die Spannungen:

      _Z1____Z2____Z3_
      _Z4____Z5____Z6_

      4. Zweimal Blinken als Zeichen fürs Auswerten (schaut einfach cooler aus...Very Happy):

      ----------------
      ----------------

      5. Anzeigen der Zellenspannungen:

      3.30____________
      ________________

      Weiter bin ich noch nicht. Wie gesagt, ich muss die Auswertung jetzt nur noch 6 mal machen...
      Ach ja hatte ich vergessen:

      Die Messung läuft in einer Schleife. Diese beginnt jedesmal bei (4) damit vor jeder erneuten Messung das "Minus-Blinken" nochmal kommt.


      War letzte Nacht noch lange wach (bis 5 Uhr) da ich eh noch nicht vom Nachtleben (Silvester) auf Tagesleben umgestiegen bin...;)
      Hab die Software soweit fertig, werd vielleicht noch die eine oder andere Feinheit erweitern z.B. einen Pause-Taster bei dem die Anzeige einfach stehen bleibt damit man die Werte gut abschreiben kann.
      Hab mir auch schon überlegt, die Messwerte vielleicht auch einmal in ein paar Zeitintervallen zu erfassen (z.B. während eines Ladevorganges) und an den PC zu senden. Dann kann ich mir ne schöne Ladekurve aller Einzelzellen machen und vergleichen ob sie sich schön gleichmäßig aufladen...was wahrscheinlich nicht der Fall ist wie ich befürchte...:D
      Ich glaube ich schreiben welche nicht rein, weil man nicht weis was man hinschreiben soll. Wiel man davon nix versteht.


      Ist manchmal auch besser denn je mehr Posts reingeschrieben werden, desto mehr sinnloses Zeug steht meistens in nem Thread und alles wird unübersichtlich...;)
      Wenn weniger reingeschrieben wird kann man die Sache besser verfolgen und nachvollziehen, vor allem jetzt hier am Anfang bis zur Fertigstellung...So und das war jetzt auch wieder genug :offtopic: von mir...

      So wie ich es gelesen habe und verstanden habe :respekt:

      :thx: ;)

      Wenns wieder Neuigkeiten gibt berichte ich wieder und stelle gegebenfalls Bilder rein.
      Bin gerade noch am Entwerfen der Hardware. Muss nur noch mein Platinenlayout vervollständigen...dann kann ich nochmal einkaufen gehen und loslegen!!:D
      So, die Software steht soweit. Das einzige was ich mir noch vorstellen könnte wäre, dass ich die Display-Beleuchtung über nen Taster ein- und ausschalten könnte. Aber beim ersten Versuch das zu bewältigen hab ich mich bei den I²C-Routinen ein bisschen verwurschtelt und dann hab ich's wieder sein lassen...

      Änderungen an der Software:
      Hab die Begrüßung unter 1. auf "Habadere" begrenzt, weil die Zick-Zack-Schere doch ein bisschen zu viel des Guten ist!! ;)

      Dann hab ich nochmal alle Zeitintervalle überarbeitet, die die Anzeigezeit jedes Schrittes bestimmen bis auf 4. (Minusblinken):

      Hab anstatt eines einfachen Pausebefehls überall Schleifen verwendet, die der Prozessor ein paar tausend mal durchläuft. Während dieser Schleifen wird ein Taster ständig auf seinen Zustand abgefragt (on/off). Wenn ich diesen Taster kurz betätige wird die Anzeige eingefroren und eine LED wird eingeschaltet, bis der Taster erneut betätigt und die LED somit wieder ausgeschaltet wird. Das Programm läuft dann sofort wieder normal weiter.
      Wenn man auf dem Taster draufbleibt, bleibt die Anzeige für 3s stehen und das Programm geht anschließend wieder seinen normalen Weg weiter.

      Platinenlayout ist auch schon so gut wie fertig entworfen, jetzt brauch ich nur noch die Bauteile und dann könnte ich die Lötarbeiten beginnen. Ich weiß aber noch nicht wann ich das schaffe weil ich schulisch unter Zeitdruck stehe (Schulaufgaben für die ich noch nichts gelernt habe!!)
      Ich bin gerade dabei meine Einkaufsliste zu schreiben und fahr anschließend zum Bauteile beschaffen. Werde vielleicht nächste/übernächste Woche mit dem Löten fertig.
      Auf der mechanischen Seite (Gehäuse) hab ich noch nichts gemacht da ich jetzt dann erst mal ein passendes Gehäuse finden muss. Anschließend werde ich nen Plan für Bohrungen usw. erstellen und alles machen. Vielleicht geb ich es auch meinem Bruder mit in die Arbeit, er könnte es mit auch fräsen, was optisch auch mehr her macht wenn das Loch für's Display exakt passt...Bin mir da noch nicht sicher, würde es natürlich gerne selber machen, aber mir fehlt es hier zu Hause auch an dem richtigen Werkzeug. Hab keine gescheiten Feilen, Bohrer, zudem fehlt ne Tischbohrmaschine (Akkuschrauber möchte ich ungern benutzen), Höhenanreißer usw.

      Ich lass wieder was von mir hören wenn sich was getan hat.
      Hab gestern bis in die Nacht mein Platinenlayout vervollständigt. Ich denke und hoffe auch dass ich nichts vergessen habe weil es sonst eng werden würde!!:D

      Diejenigen, die nichts mit Elektrotechnik am Hut haben, werden wahrscheinlich damit nichts anfangen können. Ist auch recht viel auf einen Schlag, aber so funktioniert das Ganze (ganz grob erklärt):

      Diese kleinen, runden, silbernen Teile sind Lötstifte. Auf diese Stecke ich ein Gegenstück (eine art Buchse) mit Lötfahne. Daran löte ich ne jeweils ne Leitung und diese wird dann an den jeweiligen Balancerstecker-Anschluss gelötet. So verbinde ich die Zellen mit der Platine. Die Spannungen gehen weiter an 5 LM741 (IC's in der Mitte mit 8 Beinchen). Das sind Operationsverstärker (= OP). Mit den gelben Spindeltrimmern links oben (= sehr genau einstellbare Widerstände), die eigentlich blau sind, kann ich den Verstärkungsfaktor verstellen.
      Zelle1 geht direkt an die Control-Unit (sind diese zwei Leisten rechts unten) mit 3,3V. Zelle2 hat ja 6,6V, deshalb brauch ich den Verstärkungsfaktor 1/2. Zelle3 dann mit 9,9V hat den braucht den Faktor 1/3 usw. weil man an die Control-Unit maximal 5V am A/D-Eingang anlegen darf.
      Da die Ausgangsspannungen der OP's invertier ist, also negativ (jeweils -3,3V) wird diese mit zwei weiteren IC's (LM339 mit 14 Pins rechts oben) nochmals invertiert. Jedes dieser IC's beinhaltet 4 OP's (eigentlich Komparatoren = Vergleicher, aber egal). Mit derselben Beschaltung wie die LM741 haben sie die gleiche Wirkung, nur dass sie alle wegen der gleich großen Widerstände (= 10kOhm) einen Verstärkunsfaktor von 1 haben. Dabei kommt es nicht auf die Größe der Widerstände an, sondern auf das Verhältnis der Größen. Man könnte z.B. auch 1kOhm verwenden. Da muss man halt einen passenden finden. Aber wenn man diese zu klein dimensioniert könnte unter Umständen ein zu großer Strom fließen...

      Die "richtigen" Spannungen gehen dann an die C-Control rechts unten (wiederum durch die zwei Leisten symboliesiert). Rechts daneben ist noch eine Referenzspannungsquelle (= sehr genaue Spannung) die ich wiederum mit dem gelben Spindeltrimmer genau auf 5,000V einstelle (abhängig von der Genauigkeit meines Multimeters). Diese Spannung ist dann der Messbereichsendwert für die C-Control.


      Sontige Features: Zweipoliger Wechselschalter zum Einschalten; Zweipoliger Wechselschalter zum Umschalten von Batterie- auf Netzbetrieb (externes Netzteil mit 18V <=> +/- 9V); Taster (Freeze) um das Bild einzufrieren; blaue 3mm-LED zum Anzeigen des Freeze-Mode; Reset-Taster

      Hier ein paar Bilder von der Platine:











      Vielen Dank für die Blumen...:love:...Es ist natürlich einiges an Arbeit, aber so besonders schlau muss man darüf auch nicht sein, ich hab's ja schließlich auch geschafft!!;)
      Und es ist noch nicht mal sicher ob ich es geschafft habe weil ich immer noch nicht weiß ob es dann auch funktioniert.
      Hab bis jetzt auch noch nicht angefangen zu löten, habe momentan leider keine Zeit.
      Hatte leider keine Zeit bisher zu berichten. Das ganze läuft natürlich schon, obwohl es (wie immer) zuerst nicht wirklich so war...^^
      Das Layout musste wegen eines kleinen dummen Fehlers nochmal umgeändert werden, das heißt ich hab einiges (rechts oben bezogen auf den Layoutplan) nochmal raus- und umlöten müssen, hab aber noch alles auf die Platine gekriegt. Außerdem wurde die Schaltung erweitert (rechts unten bezogen auf den Layoutplan). Es wurde noch ein weiterer Stecker angeschlossen, der noch zusätzlich am Gehäuse fixiert wird, dadurch kann ich dann den PC immer anstecken. Damit dies aber funktioniert, musste ich die Schaltung noch mit einen zusätzlichen Start-Taster versehen. Da der Controller mit dem Durchschalten der Betriebsspannung automatisch das Programm abarbeiten würde, kann ich ihn nicht programmieren, deshalb der Taster.

      Aber genug der Worte, hier ein paar Bilder:













      Messung ohne angestecktem Akku:



      Messung mit Akku (leergefahren, deshalb auch solche Abweichungen):




      Das ist der Ablauf der Anzeige. Diese "--------------"-Zeichen blinken zweimal auf, damit es so aussieht als würde das Gerät etwas tun!!;)
      Mit der Genauigkeit bin ich noch nicht so ganz zufrieden. Hier sind die mit meinem Multimeter gemessenen Werte des Akkus:

      3,084___2,944___2,852
      3,099___3,163___3,091

      Bis zur Zelle4 lass ich mir die Werte noch eingehen, aber bei Zelle5 und 6 bin ich nicht wirklich zufrieden...

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Fesler“ ()

      Also auf die Arbetiszeit habe ich jetzt nicht so wirklich geachtet. Habe mich aber beim Löten auch nicht wirklich beeilt, da ich ja nicht unter Zeitdruck stehe und es mir zu riskant ist, in der Hektik einen Fehler einzubauen. Aber mit Einarbeiten in die neuen Unterlagen, entwickeln der Soft-/Hardware und aufbauen der Hardware, schätze ich mal, dass ich schon eine volle Woche investiert habe. Und das Gehäuse habe ich ja auch noch nicht verarbeitet.

      Kosten waren auch recht hoch, über 150€ schon, aber ich musste natürlich ein paar Teile mehr kaufen weil anfangs eigentlich so gut wie nie das klappt, was man plant und dann braucht man doch wieder andere Bauteile usw.!! ;)
      :goil: :respekt: :respekt:
      Sehr gute Arbeit! Hätte nicht gedacht, dass so viele Komponenten dafür nötig sind ^^
      Aber so ein Ergebnis hätte ich auch nicht erwartet, ich dachte da steht einfach ne Liste der Spannungen und ende, aber so ist's ja sehr cool :thumbup:

      Diese Einheit ist jetzt nur zum messen der Spannungen beim/nach dem Laden? Für eine Onboard Einheit, an der man die Akkuspannung immer nachschauen kann ist das doch etwas groß? Hast du vielleicht mal einen Größenvergleich?

      MfG
      Doggy
      Meine Modelle: Traxxas E-Maxx , HPI Sprint 2 Brushless, HPI Baja 5B SS + Spektrum DX3S 2,4 GHz DSM

      --- Doggys Page -::- RC-Modellbau-Blog ---

      Wer driftet so spät durch Nacht und Wind ... Es ist der Doggy mit seinem Sprint!
      Ja, man kann nur die Spannungen messen und anzeigen lassen. Ich habe aber noch einen zusätzlichen Stecker für den USB-Adapter gebaut, damit ich das Ganze ja noch an den PC anschließen kann ohne das Gehäuse zu öffnen. Dadurch kann ich die Software ändern und die Messwerte auch auf den PC übertragen, um z.B. in Excel eine Tabelle mit Daten zu füttern und ein Diagramm zeichnen zu lassen. Werde ich dann auch mal während eines Ladevorganges machen, dazu muss ich dann nur noch das mit der Zeitachse hinkriegen und dann kann ich mir ne schöne Ladekurve mit 6 Linien, also eine pro Akkuzelle machen. Dann sieht man ob sich die Akkus gleichmäßig aufladen. Beim letzten Bild sieht man ja dass nach dem Entladen die Zellen ziemlich außeinander driften.

      Und ja, das Gerät ist relativ groß, ist ja auch nur ein Prototyp!! ;)
      Abmessungen der Platine [in cm]: L x B = 16 x 10
      Abmessungen vom Gehäuse [in cm]: L x B x H = 18,9 x 11 x 6