Solarenergie eignet sich ganz hervorragend zur Beleuchtung im Garten. Aber leider waren meine bisherigen Versuche, eine ansprechende Lampe zu finden, erfolglos. Deshalb habe ich mich auf den Weg gemacht, einen preisgünstigen Solar-Strahler so umzubauen, dass er meinen Ansprüchen gerecht wird. Hier folgt eine Beschreibung dieses Selbstbau-Projekts.
Dieser Bericht ist auch bei http://www.elektronik-labor.de/ erschienen.
Schnäppchen-Angebot aus dem Baumarkt
Der lokale Baumarkt hat immer wieder sehr preisgünstige Solarlampen für den Garten im Angebot, die dann verkaufsoptimiert in Regalen direkt an der Kasse liegen. So eine Lampe landete neulich auch in meinem Einkaufswagen. Zu Hause zeigte sich aber, dass die Lichtausbeute gering ist. Auch die kalt-weiße Lichtfarbe gefiel mir nicht. Nach dem Aufschrauben fand ich drei parallel geschaltete 5 mm-LEDs, die über ein vierbeiniges IC mit dem kleinen Solarpanel und einer NiMH-Zelle verbunden waren. Eine Festinduktivität deutete auf eine „joule-thief“-Schaltung hin.
Sicherlich kann man für den kleinen Preis nicht mehr Technik erwarten. Die Frage ist: Wenn ich bereit bin, etwas mehr zu investieren, wie kann man es besser machen? Auf der Wunschliste stehen: Helleres und warm-weißes Licht mit gleichbleibender Leuchtstärke, begrenzte Brenndauer am Abend zum schonenden Umgang mit der beschränkten Solarenergie und ein pfleglicher Umgang mit dem Akku für eine lange Lebensdauer.
Hier ein Vorschlag, der diese Kriterien erfüllt – und inzwischen unseren heimischen Garten an verschiedenen Punkten erleuchtet.
SMD-LED
Mehr Licht braucht in erster Linie eine stärkere LED. Die ursprünglichen 5mm-LEDs wurden durch eine SMD-LED, hier die STW8Q14C von Seoul Semiconductor ersetzt. Diese LED ist für 100mA Dauerleistung bei etwa 3V ausgelegt und in meiner bevorzugten warm-weißen Licht-Farbe zu bekommen. Diese LED ist trotz SMD-Bauform ausreichend groß, so dass man sie ohne Probleme auf einem Stück Lochrasterplatine auflöten kann. Zusammen mit einem Vorwiderstand von 10 Ohm auf der Rückseite der Platine kommt die neue LED auf den Reflektor und wird dort mit eine Tropfen Sekundenkleber befestigt. Das Strahlergehäuse vom Baumarkt erfüllt gute Dienste. Diese Anordnung produziert ein sehr schönes und kräftiges Licht.
Energieversorgung
Die stärkere LED braucht mehr Strom, was unweigerlich zu einem größeren Solarpanel und Energiespeicher führt. Von früheren Projekten hatte ich noch ein Panel von 11 x 6 cm Größe in der Bastelkiste. Das Panel liefert eine Leerlaufspannung von maximal 5.5V und einen Kurzschlussstrom von 150mA. Als Energiespeicher kommen drei NiMH-Zellen, Größe AA, aus dem besagten Baumarkt zum Einsatz. Die Akkus werden in Reihe zu einem „Battery-Pack“ zusammengeschaltet und liefern so eine Ausgangsspannung zwischen 3.0 und etwa 3.8V. Das Solarpanel versorgt den Akku über eine Schottky-Diode, die die Batterie vor Entladung schützt. Meine Messungen zeigten einen Ladestrom zwischen 130mA am leeren und 80mA am vollen Akku. An sehr sonnigen Tagen muss der Akku gegebenenfalls 80mA Dauerladung aushalten, was mir akzeptabel erscheint. Eine Abschaltung bei Vollladung ist also nicht vorgesehen.
Schaltzentrale
Für die Steuerung kommt ein bewährter ATtiny45 zur Anwendung. Der Mikrocontroller hat 3 Aufgaben:
-
- Erstens schaltet er die LED am Abend abhängig von der Spannung des Solarpanels ein und nach einigen Stunden wieder aus. Schließlich besteht kein Bedarf, die Gartenbeleuchtung die ganze Nacht zu betreiben. Stattdessen soll eine Akkufüllung auch bei schlechtem Wetter für mehrere Abende reichen.
- Zweitens sorgt der ATtiny als Step-Up Wandler mit Hilfe einer Speicherdrossel für eine konstante Spannung an der LED, so dass die Helligkeit immer gleichbleibend und unabhängig vom Ladezustand des Akkus ist.
- Und drittens beobachtet der Prozessor die Akkuspannung und schaltet den LED-Verbraucher aus, wenn die Akkuspannung unter den kritischen Wert von 3.0V fällt. So wird eine schädigende Tiefentladung des Akkus vermieden.
Der Mikrocontroller bekommt Input von 2 Quellen, die mit Hilfe des ADC ausgelesen werden: ADC-Kanal 2 misst die Spannung am Solarpanel vor der Schottky-Diode, und ADC-Kanal 3 die Akkuspannung. Als Referenz für den ADC wird die die interne Referenz-Spannung von 1.1V verwendet. Deshalb werden die externen Spannungen mit Spannungsteilern (100 versus 33 kOhm) auf das passende Niveau reduziert.
Der Ausgang PB1 schaltet die LED über einen P-Kanal FET (IRLML2244) ein oder aus. Seit einiger Zeit gibt es MOSFETs, die auch mit 3V Steuerspannung durchschalten. MOSFETs haben gegenüber bipolaren Transistoren den Vorteil eines sehr kleinen Durchlasswiderstandes. Dadurch verbessert sich der Wirkungsgrad der Schaltung. Außerdem kann das Gate direkt ohne Vorwiderstand an den Ausgang des Prozessors angeschlossen werden. Nebenbei bemerkt sind die hier verwendeten Power MOSFETs ausgesprochen preisgünstig und in der Tat die billigsten Transistoren, die ich bisher je erworben habe.
Eine Besonderheit dieser Schaltung ist die Spannungserhöhung mit Hilfe eines Step-Up Wandlers. Der Ausgang PB0 produziert ein PWM-Signal von etwa 32kHz, das mit Hilfe eines N-Kanal FETs (IRLML6244) die Speicherdrossel periodisch auf Masse legt. Die Schottky-Diode koppelt die erhöhte Spannung aus, die dann mit dem Elko geglättet wird. Das Ausmaß der Spannungserhöhung kann per Software über das Duty-Verhältnis des PWM-Signals eingestellt werden. Zur Regelung wird der aktuelle Spannungswert am Ausgang über einen weiteren Spannungsteiler auf den ADC-Kanal 1 gegeben. Je nachdem, ob der Wert unter oder über der Zielgröße liegt, wird das Duty-Verhältnis des PWM-Signals angepasst. Diese Regelung klappt sehr gut und funktioniert mit minimaler Hardware. Allerdings geht sie recht langsam von statten, was für diese Anwendung kein Problem ist. Es geht schließlich nur darum, die Ausgangsspannung (und damit den LED-Strom) bei abfallender Akkuleistung nachzuregeln. Und das sind Veränderungen im Minuten- oder Stunden-Bereich.
Software
Die Software ist recht überschaubar und passt in eine kurze Datei: solar_led.c Das Programm ist um 3 verschiedene Systemzustände herum organisiert:
- STATE_DAY ist der Betrieb am Tag. Der Akku wird geladen und die LED ist ausgeschaltet.
- STATE_NIGHT ist der Status nach Einbruch der Dämmerung. Wenn die Spannung an der Solarzelle unter einen Grenzwert absinkt, wird die LED eingeschaltet.
- STATE_BAT_LOW nach Absinken der Akku-Spannung unter 3.0V, und STATE_TIME_OUT nach Ablauf der geplanten Leuchtdauer sind eigentlich zwei verschiedene Zustände, die aber identische Eigenschaften haben. In beiden Fällen ist die LED ausgeschaltet. Das System wartet auf den nächsten Morgen.
Zur Verwaltung der Zustände wird ein regelmäßiger Timer-Interrupt verwendet, der die CPU einmal pro Sekunde aus dem Sleep-Modus weckt. Hier verwende ich den Watchdog-Timer, der im Gegensatz zu den anderen Timern den Vorteil eines sehr geringen Strombedarfs hat. Außerdem erlaubt er die Verwendung des „PWR_DOWN“ Sleep-Mode, was den Chip auf minimalen Stromverbrauch trimmt. Die Schaltung verbraucht bei abgeschalteter LED weniger als 30 µA, was hauptsächlich dem Spannungsteiler geschuldete ist. Der Watchdog-Timer hat den Nachteil geringerer Frequenzstabilität. Bei dieser Anwendung kommt es aber nicht auf exaktes Timing an.
Für den Step-Up Wandler produziert der ATtiny ein PWM-Signal, dessen Duty-Verhältnis über OCR0A eingestellt wird. Der Wert 255 entspricht dem kleinsten Duty-Cycle. Kleinere OCR0A-Werte erhöhen den Duty-Cycle und damit die Ausgangsspannung. Die Routine zur Regelung wird einmal pro Sekunde aufgerufen und ist sehr minimalistisch. Mit jedem Durchlauf wird OCR0A um den Wert 1 erhöht oder vermindert. Wie schon erwähnt ergibt das eine sehr langsame Regelung. Natürlich könnte man einen effizienteren Regelalgorithmus implementieren, aber für diese Anwendung ist die Langsamkeit eine sehr sympathische Eigenschaft. Aus einer nostalgischen Perspektive ist es schön zu sehen, dass die Lampe nach dem Einschalten 30 oder 40 Sekunden benötigt, um volle Helligkeit zu erreichen, ganz wie die alten Natriumdampflampen in früheren Straßenlaternen …
Die Konstante TIME_OUT definiert die Brenndauer der LED in Sekunden. Im Programm-Listing ist der Wert von 14400 vorgegeben, was 4 Stunden entspricht. Hier sind natürlich beliebige andere Werte möglich.
Das Programm verwendet eine Umschaltverzögerung von 1 Minute. Ohne diese Verzögerung besteht die Gefahr, dass in der Nacht eine kurzzeitige Beleuchtung der Solarzelle (z.B. ein vorbeifahrendes Auto) den Prozess neu startet. Die Dauer der Verzögerung kann über die Konstante SWITCH_DELAY eingestellt werden.
Der ATtiny arbeitet in dieser Anwendung mit dem internen 8MHz Taktgenerator. Dazu muss die CKDIV8-Fuse gelöscht werden. Alle anderen Fuse-Einstellungen bleiben unverändert.
Praktisches
Mit etwas Geduld und einer ruhigen Hand kann man die Schaltung auf einem recht kleinen Stück doppelseitiger Lochraster-Platine aufbauen. Das folgende Bild zeigt ein mögliches Layout.
Die FETs sind kleine SMD-Bauteile, die aber mit dem Lötkolben noch einigermaßen handhabbar sind. Es hat sich bewährt, sie ziemlich am Anfang der Lötarbeiten einzubauen. Dafür lasse ich kurze versilberte Kupferdrähte auf der Oberseite der Platine passend herausstehen, auf die die FETs dann aufgelötet werden. Dasselbe gilt für die SMD-Speicherdrossel, die aber erfreulicherweise wesentlich grösser ist.
Vor dem Einbau in das Gehäuse muss der gewünschte LED-Strom über den Trimmer eingestellt werden. Den LED-Strom kann man sehr einfach als Spannung am 10 Ohm-Vorwiderstand der LED messen. Nach dem Anschluss eines nicht ganz voll geladenen Akkus, jetzt noch ohne Solarzelle, sollte die LED kurz aufleuchten als Funktionskontrolle und dann erst einmal dunkel bleiben. Jetzt heißt es Warten auf den verzögerten Zustandswechsel. Nach 1 Minute schaltet sich die LED ein. Damit beginnt die Regelung der Ausgangsspannung. Im Sekunden-Rhythmus steigt der LED-Strom an, um dann bei einem Maximalwert zu verharren. Am Trimmer lässt sich dieser Wert einstellen. Sinnvolle Werte liegen zwischen 0.7 und 1.0 V (entspricht 70 bis 100 mA). Allerdings braucht der Einstellvorgang etwas Geduld, da die Software auf jede Änderung in kleinen Schritten reagiert.
Das Gehäuse besteht aus der um etwa 45 Grad schräg gestellten Solarzelle und Plastikteilen für Boden, Seiten und Rückwand, die aus einer Kunststoffplatte aus dem Bastelbedarf zugeschnitten werden. Kleine Holzleisten dienen zur Stabilisierung. Die Teile werden mit 5-Minuten Epoxy verklebt, was auch zur Dichtung gegen Spritzwasser dient. Die Solar-LED ist für den längerfristigen Einsatz im Garten gedacht. Zum weiteren Schutz vor Regen werden Elektronik und Akku in Schrumpfschlauch untergebracht. Der Einbau sollte aber nicht komplett luftdicht sein, um Kondenswasser zu vermeiden. Zum Schluss wird die Rückwand aufgeschraubt.
Dem Einsatz im Garten steht jetzt nichts mehr im Wege. Es ist erstaunlich, wieviel Licht diese kleine LED produziert. Das Schöne an solar-getriebenen Leuchten ist, dass sie (hoffentlich) täglich und klaglos ohne weitere Zutun ihren Dienst leisten.
Ressource: Der Schaltplan, das Lochraster-Layout und die aktuelle Firmware (Atmel Studio 7) sind auf der Ressourcen-Seite verfügbar zum Download