Smartphone-Stromversorgung mit einem Solarpanel

von Stephan
Laage-Witt

                      Elektronik-Labor  Bastelecke  Projekte  Notizen

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 netz­betriebener 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, Spannungs­teilern 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 Ausgangs­spannung 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

 


Elektronik-Labor  Bastelecke  Projekte  Notizen