Smartphone-Stromversorgung mit einem Solarpanel
Dieser Artikel
beschreibt den Weg von einem übergebliebenen Solarpanel zu einem recht
nützlichen Solarlader, der in unserem Haus schon seit einigen Monaten
Smartphones, Tabletts und Laptops mit Strom versorgt.
Der Solarlader
Es
gibt Bastelprojekte, die aus einer ganz unerwarteten Richtung angestoßen
werden. Dieses hier ist so eines: Letzten Sommer hatte unser kleiner
Gartenteich Zuwachs bekommen. Ein paar Goldfische hatten sich dort
eingerichtet. Jetzt reichte die kleine solarbetrieben Pumpe aber nicht mehr
aus, die Wasserqualität aufrecht zu erhalten. Ein netzbetriebener Filter
musste her. So wurde ein Solarpanel nach mehreren Jahren Gartenarbeit plötzlich
freigestellt. Es stand dann ein paar Wochen im Bastelkeller, bis mir die Idee
kam, es anderweitig einzusetzen. Die maximale Leistung war mit 580 mA bei 17
Volt angegeben. Ist es möglich, damit die ständig wachsende Zahl von
Smartphones und Tabletts in unserem Haus mit Strom zu versorgen? Das Solarpanel
war unterwegs zu neuen Aufgaben.
Erste Versuche
Ein
Spannungswandler von 17 auf 5 V war auf einem Steckbrett schnell aufgebaut. Ich
hatte einen LM2576T in meinen Vorräten entdeckt, der bei einem weiten
Eingangsspannungsbereich stabile 5V mit bis zu mehreren Ampere produzieren
kann. Der LM7576 kam übrigens schon an anderer Stelle im Elektronikforum zum
Einsatz (Referenz: 5V-Solar-Lader).
Die
Schaltung ist einfach. Allerdings ist die Wahl der Speicherdrossel nicht ganz
unkritisch. Entstördrosseln sind nicht geeignet. Gute Ergebnisse habe ich mit
L-PIS-Drosseln bekommen, z.B. L-PISR, 100µH, 3.1A. Dann braucht es nur noch
eine Schottky-Diode, Elkos und eine USB-Buchse. Der 100 Ohm-Widerstand an den
Datenleitungen der USB-Buchse signalisiert dem Smartphone, dass es sich um eine
Stromversorgung zum Laden handelt, die mehr als die USB-konformen 500mA
bereitstellen kann.
LM2576T mit Standardbeschaltung
Die
wenigen Bauteile sind auf dem Steckbrett schnell zusammengesetzt. Die Sonne
scheint, und tatsächlich stehen 5V am USB-Ausgang bereit. Ein Handy wird
angeschlossen und gibt das vertraute „ping-pong“ von sich. Der Ladevorgang mit
Solarstrom nimmt seinen Lauf. Prima!
Aber
dieser Aufbau ist noch keine zufriedenstellende Lösung. Um zeitlich vom
Sonnenschein unabhängig zu sein und eine stabile Stromversorgung auch bei
wechselnden Sonnenverhältnissen zu liefern, wird ein Pufferakku benötigt.
Außerdem wurde ich neugierig und wollte gerne wissen, wie viel Strom das
Solarpanel liefert und wie viel in die angeschlossenen Verbraucher abfließt.
Spätestens an dieser Stelle wurde es Zeit für einen Mikrocontroller zum Messen,
Schalten und Walten.
Der Schaltungsentwurf
Was wird also gebraucht?
Das Solarpanel soll einen 12V-Bleiakkumulator laden. Ein geeigneter Akku war
über das Internet schnell gefunden. Ich habe mich für einen Gelakku mit 9Ah
entschieden, der mir mit seinen mechanischen und elektrischen Größen geeignet
erschien.
Zyklenfester Gelakku
Der
Akku stellt seinerseits die Versorgung für den Spannungswandler bereit, der
dann die USB-Buchse mit Strom versorgt. Der Mikrocontroller hat dabei zwei
Aufgaben. Erstens dient er als Multimeter, misst Spannungen und Ströme und
berechnete aufgenommene und abgegebene Kapazitäten. Zweitens dient er als
Laderegler, schaltet das Solarpanel bei Überspannung ab und die Verbraucher je
nach Bedarf und Ladezustand des Akkus ein oder aus.
Ein
Übersichtsdiagramm ist hilfreich und notwendig, um nicht die Orientierung zu
verlieren.
Solarlader im Übersichtsdiagramm
Im
unteren Teil befindet sich die „Leistungselektronik“, auch wenn dieser Begriff
ein wenig übertrieben erscheint. Im Zentrum ist die Batterie zu sehen, der
12V-Bleiakkumulator. Er wird von links über das Solarpanel geladen. In der
Plus-Leitung befindet sich eine Diode als Verpolschutz und ein Schalter, der
das Panel bei Spannungen oberhalb einer Grenzspannung abschaltet. In der
negativen Zuleitung liegt Shunt1, mit dem der Ladestrom gemessen wird. Auf der
rechten Seite des Akkus sitzt der 12 zu 5V-Wandler, der über Shunt2 die
USB-Buchse versorgt. Die Erfahrungen haben gezeigt, dass angeschlossene
Smartphones recht empfindlich auf schwankende Ladespannungen reagieren. Deshalb
befindet sich Shunt2 innerhalb des Regelkreises, so dass Verluste am Shunt
ausgeregelt werden. Das klappt tatsächlich sehr gut. Die Spannungsänderungen
bei Strömen bis zu 2 Ampere liegen im Bereich von 20 oder 30mV. Und schließlich
gibt es noch einen ungeregelten 12V-Ausgang, der die Batteriespannung direkt zur
Verfügung stellt, um zum Beispiel einen kleinen 12 zu 220V-Wechselrichter zu
betreiben.
Im
oberen Bereich befinden sich die Steuerelektronik mit Mikrocontroller,
LCD-Panel, Spannungsteilern zur Anpassung der Messspannung an den ADC, und 3
Taster als Bedienelement. Wie schon bei allerlei anderen Projekten habe ich
auch hier einem AVR ATmega168 eingesetzt. Die ATmegas bieten eine ausreichende
Anzahl Ports und einem ADC mit mehreren Kanälen auf dem Chip. Die
Spannungsversorgungen für das LCD-Panel (5V) und den Mikrocontroller (3.3V)
werden mit kleinen Festspannungsreglern (LP2950) aus der Batterie bezogen. Die
LP2950 haben minimale Leerlaufströme. LCD-Panel und Mikrocontroller sind sehr
genügsam, so dass die ganze Steuerelektronik einen sehr geringen Eigenbedarf
von etwa 5mA hat. Das liegt damit im Bereich der Eigenentladung des Bleiakkus,
so dass die Schaltung ohne Bedenken dauerhaft am Akku bleiben kann.
Und
noch ein Punkt soll erwähnt werden: Die Masse der Steuerelektronik liegt an der
Masse des Solarpanels auf der linken Seite von Shunt1, nicht wie man vielleicht
intuitiv annehmen würde an der Masse des Akkus. So lassen sich sowohl der
Ladestrom durch Shunt1 als auch der Entladestrom durch Shunt2 als positive
Spannungen am ADC messen. Alle Spannungsmessungen sind also auf die Masse des
Solarpanels bezogen, und nicht auf die Masse der Batterie. Sobald ein Ladestrom
fließt, erscheinen alle anderen Spannungen um die an Shunt1 abfallenden
Spannungen verschoben gegenüber der Batterie-Masse. Dieser Offset wird per
Software korrigiert.
Spannungs-
und Strommessungen
Die
Messungen geschehen mit Hilfe des ADC. Der Controller wird so konfiguriert,
dass der ADC mit 10 Bit Genauigkeit misst und die interne
Referenzspannungsquelle mit 1.1V als Bezugspunkt verwendet. Ein Konvertierungsergebnis
von 1023 entspricht also der Referenzspannung.
Für
die Messung des Ladestroms wird direkt die Spannung an Shunt1 gemessen und muss
nur noch durch den Widerstand geteilt werden, wodurch sich der Ladestrom
ergibt. Die Messung des 12V-Ausgangsstrom geschieht ganz analog mit Shunt3. Die
Größe der Shunt-Widerstände ergibt sich als ein Kompromiss zwischen der minimal
geforderten Auflösung und den maximal akzeptablen Verlusten. Außerdem muss man
darauf achten, dass die Summe der Spannungen an Shunt1 und Shunt3 nicht den
maximalen Messbereich von 1.1V überschreiten. In meiner Schaltung wurde für
Shunt1 einen Widerstand von 0.33 Ohm eingesetzt. Damit ergibt ein Ladestrom von
zum Beispiel 1A gerade 0.33V. Für Shunt3 habe ich einen Widerstand von 0.11 Ohm
gewählt. Ein Ausgangsstrom von zum Beispiel 4 A ergibt damit 0.44V. Das sind
für den geplanten Einsatz sinnvolle Rahmenbedingungen.
Die
Messung des Stroms am USB-Ausgang ist etwas aufwendiger gestaltet mit dem Ziel,
die Ausgangsspannung unabhängig vom Stromfluss möglichst konstant zu halten.
Deshalb liegt Shunt2 in der positiven Leitung innerhalb des Regelkreises. Der
Strom ergibt sich als Differenz der Spannungen vor und nach Shunt2 geteilt
durch den Widerstandswert. Die Spannungswerte bewegen sich dabei im Bereich von
5V, was sich nicht direkt mit dem ADC messen lässt. Hier kommt ein TL431 als
präzise, einstellbare Bandgap-Spannungsreferenz zum Einsatz. Der TL431 lässt
sich als „bessere“ Zenerdiode verstehen. Er wird so geschaltet, dass daran exakt
4.78V (ab Strömen von minimal 1mA) abfallen. Gemessen wird die verbleibende
Spannung gegen Masse. Damit lassen sich die Spannungen von 5V bis etwa 5.8V mit
dem ADC erfassen. Der Schalter S4 sorgt dafür, dass wechselweise die Spannung
vor und nach Shunt2 am TL431 anliegen. Für Shunt2 wurde ein Widerstand von 0.22
Ohm ausgewählt. Ein Stromfluss von 1.5A ergibt damit eine Spannung von 5.495V
vor dem Shunt, also 0.715V nach Abzug von 4.78V durch den TL431, was wieder
innerhalb des Messbereiches des ADC liegt.
Die
Batteriespannung wird ganz einfach mit einem Spannungsteiler aus Widerständen
und Trimmer an den Messbereich des ADC angepasst. Damit stehen alle Ströme und
Spannungen am Controller zur Messung bereit.
Transistoren
als Schalter
Die
zweite Aufgabe des Mikrocontrollers ist es, die verschiedenen Schalter zu
betätigen, wozu die Ports D3 bis D5 und C4 und C5 als Ausgänge genutzt werden.
Alle Schalter sind so ausgelegt, dass ein low-Pegel den Schalter
aktiviert. Dazu werden Treiber mit BC547 verwendet, bei denen die Emitter über
einen Widerstand am Port-Ausgang und die Basis direkt an der
Spannungsversorgung des Controllers liegen. Die Transistoren arbeiten also in
Basisschaltung. Wenn der Port high-Pegel hat, liegen Basis und Emitter
auf dem gleichen Potential, wodurch der Transistor sperrt. Bei low-Pegel
ist der Transistor dann entsprechend geöffnet. Der Collector des BC547 treibt
die Basis eines PNP-Transistors oder p-Kanal FETs im positiven Zweig der Last.
Mit dieser Anordnung lassen sich (fast) beliebig hohe Spannungen mit dem
Controller schalten.
High-Side Schalter mit p-Kanal
MOSFET
Die
Schalter S1 (Solarpanel) und S3 (12V-Ausgang) arbeiten mit p-Kanal MOSFETs
IRF5305. Die FETs haben im eingeschalteten Zustand einen sehr geringen
Widerstand von weniger als 60 mOhm und vertragen die anfallenden Ströme völlig
unbeeindruckt. Der Umschalter S4 wird mit zwei BC457C realisiert. Ströme und
Spannungen sind hier absolut unkritisch.
Der
Spannungskonverter LM2576T hat die angenehme Eigenschaft, dass er bereits einen
Steuereingang mitbringt, der ebenfalls bei low-Pegel den Konverter
aktiviert bzw. bei high-Pegel abschaltet.
Die
Schaltung im Detail
Der
vollständige Schaltplan ist in Bild 6 zu finden und nach den bisherigen
Erläuterungen weitgehend selbst erklärend.
Das
4*20 LCD-Display wird im 4-Bit-Modus an Port B betrieben. Ich habe mich für ein
LCD-Panel entschieden, dass auch ohne Hintergrundbeleuchtung ablesbar ist, um
den Strombedarf gering zu halten.
T1
bis T4 treiben die verschiedenen Schaltvorgänge. T5 und T6 schalten
wechselweise die Spannung vor und nach Shunt2 auf ADC0. Der zeitliche Ablauf
zwischen den Schaltern und dem ADC wird per Software gesteuert. Die
10mH-Induktivitäten in den Zuleitungen waren notwendig, um stabile Messwerte zu
bekommen. Ohne diese Spulen schwankten der ermittelte Stromwerte ständig. Am
Oszilloskop zeigte sich, dass kleine Spannungsrippel vom Spannungswandler trotz
der Kondensatoren auf den ADC gelangten. Da hier relativ geringe Spannungswerte
miteinander verglichen werden, führten die Rippel zu unschönen Schwankungen.
Erst die Induktivitäten brachten Ruhe in die Anzeige.
T7
schaltet das Solarpanel abhängig von der Batteriespannung ein oder aus. Die
15V-Zenderdiode schützt das Gate vor Überspannung. Die Solarpanel-Leerlaufspannung
kann recht nahe am zulässigen Grenzwert von 20V für diesen FET kommen, was
während der Schaltphase ein Problem sein könnte.
T8
schaltet den 12V-Ausgang. Der FET schaltet Ströme bis etwa 4 Ampere ohne
zusätzliche Kühlung klaglos.
Solarlader Schaltplan
Software
Die
Software habe ich in meiner „Haussprache“ C geschrieben. Das Programm ist
einfach und bleibt übersichtlich. Der Controller verbringt den größten Teil der
Zeit im stromsparenden Sleep-Modus. Als zeitgebendes Element wird der 16-Bit
Timer verwendet, der den Mikrocontroller 10 mal pro Sekunde aus dem Sleep-Modus
weckt. Das ist tatsächlich der einzige Zweck der Interrupt-Routine.
Das
Hauptprogramm initialisiert ADC, Timer und Sleep-Modus und geht dann in die
übliche Endlosschleife. Der Mikrocontroller misst bei jedem Durchlauf alle
Spannungswerte und fragt die Tasten ab. Bei jedem 10ten Durchgang, also nach
Ablauf einer Sekunde, werden die Mittelwerte der Messungen berechnet und in
Spannungs- und Stromangaben konvertiert. Alle Berechnungen finden als 32-Bit
Festkomma-Arithmetik statt. Die Daten werden auf dem Display ausgegebenen; und
abhängig von den Spannungswerten werden die Schalter gesetzt. Das ist
eigentlich schon alles. Der Controller geht wieder in den Sleep-Modus und wird dann
durch den nächsten Interrupt aufgeweckt.
Für
die Ansteuerung des LCD verwende ich die Standardbibliothek für Text-Displays
von Mikrocontroller.net (siehe Referenz). In der Datei lcd-routines.h
muss nur noch der LCD-Port auf POTRB und die Länge der Text-Zeilen auf 20
angepasst werden. Die CPU-Taktfrequenz F_CPU wird bereits im Hauptprogramm mit
2 Mhz (= 2000000) definiert. Dann sollte alles reibungslos funktionieren.
Die
Software hat eine eingebaute Auto-Shutoff-Funktion. Das Programm misst ständig
den Strom der Ausgänge und schaltet sie ab, wenn der Strom über einen oberen
Grenzwert steigt oder für einen einstellbare Zeit (z.B. 20 sec) unter einen
Grenzwert (z.B. 50mA) fällt. Das ist sehr praktisch, weil die Software auf
diese Weise die Ladung von angeschlossenen Geräten selbsttätig beendet, wenn
sie voll sind. Man kann auch einfach das zu ladende Gerät abziehen. Die
Ausgänge werden dann automatisch abgeschaltet.
Das Programm hat einige
Parameter, mit denen sich diese Grenzwerte einstellen lassen:
Bild7: Konfigurations-Paramete
Aufbau
und Lohn der Mühe: Der Lader im Alltagsbetrieb
Der
Aufbau ist unproblematisch. Wie für einen Prototyp üblich wurde das Gerät auf
einer Lochrasterplatte aufgebaut. Eine Europakarte ist mit den Bauteilen
weitgehend gefüllt. Der Spannungswandler ML2576 benötigt einen kleinen
Kühlkörper. Abgesehen davon ist keine weitere Kühlung erforderlich. Der
obligatorische Programmieranschluss für den Controller ist im Schaltplan nicht
eingezeichnet.
Die
Platine mit Tastern und Display findet zusammen mit dem Akku auf einer
Plexiglasplatte Platz. Das Solarpanel wird über Bananenstecker mit der
Schaltung verbunden. Wenn die Software aufgespielt ist, werden Strom- und
Spannungswerte auf dem Display angezeigt. Die Messung der Batteriespannung
braucht einen Abgleich. Dazu wird die tatsächliche Batteriespannung mit einem
angeklemmten Multimeter gemessen und der 1k-Trimmer so eingestellt, bis der
Wert im Display mit dem Multimeter übereinstimmt. Das ist alles.
Die Bedienung ist sehr
einfach: Den Verbraucher am USB- oder 12V-Ausgang anschließen, die
entsprechende Taste drücken, und schon läuft der Ladevorgang. Der entsprechende
Ah-Zähler und der Timer werden bei jedem Tastendruck am Anfang der Ladung
zurückgesetzt. Über die Reset-Taste lässt sich auch der Ah-Zähler für den
Solarstrom auf Null setzen. Das Display bringt alle interessanten Daten in den
Blick:
Display-Anzeige. Hier ist die
Batteriespannung ist mit 12.18V relativ niedrig. Zur Zeit produziert das Panel
0.5A und hat bisher 2.65Ah geladen. Der USB-Ausgang ist abgeschaltet. Der
12V-Ausgang liefert einen Strom von mehr als 2A und hat bereits 5.17Ah
abgegeben, was die niedrige Batteriespannung erklärt.
Das
Gerät ist nun schon einige Monate in Betrieb. Das Solarpanel befindet sich auf
dem Dach unserer Terrasse und ist nach Südwesten ausgerichtet. Erst nach der
Mittagszeit bekommt es direkte Sonne, dann aber bis zum Abend, was bei einem
sonnigen Tag je nach Jahreszeit etwa 3 bis 6Ah ergibt. Wenn das Wetter gut ist,
gibt es Strom im Überfluss. Wir haben einige Smartphones und Tabletts im Haus,
die meistens vollständig über den Solarlader betrieben werden. Ein schönes
Gefühl, wenn sich die Ladung ganz ohne weiteres Zutun im Akku sammelt.
Anders
sieht die Situation nach einige Tagen Regenwetter aus. Bei trübem Wetter liegt
der Ladestrom am Nachmittag nur bei 50mA, womit der Akku nicht voll zu bekommen
ist. Nach zwei oder drei Tagen schlechtem Wetter wird es eng, und wir müssen
auf konventionellen Steckdosenstrom ausweichen. In der Praxis kam das aber
selbst in den Wintermonaten nur selten vor. Sehr nützlich ist die Anzeige der
geladenen Amperestunden. Morgens, bevor ich das Haus verlasse, setzte ich den
Zähler über die Reset-Taste auf Null. Am Abend kann ich dann direkt ablesen,
welche Energiemengen das Gerät im Laufe des Tages gesammelt hat. Bei uns im
Haus hat sich ein sportlicher Ehrgeiz entwickelt, unsere Kommunikationsgeräte
mit reinem Solarstrom zu laden. Und die Sommermonate kommen ja erst noch …
Mit
dem Essen kommt der Appetit, und der Hunger nach Solarstrom wächst. Das System
hat sich als erweiterbar erwiesen. Inzwischen gibt es eine Version 2 mit einem
größeren Panel (65 x 45cm Fläche) und zwei parallel geschalteten Akkus, was bei
baugleichen und Akkus mit ähnlichem Alter kein Problem ist. Das Panel
produziert Ladeströme bis zu 2.5 Ampere. In der Schaltung müssen die
Shunt-Widerstände für die größeren Ströme angepasst werden. Außerdem bekommt
der FET am 12V-Ausgang eine kleinen Kühlkörper, so dass er größere Ströme
schalten kann. In der Software müssen nur die neuen Werten für die
Shunt-Widerstände angepasst werden.
Solarlader Version 2
Ich
habe einen 220V-Konverter fest integriert, wodurch das Gerät sehr vielseitig
wird. Mit dieser Anordnung lade ich auch ausgewachsene Laptops, was bei
Sonnenschein kein Problem darstellt. Die Laptop-Ladegeräte ziehen maximal
zwischen 6 bis 7 A, also 70 bis 80 Watt, was die beiden Akkus in geladenem
Zustand gut wegstecken.
Firmware-Download: Solarlader.zip
Referenzen
Elektronik-Labor:
5V-Solar-Stromversorgung. B. Kainka
http://www.elektronik-labor.de/Notizen/Solar5V.html
Mikrocontroller.net:
GCC LCD-Tutorial
www.mikrocontroller.net/articles/AVR-GCC-Tutorial/LCD-Ansteuerung