Arduino Christmas Candelabra
by Patrick Tollgren in Circuits > Arduino
1585 Views, 10 Favorites, 0 Comments
Arduino Christmas Candelabra
In Sweden, all workplaces have a tradition of having Christmas lights in the windows during Christmas. I wanted to do something extra with the traditional Christmas window candelabra with white light and do something modern with it.
It was a 1 meter long candlestick with 20 lights with SK6812 (WS2812 but WRGB (+ White) instead of RGB) and an Arduino Mini Nano. Everything is powered by a normal 2.4 A usb charger or a power bank. If you want to use WS2812 instead of SK6812, it works fine. You can only adjust the code a bit because SK6812 addresses 4 colours (WRGB) but WS2812 only 3 (RGB). The advantage of WRGB is that the colours become more pastel coloured and the white light used when the candlestick is "normal" becomes really white and not a mixture of RGB.
Supplies
SK6810 LED WRGB with PCB https://www.ebay.co.uk/itm/25-x-SK6812-LED-RGBNW-5...
Arduino Mini Nano https://www.ebay.co.uk/itm/331697013838?hash=item4...
Fixing the Christmas Window Candelabra
You can use any standard 110 / 220V Christmas window candelabra you want. The important thing is that it has the right number of lights. Most are normally 7-9 lights but there are those that have more.
NOTE! make sure it is not plugged in before you start working with it. Start by tearing out all the power cables from the candelabra. You can usually access the cables from the bottom. Many have a plastic or paper strip that covers all the electricity in candelabra. Sometimes you loosen the feet on candelabra and then you close the strap to the side, on others they are stuck with a few screws.
You now see all the cables and they will all be removed. You will not use any of them so use cutters. Even the power cable to the wall socket must also be removed.
Now push out the lamp holders from below with tweezers or a screwdriver. They are just pressed into the candlesticks. Remove all metal from them.
Connection of Electricity and LEDs
I have used SK6812 which is mounted on a small PCB that also acts as a cooling plate. All LEDs need 4 cables. + (RED), - (BLACK), Din (GREEN), Dout (BLUE).
I usually carve a small piece of wood or use epoxy clay to make a small surface that the LED can sit on. I use a drop of heat glue to secure it, but I only do that after I have tested so that everything works.
NOTE! It is important to paint the inside of the candlestick with something opaque that does not let any light through, otherwise candlesticks that are made of plastic will light up from the inside as well, which does not look so nice. It is much easier to do this before attaching the LED.
All RED must be connected together and all BLACK must be connected together. The easiest way is to have a RED and a BLACK wire that goes from one side of the candelabra to the other, and then you connect each LED to them.
There is very little current used so you can use thin cables. However, it is important that it is multi-wire and not a solid cable. Solid cables detach very easily from the soldering points and you do not want to have to open everything again to re-solder a cable.
Each LED has a Din (GREEN) and a Dout (BLUE). The LED closest to your Arduino (LED1) should connect its Din (GREEN) to the Arduino Mega (Pin D3).
LED1s Dout (BLUE) must be connected to the next LED (2) Din (GREEN).
LED2 BLUE -> LED3 GREEN. The last LED does not connect its Dout (Blue) to anything.
If everything is connected correctly, you have 3 cables that go to your Arduino Mega Nano.
RED -> Connected to all RED cables on all LEDs
BLACK -> Connected to all BLACK cables on all LEDs
GREEN -> Which is close to Din on LED1
NOTE! You can not test if it is properly connected by connecting power to the LEDs. This is done with the Arduino later.
NOTE! Do not glue lamps or anything else yet!
VOLUNTARY
To ensure that there is even current to all lamps, a capacitor is normally soldered to the end of the current loop. For Arduino and LEDs, it is usually 600-1200uF 6-10V.You can reed more about it at
Arduino Mega Nano
Arduino Mini Nano is a very small Arduino so try to carve out a cavity that it can fit in your candelabra. Keep in mind that you need to be able to connect a USB mini connector to power it.
NOTE! To protect your Arduino, you need a 330-470 ohm resistor between the Pin D3 and LED1. Read more about it at https://learn.adafruit.com/adafruit-neopixel-uber...
RED -> Connects to Pin 5V
BLACK -> Connects to GND or to the shield of the USB mini female.
GREEN -> Connects to D3
THE CODE
Base was originally taken from for the code made by Ed Nisley (ednisley) https://gist.github.com/ednisley/431b654cc1bbf590...
But after a new candlestick build with an Arduino Lenorado clone with USB-C I had to remake all the code with ChatGPT.
Here is the result. It's quite difficult to capture it right on film.
I have also tried to make a version of Erik Katerborg Packman Lamp (https://codebender.cc/sketch:368369#Pacman%20Lamp), but unfortunately it will not be super good with WRGB as the yellow Packman color will be more green than yellow. But SK6812-Packman is rewritten for SK6812 for those who want to try.
Diffuser for the Candlestick
Now that all the electronics are working and the lights are on, it's time to attach all the LEDs and put on a ball of some kind on top.
Many people use ping pong balls as a diffuser for LEDs. Ping pong balls have a dark edge from the manufacture and you have to keep that in mind if you use them so that the edge is symmetrically placed on all LEDs.
Here is Bitluni's guide to a ping pong wall and he goes through how to work with them in the best way.
I bought a cheap Christmas light string that had clear balls with white yarn strings on. I think it turned out nicer than ping pong balls. No matter what you use, you attach it with heat glue.
The next project will be to add a speaker that plays Nyan Cat when it shows the rainbow ;)