Arduino Christmas tree project

Hello folks,

I'm brand new to the forum and new to hands-on DIY. What I would like to do is use an Arduino to have more granular control over what my LED lights do on the Christmas tree. I have seen some wonderful video examples of syncing outside lights to music and have read through various tutorials so I know that what I want to do is feasible. The aquarium examples are also really nice.

Some background, I currently have ten light strands that will likely expand to 14 this year. So I believe I'll need 16 channels. I have some retail controllers that I plug into that are 8-function controllers. However, I find only two of the functions (steady on and slow fade) are usable. The other six fluctuate speeds in a cycle and get way too fast and flashy for me to enjoy on an inside tree.

So that leads me to a DIY project. I think the actual hands-on portion of this will be rather straightforward; I'd like the ability to tell each strand what to do independently of the others. I think this year will be more of a proof of concept as I learn the code and experiment with different blends of fade, chase, and blink. Perhaps next year I'll be able to get around the code so that I can create custom shows based on some of our favorite Christmas songs.

Any advice and helpful hints are appreciated in advance and I look forward to someday taking other projects beyond Christmas time.

If you really wanna go fully hard core, and have a big budget, you can't beat Light-O-Rama I've been using that system for 10 years now and have a massive display with 20,000 LEDs on 1200 channels. I'm guessing though that you are looking for something much cheaper and simpler.

Hooking 120 Volt AC lights up to an Arduino, without dimming, is pretty simple. Control each strand with a relay or triac connected to an Arduino pin. Dimming gets a little more complicated as you will need a zero-crossing-detector to detect the sine-wave form of the 120VAC and time the firing of your triacs to coincide with that. Dimming with DC is easier, since you can use the PWM function, and you can run almost all light strings (incandescent or LED) from DC, you just need a big enough rectifier. Writing a sketch to flash various patterns is mostly a matter of creativity.

Another thing to look at is DMX, which is how the big boys control the professional stage lights. and you can make a DMX controller using an Arduino. You can even combine an Arduino running DMX with Light-0-Rama! I did that in order to animate some things that didn't connect easily to the standard LOR controllers, and it was cheaper too.

Also cool are ws2812 LED pixels, aka neopixels, which are strings of RGB LEDs that can all be individually controlled. They are available from Adafruit, eBay, and AliExpress and are easy to connect to an Arduino

Here are a few more resources for you: