Prototypstadium
|
Einleitung
Das ist die Erweiterung des Akkuladegerätes
auf mehrzellige Akkus. Da als Stromquelle ein 12V/2A-Netzteil zur
Verfügung
steht, könnten Akupacks bis zu 6000mAh geladen werden.
Die Software und der Controller sind entsprechend modifiziert.
Auf dieser Seite werden nur die Änderungen gegenüber dem
einfachen Gerät erläutert. Alle grundlegenden Informationen
bitte
ich, der anderen Seite zu entnehmen.
Dieses Gerät ist nicht dafür gedacht, ständig alle im Haushalt anfallenden Akkus zu laden (dazu ist es zu aufwändig), vielmehr ermöglicht es neben der Ladung eine Analyse des Zustandes einzelner Akkuzellen bzw Akkus (noch vorhandene Kapazität wird bestimmt) sowie die Akkupflege.
Anforderungen
Ein Akkuladegerät sollte in der Lage sein,
Schaltung
Das Herz der Schaltung ist ein PIC16F876,
der an PortB mit einem LCD-Display (1x16)
und einem Rotary-Encoder
versehen ist. PortA dient der Spannungsmessung und PortC der Steuerung
der Ladeelektronik. Mit dem PWM-Ausgang
RC2
wird
die Stärke des Lade/Entladestroms eingestellt.
Aufgebaut ist der 16F876 auf einer universellen Controller-Platine, die im linken Bild zu sehen ist.Auf einer 75 x 100 mm großen Platine befindet sich der Sockel für den 16F876 sowie Anschlüsse für
|
Ein Netzteil liefert +5V (Vdd - Vss) für den Controller und die
Ladeelektronik und zusätzlich 12V/2A für die Ladeelektronik.
Eine präzise Stabilisierung von Vdd = +5V ist nötig, da diese
Spannung auch als Referenz für den ADC des PIC benutzt wird.
(Entscheidend
ist nicht die exakte Einhaltung des Wertes 5V als vielmehr seine
Konstanz.
Die Entladeschaltung ist eine Konstantstromsenke, die den
gleichen
OPV benutzt, der diesmal jedoch einen N-Kanal logic-level-MOSFET
(SMP60N03-10L)
ansteuert, der den Akku über die Messwiderstaände
R16..R18
entlädt. Er regelt den Strom so, dass über die
Messwiderstände
(0,157 Ohm) eine Spannung abfällt, die zu der Spannung am
positiven
Eingang des OPV identisch ist. Dadurch ist garantiert, dass der
Entladestrom
immer drei mal so groß ist wie der Ladestrom.
Sowohl Ladeschaltung wie auch Entladeschaltung werden normalerweise vom PIC über D1&D2 blockiert, und erst beim Laden oder Entladen eingeschaltet. Die Stromstärke stellt der PIC mit dem Tastverhältnis eines PWM-Signals ein, das von R1&C1 in eine Gleichspannung gewandelt wird. Mit R2 wird die Stromstärke einmalig abgeglichen. Dieser Abgleich wird durch die Software unterstützt. |
Durch die hohe Verstärkung des OPV neigen die
Stromquellen zwangsläufig
zum Schwingen. Eine Unterdrückung der Schwingungen durch einen
Gegenkoppelwiderstand
am OPV ist durch die unterschiedlichen Arbeitspunkte beim Laden bzw.
Entladen
nicht möglich. Deshalb wurden C2&C3 zur
Schwingungsunterdrückung
eingesetzt.
Die Akku-Zellenspannung wird mit dem ADC des PIC
überwacht. G = (100 / 14) / (8 -
Z) Wobei Z die Anzahl der Zellen des Akkupacks ist. Dadurch liegt
am ADC-Eingang das 2,381-fache der Einzelzellenspannung an. Durch
Verwendung einer positiven Referenzspannung von 4,8714V entspricht der
vom ADC ermittelte Messwert der Hälfte der Zellenspannung in
Millivolt. Das klingt erst einmal etwas kompliziert, es minimiert aber
den Rechenaufwand zur Spannungsmessung. Um die Zellenspannung zu
erhalten, muss man nur den ADC-Messwert mit 2 zu multiplizieren. |
Erwärmung: Das Entladen größerer Akkus erzeugt naturgemäß goße Hitze, die im Wesentlichen durch der Entladetransistor entwickelt wird. Um die Anforderungen an die Kühlung nicht zu hoch zu schrauben, begrenze ich per Software die maximale Wärmeabgabe des Entladetransistors auf 25W. Dadurch können nicht alle Akkupacks mit dem Strom C innerhalb einer Stunde entladen werden. Der IRF9540 setzt maximal 21 W in Hitze um (1 Zelle mit 2A Ladestrom), die Hitzeentwicklung des SMP60N03 wird auf 25W begrenzt. (3 Zellen a 6000mAh oder 7 Zellen a 2500mAh) und die Lastwiderstände R16..R19 maximal je 3 W. Deshalb bekommen der IRF9540 und der SMP60N03 einen gemeinsamen Kühlkörper mit einem TK von max 2 K/W. Das ist in meinem Fall ein 5cmx5cm-großer ehemaliger CPU-Kühlkörper mit einem 50mm Lüfter. R16..R19 sind 5W-Typen. Der Lüfter des Kühlkörpers wird normalerweise
mit 5V
betrieben, und bleibt so unhörbar. Bei Bedarf schaltet der
PIC
den Lüfter auf 12V-Betrieb. Die vom Kühlkörper
abzuführende Verlustleistung ließe sich berechnen, man kann
aber auch einfach die Temperatur des Kühlkörpers mit einem
Temperatursensor überwachen. Ich greife auf meinen Lüfterschalter zurück,
und
integriere
ihn in das Ladegerät. Überschreitet die
Kühlkörpertemperatur 48ºC, dann wird der Lüfter auf
12V umgeschaltet. Unterhalb von 35ºC wird auf 5V
zurückgeschaltet. Bei einer Überschreitung von 60ºC
erfolgt eine Havarieabschaltung des Lade/Entladevorgangs. Der
Temperatursensor ist am Kühlkörper zu befestigen. Die Erwärmung des Ladetransistors ließe sich deutlich verringern, wenn man als Spannungsquelle zwischen 5V und 12V umschalten könnte, da der Entladetransistor aber ohnehin die größten Kühlmaßnahmen erfordert, bringt so eine Auswahlmöglichkeit letztendlich nichts. |
Aufbau: Der Ladeadapter wurde auf einer 80 mm x 100 mm großen Platine aufgebaut, und mit Kabeln versehen, deren Stecker in die 10-poligen Steckverbinder der Controllerplatine oder der 16F876-Testplatine passen. (Port A und C). An den Display-Anschluss (Port B) der Controllerplatine/Testplatine wurde (mit einer LCD-Tastatur-Platine) ein 1-zeiliges Dotmatrix-Display angeschlossen. Ebenfalls am Port B ist der Rotary-Encoder angeschlossen. Als Gehäuse verwende ich ein altes externes SCSI-Gehäuse mit Netzteil. Die Dioden D1..D2 müssen Shottky-Dioden sein. Beide MOSFETs sind für diesen Zweck völlig überdimensioniert, ich benutze was gerade in meiner Bauelementekiste ist. Sie können durch billigere Typen (Mindestforderung 20V, 50W, 10A) ersetzt werden. Der N-Kanal MOSFET (T3) sollte aber ein logic-level-Typ sein. |
Berechnung der geladenen/entladenen Energie
Der Energiezähler ist ein 24 Bit-Softwarezähler dessen obere
16 Bit der Energie in mAh entsprechen. Das LSB hat also eine Wertigkeit
von 1/256 mAh = 0,0004 mAh.
Das Ladeprogramm arbeitet in einem 6,75 Sekunden-Rythmus. Bei 33,3
mA-Ladestrom
(100 mAh-Akku) wird dem Akku in 6,75 s genau 0,0625 mAh (also 1/16 mAh)
zugeführt.
Ein 24-Bit-Zahler wird nach jedem Ladezyklus um einem Wert erhöht,
der dem Ladestrom in 100/48 mA entspricht (für 200 mA also um 96,
für 1 A folglich um 480). Die oberen 16 Bit des Zählers
enthalten
dann die geladene Energie in mAh. Werte bis 60 Ah sind auf diese Weise
zählbar. Das ist für 6000 mAh-Akkus ausreichend :-)
Das Entladeprogramm arbeitet in einem 2,25 Sekunden-Rythmus. Bei 100
mA-Entladestrom wird dem Akku in 2,25 s genau 0,0625 mAh (also 1/16
mAh) entnommen.
Ein 24-Bit-Zahler wird nach jedem Entladezyklus um einem Wert
erhöht,
der dem Entladestrom in 300/48 mA entspricht (für 600 mA also um
96,
für 3 A folglich um 480). Die oberen 16 Bit des Zählers
enthalten
dann die entnommene Energie in mAh. Werte bis 60 Ah sind auf diese
Weise
zählbar. Das ist für 6000 mAh-Akkus ausreichend.
Die Energieberechnung erfordert das Einstellen der Ladeströme in 2,0833 mA-Stufen (Entladestrom ist immer 3 mal so groß). Der Akkutyp kann also in Stufen von 6,25 mAh ausgewält werden. Die Software erlaubt nur ein Einstellen in der sinnvollen Stufung von 50 mAh. Nur in diesen Stufen lässt sich auch die von der PWM erzeugte Strom-Steuerspannung einstellen.
Kalibrierung
Im Ladeadapter gibt es zwei Potentiometer (R2 und R4), die präzise
eingestellt werden müssen. Diese 'Kalibrierung' wird durch die
Software
des PIC ein wenig unterstützt.
Einstellen der Referenzspannung von 4,8714 V - 3 Varianten
Am Potentiometer R4 muss die Referenzspannung Uref auf genau 4.87V eingestellt werden. Dazu bieten sich 3 Varianten an, von denen Variante 1 deutlich genauer ist. Die Präzision dieser Einstellung sollte man aber nicht überbewerten, da sich ein Messfehler von 5% nicht nennenswert auf die Funktion des Ladegerätes auswirkt.
Prüfung der Stromquellen bei 1 A
Nach der 'Kalibrierung 0,1A' sollten die Stromquellen in der Lage sein,
alle Ströme exakt zu erzeugen. Zur Probe kann man im PIC den
Menüpunkt
'Kal 1A' aufrufen. Daraufhin wird die Ladestromquelle auf 1 A
eingestellt.
Wird an den Akkuklemmen ein Amperemeter angeschlossen, kann man den
Stromwert
direkt prüfen.
Alternativ kann man während der 'Kalibrierung 1 A' die Spannung
über R19 mit einem Digital-Voltmeter messen. Diese muss 470
mV
betragen, wenn die Akkuklemmen kurzgeschlossen werden. Die
Spannungsanzeige
im Display sollte bei der 'Kalibrierung 1A' nicht verwendet werden. Sie
ist durch Übergangswiderstände stark fehlerbehaftet, und wird
deshalb mehr als 470mV anzeigen.
Da Nichts vollkommen linear funktioniert, wird der Strom in der bei
'Kalibrierung 1A' warscheinlich etwas kleiner als 1A ausfallen. Durch
abwechseldes
Einstellen des 100-mA-Stroms und des 1-A-Stroms ließ sich bei mir
eine Position von R2 finden, in der der Stromfehler in jedem Fall unter
3% liegt.
Menue des Akkuladegeräts
Nach dem Einschalten stehen 10 Menuepunkte zur Wahl, die durch Drehen des Rotary-Encoders ausgewählt und durch Drücken dessselben (länger als 0,25 s drücken!) gestartet und wieder verlassen werden können. Zur normalen Arbeit werden nur die ersten 4 Menuepunkte und der letzte Menuepunkt benötigt, die anderen dienen Test und Kalibrierfunktionen.
Während der Lade- und Entlade-Programme kann durch Drehen des Rotary-Encoders in Uhrzeigerrichtung zwischen den folgenden vier angezeigten Messwerten umgeschaltet werden:
Display | Bedeutung | Erläuterung |
Akkutyp | Akkutyp einstellen |
|
Laden | Laden des Akkus |
|
Entladen | Entladen des Akkus |
|
Ent/Lade | erst Entladen, danach Laden des Akkus |
|
Spannung | Anzeigen der Akkuspannung |
|
U-ref | Anzeigen der Referenzspannung |
|
Kal 1A | Kalibrierung 1A |
|
Kal 0.1A | Kalibrierung 0,1A |
|
Temp |
Kühlkörpertemperatur |
|
Zellen | Zellenanzahl einstellen |
|
Zur Realisierung wird u.a. auf folgende Unterprogramme zurückgegriffen:
Entladeprogramm:
Um dem viel diskutierten Memmoryeffekt aus dem Wege zu gehen, sollten
insbesondere NiCd-Akkus vor dem Laden entladen werden. Dazu werden sie
mit einem Strom belastet, der ihrer Nennkapazität C entspricht
(alo
ein 750 mAh-Akku mit 750 mA). Die Entladung wird beendet, wenn die
Zellenspannung
1,0 V erreicht hat. Während der Spannungsmessung, wird die
Entladung
kurzfristug unterbrochen.
Mögliche Verbesserungen
Die Spannungsmessung könnte einfacher (ohne OPV) und genauer
(0,4mV
Auflösung bei 10 Bit im Bereich von 1,2 bis 1,6 V) erfolgen, wenn
man anstelle eines 16F876 einen 16F628 verwendet, und mit dem Komparator
einen 10-Bit-Delta-Sigma-ADC aufbaut. Außerdem kostet der
16F628
nur die Hälfte des Preises des 16F876.
Der kleinere RAM des 16F628 würde aber eine Verkleinerung des
FIR-Filters auf 48-Stufen nötig machen. Das sollte aber reichen.
Eng
wird es mit der geringen Anzahl an freien I/O-Pins beim 16F628. Die
Kalibrierung
der Spannungsmessung würde komplizierter werden.
Für Freunde der Tasten, sollte alternativ zum Rotary-Encoder
eine
Bedienung über drei Tasten vorgesehen werden.