Since there are other similar projects Christmas Lights Arduino and WS2811,Arduino Xmass tree I find them too complicated for newbies. So I decided to publish this simple and costless project, that you can try before facing more complicated ones, with even Bluetooth control and vu-meter.
My family enjoyed designing the patterns, and I enjoyed coding them. I hope that you also enjoy it.
The tree decoration is made by my mother, I should tell her to share
Bill of materials- Arduino nano. I ordered one with pins unsoldered since I soldered cables directly on the board.
- 5V WS2811 50 LED strip. There are also with green cables that are more discrete.
- Switch. One with a long button is better.
- USB charger. A used one from a cellular phone.
- USB Cable type A male <-> type mini-B male. Reused from an old camera.
- Plastic box. Reused a candy one.
- A cable tie.
- Three-wire cable.
- Soldering tin.
- Glue for the glue gun.
- Insulating tape
- Heat shrink tube
- Drill, drill bit.
- Glue gun.
- Soldering iron.
- Scissors.
Power
We will power everything through the USB connector. The led strip will be powered through the VIN pin for not overloading the voltage regulator.
LED Strip
There are many types of addressable LED strips. The ones based in WS281x are very common. This chip family makes the Pulse Width Modulation (PWM) for you for each color, based on the data received in the data input pin. It uses the first block of data with every color and pushes the rest of the data flow to the next chip trough the data out pin. Fortunately, there are Arduino libraries that make all this work transparent for you.
Microcontroller
Since the WS2811 LED strip needs a 5V data input we choose an Arduino with 5V logic. A 3.3V one could also be used, but we should make some sort of logic level adaptation. If not, it could work but a little voltage drop could drive to incorrect data or no data at all arriving at the LED strip.
Simpler microcontrollers as ATtiny85could be used if you want to cut more the cost. Since we only need 1 output and one input. Depending on the versions the flashing is more difficult if it does not have a USB port.
Switch
One with a long button will suit better to go through the case, then you can actuate it without a pencil.
It is connected to GND because we use the internal pull-up resistor in Arduino to avoid false signals. Then in code a 1 will be no pulsated, and 0 pulsated-
CodeCheck at https://gitlab.com/BitaMind/christmaslights/tree/master/arduino/ChristmasOneFile
There is also a multifile class version that you can try.
Tips to make a new animation.
- Create a new method of your choice.
- Increase the total number of animations (MAX_MODES) by one.
- Modify AnimationUpdate for the new case.
Comments
Please log in or sign up to comment.