If you have purchased some solar garden lights from the hardware store, the chances are you discovered that...
Not really that bright
Lifespan is poor
They don't shine all night
The lack of charge/discharge protection for the battery (typically a single-cell nicad) has a large impact on the lifespan. But they are cheap.....
Time to build some seriously overkill garden lights! So this is what I came up with.
ATtiny45, Single-cell Lipo,1000mAh, real charge control (CN3083), over-discharge protection, 2 superbright white LED's, serial o/p.
The AVR spends most of its time asleep, waking up now and again to monitor the solar panel and battery voltages. Every 2 min, this info is available from a serial pin (9600bd) which sends out a string like....
giving a human readable value of the voltages from the solar panel and battery. Handy during development to graph the charge/discharge curves.
Tracking the voltage from the solar panel allows for better detection of when it is actually dark. The AVR looks for a set of consecutive values below a threshold to decide if its time to turn on.
It does not turn on at dusk, but waits for near-dark (all tweakable in software of course).I did consider fitting a small 2.4Ghz radio module but held-off for this one, perhaps next version. I got some RFM70's to try off ebay (tiny!).
|Overkill solar garden light|
This is the circuit, or a better quality PDF from here
Its built on a small double-sided PCB about 40mm square. The PCB's were produced in Kicad and manufactured by Seed Studio's PCB service.
The LED string connects into the large screw-terminals.
In this application 2 LED's gives a good balance between available light and power consumption. The LED driver (ZXSC310) will run 6 leds but with a corresponding reduction of batter life.
The solar panels come from Seed Studio and are very well priced so I opted for the 1W version. You could probably get away with the 0.5W panel if you have loads of sunlight and the lights are positioned well or you dont need them to run all night.