SSLACC – Simple solar lead acid charge controller

Dieser kleine Laderegler hat nur eines zum Ziel: Den angeschlossenen 12V Blei-Gel Akku mit einem Solarpanel (max. 20W) aufladen, über einen Verbraucher entladen und bei alledem sicherstellen, dass der Akku nicht beschädigt wird. Es wird lediglich die Spannung überwacht, da keine Strommessvorrichtungen vorgesehen sind. Maximaler Lade- und Entladestrom ist 3A.

Schaltung

Aufgebaut wurde alles um dem AtMega48 herum. Und selbst dieser ist eigentlich vollkommen überdimensionert. Hat aber z.B. den Vorteil, dass man zum Debuggen einen MAX232 anschließen kann (das sind die Kabel auf dem Bild) und nicht 50 verschiedene Controllertypen auf Lager haben muss. Natürlich lassen sich 88/168er auch verwenden.

Aufbau

Hier gibt es nicht viel zu beachten. Lediglich die dünnen roten Leiterbahnen auf dem Top-Layer sollen unterhalb der Platine mit mindestens 0,5 mm² Leitung verlegt werden. Dafür ist die Platine leichter zu ätzen bzw. billiger zu bestellen.

Software

Achillesferse bei diesem Projekt ist die Genauigkeit der Spannungsmessung. Eigentlich hatte ich vor VCC als Referenz zu verwenden. Laut Datenblatt hat die Spannung vom LP2950-5.0 nur 0,5% Toleranz und einen geringen Temperaturdrift. Also deutlich genauer die interne Referenz des AVRs. Leider war dies in der Praxis anders, so dass ich wieder auf die interne Referenz zurückgreifen musste. Die Software ist ziemlich schnell zusammen geworfen, enthält aber einen schöne Funktion zum Linearisieren beliebiger Messwerte über einen Kennlinie mit beliebig vielen Stützpunkten. Sollte bei jeder gebauten Platine angepasst werden (leider :-( ). Der ADC betreibt oversampling um auf 12 Bit Auflösung zu kommen.
Im Normalfall läuft der Controller mit 128 kHz und wacht etwa 4 mal in der Sekunde aus dem Idle-Zustand auf und übernimmt seine Aufgabe. Es gibt einen internen Laufzeitzähler, der einem aber erst dann etwas bringt wenn man den Controller mit mind. 1 Mhz taktet und per UART (1200 Baut 8N1) an den Rechner anschließt. Hier bekommt man nun einen Liste von CSV-Werten geliefert, die man so schnell zu einem Diagramm machen kann:

Time[s];ADC_Batt[1];U_Batt[mV];ADC_Panel[1];U_Panel[mv]
0.262;3637;12954;6;159
1.048;3637;12954;7;166
1.310;3637;12954;8;172
1.572;3638;12957;9;178
1.835;3636;12951;9;178
2.097;3636;12951;8;172
...

Zum Schluss wurde noch die Messung des eingebauten Temperatursensors eingebaut. Doch entweder mache ich etwas falsch oder der Fehler liegt mit -23°C noch höher als im Datenblatt angegeben. Und selbst da lassen die +-10K bereits kalte Schauer den Rücken herunter laufen.

Anzeigen

Die grüne LED zeigt an, ob der Akku geladen wird. Die Rot-Grün Duo-LED soll einen Anhaltspunkt (!) für den Ladezustand (hoch, mittel, tief) des Akkus geben. Blinkt sie rot, so wurde die Last wegen zu tiefer Akkuspannung abgeworfen und kann nur durch erneutes Aufladen des Akkus wieder mit Strom versorgt werden.

Downloads

Update 13.04.2012:
Verbesserte Kalibrierung; Unterdrückung fälschlicherweise aktivierte „Charge“-LED
EAGLE-Daten
Firmware
Warenkorb von Reicheltreichelt shopping cart

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert