ATTiny13 solar cell charger [Hardware]

Ein Arbeitskollege hatte den Wunsch einen Lithium-Ionen-Akku mit zwei Solarmodulen effizient zu laden. Er hatte selbst jedoch keine Idee und Zeit sein Vorhaben umzusetzen. Ich habe angeboten das Ganze zu realisieren, da mich die Schaltungstechnik sehr interessiert hat.

Gegeben waren zwei dieser Solarmodule

IMG_3106

und ein LiPo mit 3,7 V Nennspannung und eine maximale Ladespannung von üblichen 4,2 V.

Da eine Solarzelle in einem bestimmten Arbeitspunkt, je nach Beleuchtung, ihre maximale Energieabgabe entfaltet, musste die Solarzelle von der Batteriespannung entkoppelt werden. Also nicht einfach Solarzellen an den Akku schalten und dann bei einer maximalen Akkuspannung abschalten.

Meine Lösung ist, die zwei Module in Reihe zu schalten und ein Abwärtsschaltregler (StepDown Converter) zwischen Solarzellen und Batterie zu bringen. Der Schaltregler wird über einen gerade mal 8-pinnigen Mikrocontroller geregelt. In dem µC läuft ein einfacher MPPT-Algorithmus. Der Mikrocontroller läuft direkt über die Versorgungsspannung vom LiPo-Akku und misst mit seinem ADC drei verschiedene Parameter: Spannung der Solarzelle, Stromabgabe der Solarzelle und Spannung der Batterie.

Es ergeben sich ein paar einfache Anforderungen an die Schaltung:

  • einfacher Aufbau, keine teuren spezial ICs
  • stromsparender Betrieb des µC (am Tag / beim Laden)
  • stromsparender Schlafmodus des µC (in der Nacht / Standby)
  • Laden des Akkus bei Ladeschlussspannung stoppen

Um möglichst effektiv zu sein, war mein erster Ansatz einen synchronen Abwärtswandler zu realisieren. Dabei wird die Energie der Spule beim Abschalten nicht durch eine Diode entladen, sondern durch ein geöffneten MOSFET. Leider musste ich recht schnell feststellen, dass dies bei zwei Spannungsquellen dazu führte, dass die Batterie entladen wird. Dies könnte man zwar mit weiteren Software-Maßnahmen  verhindern, ist aber deutlich zu kompliziert für dieses kleine Projekt. Die Verluste die durch die 0,7 V Vorwärtsspannung der Diode entstehen, können hier in kauf genommen werden.

Der Schaltplan mit synchronen Abwärtswandler (LTSpice):

syncron_schematic

 

Der vereinfachte Schaltplan mit Abwärtswandler (LTSpice):

simple_schematic

 

Achtung: Der Schaltplan ist nicht ganz vollständig! In dem Solarmodul befindet sich eine weitere Diode, die als Verpolungsschutz gedacht ist. Sonst könnte sich die Batterie über die Solarzelle durch den MOSFET M1 entladen.

Es gibt zwei verschiedene Massepotentiale in der Schaltung. Damit der µC die Spannung des Strommessshunts (R10) auslesen kann, muss die Masse des Controllers noch vor dem Shunt abgegriffen werden. Damit hat der µC ein leicht unterschiedliches Potential zum Rest der Schaltung. Das sollte beim Ansteuern des MOSFETs M1 beachtet werden. Da der maximale Strom der Solarzelle laut Typenschild 0,81 A beträgt, beträgt die Spannungsdifferenz maximal 0,22 Volt, was in dieser Schaltung als unkritisch zu betrachten ist.

Schaltungsdetails – Einfachheit ging vor

Die Schaltung hat aktuell auch noch ein Henne-Ei-Problem. Wenn die Batterie tiefen-entladen ist und abschaltet, kann der µC den Schaltregler nicht aktivieren, um die Batterie zu laden. Das Problem könnte man durch etwas Dioden-Logik beheben, wurde aber für die ersten Tests bewusst nicht getan.

Die Spulendimensionierung sollte man nach den Maximalangaben des Typenschild vornehmen. Dabei sollte erwähnt werden, dass der ATTiny13, der in meiner Bastelkiste zur Verfügung stand, weniger geeignet ist als ein ATTiny25. Dieser hat den Vorteil, dass der Timer über ein interne PLL mit 64 MHz betrieben werden kann. Was bei einem 8 Bit Timer zu einer Frequenz von 250 kHz führt. Da der ATTiny13 in meiner Schaltung nur mit 8 MHz internen Takt betrieben werden kann, liegt die Schaltfrequenz acht mal tiefer. Dies führt dazu, dass die von mir eingesetzte Spule mit 100 µH schon recht unterdimensioniert ist.

Die Zellenspannung und die Akkuspannung werden über Spannungsteiler gemessen. Da die Spannungsteiler nicht abschaltbar sind, wird hier immer ein entsprechender „Leckstrom“ fließen.

Die Push-Pull-Stufe aus einem PNP (Q2) und NPN (Q1) bipolaren Transistor ist der Klassiker schlechthin, um den P-MOS M1 schnell durchzusteuern. Dabei sorgen die 4,7 V Zener Dioden D1 und D2 dafür, dass die Gatespannung am P-MOS nicht überschritten wird. So ist es möglich auch 30 Volt am Eingang der Solarzelle (VCC_SOLAR) anzulegen. Bei Q5 ist der Emitterwiderstand R4 besonders wichtig. Dieser hindert den NPN zu sättigen, wenn der Mikrocontroller (PB0) einen High-Pegel ausgibt. Dies macht ein schnelles Ein- und Ausschalten erst möglich.

Baut man die Schaltung auf Lochraster auf, könnte es so wuselig wie hier zugehen:

 

Für den Messaufbau eignet sich mein selbst entworfenes PowerMeter optimal. Dazu habe ich einen weiteren Messshunt (0,27 Ohm) in die Plusleitung der Solarzelle eingebracht.

IMG_3102

 

Auf dem Bild ist zu sehen:

  • ein LiPo Akku mit ca. 900 mAh aus einem Handy (mitte links)
  • der Lochrasteraufbau der Schaltung (neben dem Akku)
  • mein Atmel ICE 3 Debugger, der per Debug-Wire an den Tiny angeschlossen ist (silberne Box in der Mitte)
  • die zwei Solarmodule
  • das PowerMeter (schwarze Box) und der Messshunt (unten links)
  • meine Lupenlampe schwebt über den Solarmodulen
  • eine Oszi-Spitze hängt am PWM-Pin des Mikrocontrollers (siehe Nahaufnahme)

IMG_3103

 

Die Messergebnisse sind bisher sehr zufriedenstellen. Die Wirkleistung konnte ich aber noch nicht ermitteln, da die Module erst ihre volle Leistung bei Tageslicht und direkter Sonneneinstrahlung entfalten. Die Bestrahlung mit vorhandenen Lampen sorgt für Teilbeschattungen und hat nicht annähernd die Energie von Sonneneinstrahlung.

Die Graphen die ich mit dem PowerMeter aufgezeichnet habe, könnte ich natürlich auch als Grafik ohne Windows-Forms präsentieren. Ich habe mich aber dagegen entschieden, um gleich die Benutzung etwas zu verdeutlichen.

Ein simpler Leerlaufspannungstest mit einer Lichtquelle (an/aus) von weiten. Der Strom steigt leicht durch die erwähnten Mess-Spannungsteiler an. Die Einstellungen des PowerMeters sind zur Verdeutlichung aufgerufen.

Voltage_no_load_light_on_off

 

Steigerung der Lichtleistung über 30 Sekunden. Man sieht deutlich wie der ATTiny bei elf Sekunden aus dem Sleep erwacht und den MPPT-Algorithmus anfährt. Durch die fehlende zweite Y-Achse ist das Leistungs-Diagramm nicht deckungsgleich mit dem Strom-Spannungs-Diagramm.

raising_sun_test

 

Schwenken einer zweiten Lichtquelle. Diesmal mit einer Glühlampe. Es ist ein deutlicher Leistungsanstieg zu erkennen. Dieses mal habe ich das Leistungs-Diagramm etwas eingerückt, damit es deckungsgleich ist.

second_light_test

 

Weitere Messungen möchte ich demnächst bei Tageslicht vornehmen und hier veröffentlichen. Außerdem soll eine Beschreibung der Software für den ATTiny folgen. Wer die Software schon einmal einsehen möchte, der kann diese wie immer auf meinem Github-Account herunterladen.

download software from github

 

 

Advertisements
Dieser Beitrag wurde unter Allgemein veröffentlicht. Setze ein Lesezeichen auf den Permalink.

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s