Akku Tester

Aus der Mikrocontroller.net Artikelsammlung, mit Beiträgen verschiedener Autoren (siehe Versionsgeschichte)
Wechseln zu: Navigation, Suche

von Philipp Kälin Benutzer:philippk

Einleitung

AkkuTesterFoto.png

Mit diesem Artikel will ich ein Projekt vorstellen, mit dem man (wie es der Name schon verrät) Akkus Testen kann. Die Idee ist, dass man einen Akku den man testen möchte zuerst mit einem Ladegerät voll lädt. Der Akku Tester entlädt dann den Akku und misst die Kapazität [mAh] die entnommen wurde, und die Energie [mWh]. Diese Werte kann man dann mit den Herstellerangaben vom Akku vergleichen und so sehen, wie fit der Akku noch ist.

Features

  • Bedienung mit nur einem Drehknopf und einem Taster
  • Vordefinierte Akkutypen
  • Vordefinierte Ladeschlussspannungen
  • Mehrsprachige grafische Menüführung (Deutsch / Englisch) kann noch erweitert werden
  • Abspeichern der Einstellungen ins interne EEPROM
  • Loggen der Daten auf eine SD-Speicherkarte mit FAT12 / FAT16 / FAT32
  • Spannungen bis 40V
  • Strom bis 5A
  • Drehzahlregelung eines Lüfters zur Kühlung
  • Mehrere Logdateien können auf einer SD-Karte abgespeichert werden da der Dateiname einstellbar ist

Elektrische Daten

  • Betriebsspannung: 12 - 15V DC
  • Betriebsstrom: 150 mA (mit Lüfter)
  • Min. Entladestrom: 10mA
  • Max. Entladestrom: 5000 mA
  • Schrittbreite Entladestrom: 10 mA
  • Max. Akkuspannung: 40 V
  • Min. Spannung Standardschaltung: ~3V (erst ab 9V max. Entladestrom)
  • Min. Spannung Schaltung für kleine Spannungen: ~0.5 bis 1V
  • Max. Entladeleistung: 100W

Einstellparameter im Menü

  • Akkutyp (Pb, NiCd, HiMH)
  • Zellenzahl (je nach Akkutyp)
  • Entladestrom (10 mA bis 5000mA)
  • Schlussspannung (50 mV bis 30000 mV
  • Speicherintervall (10 s bis 900 s oder aus)
  • Sprache (Deutsch, Englisch)
  • Dateiname der Logdatei
  • Auf Werkseinstellungen zurücksetzen


Bilder von meinem Aufbau

Diskussionsforum

DoxygenDokumentation

Fragen und Antworten

Hardware

Welche Speicherkarten kann man verwenden?
Grundsätzlich kann man alle SD und MMC Speicherkarten verwenden. In den Beschreibungen wird nur von SD-Karten geschrieben, da diese viel verbreiteter sind. Die SD-Karte ist jedoch abwärt kompatibel zur MMC und wird auch wie eine Solche angesprochen. Die Speicherkarten sollten mit FAT12, FAT16 oder FAT32 formatiert sein. Gestestet habe ich nur mit einer 128MB Kingston und einer 1GB Swissbit und allen FAT Dateisystemen.

Warum braucht es eine 3.3V Speisung?
Die Speicherkarten brauchen 3.3V. Man könnte die Spannung auch einfach mit 2 Dioden aus den 5V erzeigen, davon ist aber abzuraten, da die Spannung dann schwankt weil eine schnelle SD-Karte beim schreiben auch mal 100mA ziehen kann.

Kann man auch andere OPs verwenden?
Grundsätzlich gibt es viele OPs die man verwenden kann. Man sollte jedoch darauf achten dass der OP RailToRail Ein- und Ausgänge hat.

Software

Kann man auch einen anderen Controller als den ATmega32 verwenden?
Ja, aber auf keinen Fall einen Mit AT90Sxxxx oder ATMega8515 da bei denen die SD-Routinen nicht mehr funktionieren. Auch muss man darauf achten, dass der Controller mehr als 1 kB RAM hat, da die SD-Routinen alleine schon 1,2kB RAM brauchen.

Worauf sollte man achten

  • Die Signale zur SD-Karte sind sehr schnell, bei Leitungslängen von mehr als 10cm ist da nichts mehr zu machen.
  • Die Leitungen in denen viel Strom fliesst so kurz wie möglich halten.
  • Die Verbindungen zwischen Controller und Powerteil direkt am Akku aschliessen, da durch den Widerstand der Leitungen sonst ein Spannungsfall entsteht.

Hardware

Beschreibung

Achtung!!! Es sollte immer darauf geachtet werden die neueste Version aus dem Abschnitt Downloads zu verwenden. Die Schemaabbildungen hier sollten nur zur Erklärung sein und sind nicht immer aktuell.

Versorgung

Spannungsversorgung
  • Die Schaltung wird über ein externes Steckernetzteil gespeist. Bei dem Netzteil muss darauf geachtet werden, dass es eine Spannung von etwa 12V hat um den Maximalstrom zu erreichen (Transistor als Spannungfolger) aber die Spannung nicht grösser als 16V ist, da das die maximale Betriebsspannung des OPs ist.
  • Für die 5V Versorgung wird ein 7805 Festspannungsregler verwendet; die Kondensatoren müssen nicht genau dieselben sein, da sie nur zur Stabilisierung dienen.
  • Für die 3,3V Versorgung wird ein LM317 verwendet. Ich habe ein Poti verwendet, da man mit E12 Widerständen keinen guten Spannungsteiler hinbekommt. Bei der Spannung sollte darauf geachtet werden, dass sie nich allzuviel über 3,3V liegt, da die Speicherkarten empfindlich auf Überspannung reagieren. Wichtig ist die LED! Der LM317 braucht einen Minimalstrom von etwa 10mA, damit er richtig funktioniert. Auch hier können die Kondensatoren angepasst werden.

Prozessor

Es gibt unstimmigkeiten, ob man am DO Pin der SD-Karte einen PullUp zuschalten sollte oder nicht. Ich habe einen 10k hingemacht. Mehr dazu: MMC-Karte funktioniert nicht

CPU
  • Als Prozessor wird ein ATmega32 verwendet, da die FAT-Library für die SD-Karte mindestens 1,2kB RAM benötigt.
  • SW1 ist ein Inkrementaldrehgeber mit eingebautem Taster, der zur Bedienung dient.
  • Zur Programmierung und zum Debuggen wird eine JTAG Schnittstelle auf eine 10pol Pfostenleiste mit Standardbelegung hinausgeführt.
  • Da die SD-Karte ein 3,3V Interface hat, braucht es eine Pegelanpassung mit R4-R9 auf den Datenleitungen vom Prozessor zur SD-Karte. In die Gegenrichtung braucht es keine Pegelanpassung, da der Prozessor 3,3V als ein High erkennt. Die SD-Karte wird uber den SPI-Bus angesteuert.
  • Beim LCD handelt es sich um ein Standard 128x64 Pixel mit KS0108 Treibern. R16 wird zur Strombegrenzung der LED-Hintergrundbeleuchtung verwendet. R15 ist ein Poti zur Kontrasteinstellung.

Leistungsteil

Beim Leistungsteil gibt es zwei verschiedene Varianten, wobei bei der Variante für kleine Spannungen ein paar besondere Sachen beachtet werden müssen

Standard Schaltung für grosse Ströme

Power

Für kleine Spannungen Achtung es sind spezielle Massnahmen zu beachten

Power LV
  • Bei dieser Schaltung wird die Leistung nicht mehr über einem Transistor und einem Leistungswiderstand verheitzt, sondern nur noch auf dem Transistor. Daher ist diese Schaltung nur für kleine Leistungen geeignet.
  • Es ist empfehlenswert den Transistor direkt auf das Kühlblech zu montieren, da eine Isolierfolie in den meisten Fällen schon einen zu grossen Wärmewiderstand hat und der Transistor sich dann in Rauch auflöst. Dabei ist zu beachten, dass die Kühlfahne mit dem Kollektor verbunden ist, oder anders gesagt mit dem +Pol des Akkus. !!! Erhöhte Kurzschlussgefahr !!!
  • Damit man die gleiche Software verwenden kann kommt der OP IC4B zum einsatz. Er sorgt dafür, dass bei gleichem Strom die gleiche Spannung am "Messwiderstand" anliegt wie bei der Standardschaltung



  • Um den Strom zu regeln gibt der Prozessor ein PWM Signal auf den Tiefpass mit C1 und R11 der dann eine Analogspannung generiert. Diese Analogspannung ist der Sollwert für den Strom. Der OP IC5A vergleicht die Sollspannung mit der, die über den Spannungsteiler R10 und R21 zurückkommt. Über diesen Spannungsteiler kann der Prozessor gleichzeitig den Strom (Spannung) messen. Da der OP IC5A keine Rückkopplung hat (und somit eine riesige Verstärkung hat) wird sein Ausgang immer an einem der beiden Anschläge sein. Dieses Signal wird mit einem weiteren Tiefpass aus R22 und C16 zu einer Analogspannung geglättet. IC4A dient als Impedanzwandler um den Tiefpass nicht zu belasten und den Transistor, der als Emitterfolger arbeitet, anzusteuern. Der Spannungsteiler R13 und R12 dient dazu, die Spannung am Akku zu messen.
  • R20 und C11 bilden einen Tiefpass, der das PWM Signal vom Prozessor in eine Analogspannung umwandelt. Die Spannung wird mit dem OP IC5B um den Faktor 2.5 Verstärkt. Der Transistor T1 bildet einen Emitterfolger, der dann den Lüfter steuert. Die Diode D2 dient als Schutz, da der Lüfter induktiv ist und somit Spannunsspitzen verursachen kann. Der Kondensator dient der Pufferung und Entlastung des Transistors.
  • Mit IC6 und R14 wird die Temperatur gemessen. IC6 ist sozusagen eine Temperaturabhängige Z-Diode mit 10mV pro Kelvin. Somit wird die Temperaturmessung einfach, da der Temperatursensor eine lineare Spannung liefert.
  • Um die Spannung und den Strom genauer messen zu können werden zwei Referenzspannungen verwendet. Die interne 2,56V und AVCC(5V). Da bezweckt, dass man hohe Spannungen messen kann und doch bei kleinen Spannungen eine hohe Auflösung hat. Der Prozentuale Fehler über den ganzen Spannungsbereich bleibt immer etwa gleich.
  • Die Schottkydiode D3 schütz den Transistor vor verpoltem Akku. Der Prozessor schützt sich selber, da er am Eingeng zwei Dioden hat, die die Spannung begrenzen. Durch den Hochohmigen Spannungsteiler R12 und R13 wird der Strom durch die Dioden so klein gehalten, dass diese keinen Schaden nehmen.

Eingansschaltung eines IO-Pins
Das Bild ist aus dem Datenblatt von Atmel kopiert.

Power

Worterläuterungen

  • Emitterfolger: An die Basis wird eine Spannung angelegt (ohne Vorwiderstand). Da ein Transistor ein Ube von 0,7V hat wird am Emitter eine Spannung anliegen, die um 0,7V kleiner ist als die an der Basis. Wird nun an den Emitter ein Widerstand zu GND angelegt so hat man einen konstanten Widerstsnd und eine konstante Spannung. --> I = U/R Und man hat eine Stromquelle.
  • Rückkopplung: Ein OP will nichts anderes als dass zwischen dem invertierenden (-) und dem nicht invertierenden (+) Eingang kein Spannungsunterschied herrscht. Mit einer Rückkopplung wird der Ausgang über ein Bauteil (Widerstand, Kondensator, Diode usw.) mit dem invertierenden Eingang verbunden. Daher "weiß" der OP, was er am Ausgang macht und kann vernünftig regeln. Weiß er das nicht, wird der Ausgang immer an einem der beiden Speisungen anschlagen.
  • Impedanzwandler: Der Ausgang wird mit dem invertierenden Eingang des OPs verbunden. Somit "macht" er am Ausgang immer die gleiche Spannung wie am nicht invertierenden Eingang. Der Sinn dieser Schaltung ist, dass der Eingang das was davor ist nicht belastet und der Ausgang belastet werden kann, ohne dass sich die Spannung verändert.

Software

Danke an:

Speicherung der Daten

Die Daten werden in einer Textdatei abgespeichert, die einfach in ein Tabellenkalkulationsprogramm importiert werden kann (z.B Microsoft Office Excel, OpenOffice Calc).

Die Daten werden wie folgt abgespeichert:

Akkutyp Pb
Zellenzahl 5
Schlussspannung 8750
Entladestrom 200
Speicherintervall 20

Entladezeit[s] Spannung[mV] Strom[mA] Kapazität[mAs] Energie[mWs]
11     660     22      73      46
31     660     33      358     226

Tipps zum Aufbau

Eine günstige Variante ist es einen Prozessorkühler von einem PC zu nehmen und den Transistor und den Leistungswiderstand dort draufzubauen. Wichtig ist es, alle Leitungen, in denen viel Strom fließt, so kurz wie möglich zu halten.

Downloads

Schema

Eagle Schema und das PDF sind hier: AkkuTester_HW_2010_09_15_V1.2.zip

Software

C-Source Code für AVR-GCC 4.3 und die vorkompilierte HEX Datei für einen ATmega32 sind hier: AkkuTester_SW_2012_02_16_V1.8.zip

Die Fusebits müssen folgendermassen eingestellt sein:

HFUSE 0x17
LFUSE 0xe4