Solarbox PowerBank

Aus Open Source Ecology - Germany
Zur Navigation springen Zur Suche springen

SolarBox Powerbank

Diese Seite beschreibt ein Teilprojekt der SolarBox

Solarbox logo3.png


Prototyp V0.2

Der aktuelle Prototyp ist hier dokumentiert http://makeable.de/mlab/makeable/solarbox/


Prototyp V0.1

Dies ist eine einfache Grundschaltung für einen LiFePo4-Laderegler.

Schema

Mycharger1l schema.png

sb_pb_v001-BOM

Links oben ist der externe Input, das kann ein 9 bis 12V Netzteil sein, oder auch ein Solarpanel. Gleich am Eingang befindet sich eine 10A-Sicherung, selbiges nochmal rechts unten am Ausgang. Durch erstere wird die Schaltung vor Überstrom aus dem Solarpanel geschützt und durch letztere der Verbraucher vor Überstrom aus dem LiFePO4-Akku. D4 ist eine Z-Diode als Überspannungsschutz. R2 und R4 bilden den ersten Spannungsteiler mit dem die eingehende Spannung gemessen wird und sind mit einem Analogeingang vom Arduino verbunden. Als nächstes folgt Transistor Q1 welcher einen MOSFET Q2 treibt und sein Signal aus einem PWM-fähigen Digitalausgang (D6) des Arduino erhält.

Bis hierhin geht der Eingangsbereich in welchem die Spannung durch die Eingangsspannung Vin (bzw. Vsolar) vorgegeben wird. Diese Spannungkann nun durch den Mosfet mittels PWM "gechoppt" werden und man erhält eine einstellbare und steuerbare Spannung, mit der man z.B. den Verlauf einer bestimmten Ladekurve vorgeben bzw. abfahren kann, d.h., ab hier folgt nun ein Bereich, in welchem die Spannung diejenige ist, die an der Batterie anliegt (Vbat). Doch zunächst wird noch durch Diode D3 verhindert, das es z.B. bei fehlender Sonneneinstrahlung oder nachts zu einem Rüpckstrom aus den Batterien kommt, der diese leersaugen würde.

Als nächstes folgt ein ACS714 Hall Sensor, mit welchem die eingehende Stromstärke gemessen wird und der demzufolge auch mit einem Analogeingang vom Arduino verbunden ist. Der hier gemessene Strom ist eine Summe aus dem Ladestrom der in die Batterie geht, plus dem Strom der an einen etwaigen Verbraucher geht; abgesehen von einem weiteren externen Verbraucher muss damit zumindest der Arduino versorgt werden (weclher ja über den Mosfet den Strom überhaupt erst hereinbringt). Kurz nach dem ACS714 folgt ein Jumper, der gebrückt ist. Man kann dort ein Multimeter ranhängen und die gemessenen Werte mit denen vom ACS714 abgleichen.

Nun folgt der Batterieeingang, an welchem sich zwei LiFePo4-Akkus mit zusammen 6.4V Nennleistung und z.B. 10Ah Kapazität befinden. Gleich dahinter wird aus R3 und R5 der zweite Spanmnungsteiler gebildet, mit welchem die Spannung im Batteriekreis vom Ardino gemessen wird.

Danach folgt ein einstellbarer S18V20ALV Stepup-Stepdown-Schaltregler (Buck/Boost-Converter), welcher die jeweils anliegende Spannung runtertransformiert auf exakt 5V. Damit ist es egal ob der Arduino gerade einen Ladealggorthmus im batteriekreis ablaufen lässt oder wie stark die Sonneneinstrahlung ist - der Arduino und auch ein etwaiger Verbraucher kriegen immer genau die 5V.

Darum folgt als nächstes eine Abzweigung zum 5V-Spannungskreis des Arduino. Dieser hat zwei mögliche Eingänge, einmal 5V, welcvher eine geregelte 5V-Spannung erwartet und in diesem Fall auch bekommt. Man könnte aber auch über den Arduino-"Haupteingang" einspeisen, der mit Spannungen bis zu 20V noch klarkommt, weil ein 7805-Spannungsregeler gleich dahinhergeschaltet ist, aber das würde letztlich eine Verschwendung von Energie bedeuten, da der Spannungsüberschuss am 7805 einfach sinnlos verheizt würde.

Anschliessend folgt noch die zweite 10A-Sicherung und der Anschluss für den externen Verbraucher, z.B. ein Laptop oder ein Mobile-Device. D.h., dieser Ausgang sollte ausser einer Anreihklemme auch noch als USB-Buchse ausgeführt sein.


Der Arduinomisst nun die Spannung am Eingangsbereich und vor allem am Akku. Sofern die Akkuspannung deutlich unter der Ladeschlussspannung liegt und natürlich auch eine externe Spannungsquelle (Solar oder Netzteil) verfügbar sind, fängt der Arduino an, über den Mosfet den Akku zu laden - zunächst mit Konstantstrom (CC-Modus), d..h., die Firmware passt die PWM-Pulse entsprechend an.

Sobald die Ladeschlussspannung erreicht ist, ist der LiFePO4-Akku noch nicht voll, daher wird nun die Ladeschlussspannung konstant gehalten (CV-Modus), wobei der Ladestrom kontinuierlich absinkt. Die Batterie zieht immer weniger bis sie schliesslich voll ist, d.h., wenn der Ladestrom etwa auf 1/10 des Anfangswerts gesunken ist, ist der Ladelagorithmus eigentlich beendet.

Da es sich aber bei LiFePO4-Akkus auf die Zyklenzahl sehr positiv auswirkt, wenn der Akku sich nicht stets in einem 100%ig aufgeladenen Zustand befindet, wird hernach noch etwas "Kapazität abgelassen", d.h. da man ohnehin den Arduino als ständigen verbraucher dranhängen hat, geschieht dies quasi von selbst. Wenn nun eine gewünschte Untergrenze erreicht ist und von Seiten des Verbrauchers keine Stromanforderung besteht kann sich der Arduino dann selbst ausschalten oder in einen energiesparenden Sleep-Modus versetzen.

PCB / Lochrasterplatine

Auf Bild 2 sieht man links am Rand der Lochrasterplatine den externen und den Batterieanschluss und ganz rechts den Ausgang zum externen Verbraucher, alles als Anreihklemmen ausgeführt. Der S18V20ALV vorne ist ebenfalls mittels Anreihklemmen montiert (und somit austauschbar). Auch der ACS714 ist per Pinheader aufsteckbar und wird dann mit zwei Kabelschuhen verschraubt. Als Sicherungen sind hier zwei 10A Flachstecksicherungen vom Auto im Einsatz ;)


Indoor Solarpanel

Wie man sich schnell und auf einfache Weise ein kleines Solarpanel für den Inddor-Gebrauch selbst herstellen kann, wird unter "Solarbox MiniLight" gezeigt. Anstatt LiFePo4 kommen hier noch NiMh-Akkus zum Einsatz und die simple Ladeschaltung ist ohne uC-controller, aber das Solarpanel kann natürlich universell verwendet werden. Für die Powerbank würde man allerdings 4 solcher Minipanels benötigen und käme damit auf 18V real bzw. 12 V nominell.


Software

Firmware

Die aktuelle Firmware Version kann betrachtet werden unter Solarbox Powerbank Firmware V0.24 . Es handelt sich dabei um eine frühe Preview-Version, da die entwicklung derzeit noch andauert.

Die Firmware kann von einem Arduino-IDE aus auf einen Arduino transferiert werden.

Visualization

Dies ist eine Host-Software die vom Arduino Sampling-Daten über die serielle Schnittstelle empfängt und als Messkurve graphisch sichtbar macht.

Sie ist in Processing programmiert , welches wiederum in jeder regulären Java-Umgebung laufen kann und ist zu finden unter Solarbox Liquid V.006 Das Programm ist still under development.

Liquid 006 screenshot.png

Literatur und Links

Referenz Beschreibung
OSEG-Forum Diskussionsbeiträge dazu
instructables.com Ein Instructable von deba168 (Debasish Dutta) , welches als Grundlage und Ausgangspunkt für diese Schaltung diente. Sehr empfehlenswert, da viele Zusammenhänge gut verständlich erklärt werden.