Kleine Projekte: Akku-Tester für LiPo-Einzelzellen
![Menübild](../akkutester/akkutester-m.jpg)
Letzte Bearbeitung: 02.01.2015
![Symbol](../../bilder/karo-bl.gif)
Schaltplan für den Akku-Tester | |
Stückliste für den Akku-Tester mit Empfehlungen zur Bauteilbestellung | |
Software für den Akku-Tester mit komplettem Quelltext in C vom 01.11.2014 | akkutester-attiny13a-v100.zip |
![Symbol](../../bilder/karo-bl.gif)
Beschreibung | Allgemeine Informationen über den Akku-Tester |
Schaltung | Die Schaltung des Akku-Testers |
Hardware | Bilder und Hinweise zum Aufbau des Akku-Testers |
Software | Beschreibung der Software des Akku-Testers |
Inbetriebnahme | Inbetriebnahme des Akku-Testers |
Auf dem Modellflugplatz ist es immer mal erforderlich, Akkus auf ihren Ladezustand zu überprüfen. Für große Modelle, die mit 2 oder mehr in Reihe geschalteten LiPo-Zellen (2S-8S) betrieben werden, gibt es solche Akkutester für wenig Geld fertig zu kaufen. Viele Kleinmodelle, wie z.B. der Blade mSR X oder Blade Nano CP X fliegen mit einer einzigen LiPo-Zelle und für diese gibt es leider keine einfache Prüfmöglichkeit. Dieses kleine Modul wurde speziell zum Testen von LiPo-Einzelzellen entwickelt und zeigt durch Leuchten oder Blinken von 2 LEDs insgesamt 3 Ladezustände an. Das ist auf dem Flugplatz vollkommen ausreichend, um einen vollen von einem leeren Akku zu unterscheiden. Die folgende Tabelle zeigt die möglichen Zustände an:
Akkuspannung über 4,0V | grüne LED leuchtet |
Akkuspannung im Bereich 3,8V - 4,0V | rote LED leuchtet |
Akkuspannung unter 3,8V | rote LED blinkt |
Bei dieser Schaltung wurde der ISP-Anschluss nur angedeutet. Im fertigen Tester habe ich ihn weggelassen, da er das ansonsten handliche Gerät unnötig vergrößern würde. Außerdem ist nicht zu erwarten,
dass es für den Tester ein Update geben wird :-)
Um die Software in den Mikrocontroller zu schreiben und die Fuse-Bits zu setzen gibt es hier 2 Möglichkeiten:
- ISP-Steckverbinder zur Inbetriebnahme provisorisch anlöten, Controller programmieren und wieder ablöten
- Mikrocontroller in einem Programmiergerät oder in einer anderen Schaltung programmieren
Alle für den Tester notwendigen Bauteile sind in dieser Stückliste zu finden.
Dieses Bild zeigt den fertig aufgebauten Akku-Tester. Alle Teile finden auf einer winzigen Lochraster-Platine mit einer Größe von 17,5mm x 10mm Platz. Auf der Oberseite der Platine ist der
Mikrocontroller IC1, welcher ohne Fassung direkt eingelötet wurde, der Kondensator C1 und die beiden LEDs D1 (unten) und D2 (oben) zu sehen. Über den Steckverbinder auf der linken Seite wird der zu
testende Akku angeschlossen. Leider sind die Steckverbinder für den Akku recht schwer einzeln zu bekommen. Hier empfiehlt es sich, bei einem Modellbauhändler ein passendes Akku-Ladekabel zu kaufen und
den Akku-Stecker davon zu verwenden.
![Akku-Tester Bild 2](akkutester-b2.jpg)
Beim Aufbau des Testers sollten zunächst die Bauteile IC1, C1, D1, D2 sowie K1 aufgelötet werden. Anschließend werden die 3 Widerstände direkt auf jeweils 2 Lötaugen wie im Bild gelötet und danach
alle Verbindungen hergestellt. Nebeneinander liegende Lötaugen können direkt mit reichlich Zinn verbunden werden, für die längeren Verbindungen eignet sich Kupferlackdraht (0,35mm).
![Akku-Tester Bild 3](akkutester-b3.jpg)
Das nebenstehende Bild zeigt den fertigen Tester im Einsatz - alles im grünen Bereich.
Die Software des Akku-Testers wurde in C geschrieben und ist ebenso wie die Schaltung sehr übersichtlich. Zunächst werden einige Variablen deklariert, z.B. die Schwellwerte für die Auswertung der Akku-Spannung, außerdem ein Faktor für den Spannungsteiler R1/R2. Diese Werte lassen sich ändern, so dass man den Tester auch für andere Spannungsbereiche nutzen kann, sofern die maximale Betriebsspannung des Mikrocontrollers von 5,5V nicht überschritten wird. Die untere Spannungsgrenze liegt übrigens bei 1,8V - hier greift die Brown-out-Erkennung des Mikrocontrollers und bringt diesen in den Reset-Zustand.
Der Hauptprogrammteil beginnt mit der Initialisierung der I/O-Ports und des Analog-Digital-Konverters (ADC). Letzterer wird so konfiguriert, dass er ständig die Spannung am Eingang PB3 misst und dabei die interne Referenzspannung von 1,1V verwendet. In der folgenden Programmschleife wird zunächst 200ms gewartet, dann das High-Byte des ADC gelesen und daraus der Wert der anliegenden Spannung ermittelt. Anschließend werden beide LEDs ausgeschaltet (High-Pegel an PB0 und PB1), der Spannungswert mit den Schwellwerten verglichen und abhängig davon der Ausgang PB0 oder PB1 auf Low-Pegel gesetzt, um die entsprechende LED einzuschalten. Falls die Spannung niedriger ist als der untere Schwellwert, dann erfolgt eine Invertierung des zuvor gesicherten letzten Status der roten LED. Das führt bei einer Schleifen-Zykluszeit von 200ms zu einem Blinken mit 2,5Hz.
Die aktuelle Software v1.00 vom 01.11.2014 für den ATtiny13A des Akku-Testers enthält den kommentierten Quelltext in C, das fertige Hex-File, das Make-File und einige andere Dateien. Bei der Programmierung sind unbedingt die Fuse-Bits zu beachten. Diese müssen folgendermaßen gesetzt werden:
![Fuse-Bits](akkutester-fusebits.png)
HIGH = 0xFD
LOW = 0x71
volt = ADCH * 1.1 * vfactor / 256;
Hier kann man den Faktor 1.1 in kleinen Schritten nach oben oder unten korrigieren (z.B. 1.11 oder 1.09) und sich so dem optimalen Wert nähern. Ich habe allerdings mehrere dieser Akku-Tester aufgebaut und grundsätzlich auf eine Korrektur verzichtet. Die Abweichung ist so gering, dass sie in der Praxis vernachlässigt werden kann.