Usual Christmas lights are little bit boring, so I've decided to create more sophisticated ones. I'm able to control each LED and set up the light intensity from 0 to 100% of allowed current.
Step 1: Required Materials, Tools and Skills
You will need to buy some material, have some tools and basic skills.
- Fine motor skills for soldering LEDs and drivers to PCBs
- Basic knowledge of electronics
- Basic knowledge of Arduino programming
Crucial devices are Arduino and LED drivers. I'm using Arduino Nano v 3.0. It has enough memory space, speed and is in good size. LED drivers is TLC59731 from Texas Instruments (Product page). It is 3-Channel, 8-Bit, PWM LED Driver with Single-Wire Interface. It is designed as driver for RGB LED, but is possible to use it as driver for 3 separated LEDs. Last, not least you will need some LEDs. It is up to you, which color, light power and size you will choose. But be careful, the driver has some current limits on its outputs, check datasheet parameter Iol. I'm using 0603 Series LED Super Bright White Color.
You will need PCB for drivers and LEDs. You can create your own, but I'm so lazy so I've used prototyping boards from eBay. For driver there is nice prototype adapter. On eBay try to search "SOP8 SO8 SMD Prototype Adapter PCB". You will find a lot of sellers. For LEDs there is easy way too. It depends on your SMD LED, but universal solution exists. Try search (on eBay, of course) "0805 0603 0402 SMT DIP Adapter SMD".
It is up to you, how you will power it. I used Mean Well power supply, RS-25-5 (Product page). It is 5V/5A 88 ~ 264 VAC nice power supply. If you want to use more or less LEDs, you should calculate how much power you will need.
Of course, you will need more stuff as wires, solder, colorless shrinking tube, box for Arduino, box for power supply, connectors/sockets etc.
Useful tool is definitely a wire stripper, because you will speed up your work with it. Then soldering station is important too. You will need with a good tip for soldering SMDs to the boards. I've used also "3rd hand" and clamp.
Step 2: Soldering
After some proof of concepts I've realised that bes way is to solder all chips and LED at the same time. PCBs are sold together, so don't separate them too soon. If you will use both sides for LEDs, then be careful to have right polarity on both sides.
Step 3: Assembling
It is quite easy but boring work. Small hint: Better is to prepare all wires with appropriate length instead off cutting wires on place.
Exact schematics of whole project will depend on your design, here is schematics of the smallest reasonable unit.
Step 4: Arduino Software
The biggest issue was timing. I was scared that Arduino libraries are to slow for precise timing. There were not so much examples/projects, how to utilise Arduino for control TLC driver. So I decided to try it myself. I'm not good in ASM, so Arduino's libraries were the only ones which I want to use. But after few experiments with counters and serial port (used as debug output) I made it, it works!
Then I've created small library for control of TLC/LEDs in my project and later a I've added some animation.
Here it is: GitHub
Please, use it as you want, lots of animation code is not effective, but it works for me :) Feel free to add your own and share it.
Step 5: Final Installation
After soldering all parts together, then don't forget on some protection against weather (rain, snow, etc). Useful is silicone in tube and shrinking tube. Cold is not problem itself, all devices are at least -20 °C ready. I've used boxes for 230V (European common voltage) power lines from DIY/Hobby store.
If there is any question feel free to ask me.