Introduction: Arduino Christmas Tree

About: A passionate maker first and then an experienced firmware developer, I'm currently working on Connected Interactive Devices

This stunning Christmas tree lights up automatically when the environment light goes low under a defined value. It is based on an Arduino Pro Mini board and a RGB LED strip. It uses a BH1750FVY sensor for measuring the light. A push button allows to set different LED colours and effects or to turn it ON when the light is not low.

Bill of materials: paper, pencil, ruler, balsa wood boards and beams, cutter, sandpaper, rapid glue, hot glue (optional), soldering iron, paint brush, acrylic painting, some gems, RGB LED strip, Arduino pro mini board, an external 12 V power supply and few electronic components that you can easily identify from the schematics. For more details see following steps.

Step 1: Wood Working

I bought a balsa wood bundle with squared beams 1 cm X 1 cm and two kinds of boards tick respectively 2 mm and 4 mm.

Design a Christmas tree shape as you like with a pencil on a A4 paper (see related figure or do it as you like). Then copy it on a balsa wood board and repeat for four pieces. Then cut them with a cutter. Use a ruler for a more precise cut. Smooth the edges off with a piece of fine sandpaper. Paint the obtained four pieces with white acrylic paint or another colour that you prefer. Wait for drying.

In the mean time let's do the tree base which will contain the electronic components. For doing that, draw four rectangles with two different shapes: two of them 14cm X 7.5cm that represent the front and the rear panels; the other two 13cm X 7.5cm for the bottom and the top panels. Finally draw two squares with a side of (7.5cm X 7.5 cm) that represent the two lateral panels. Cut and smooth the edges off.

Take one rectangle with a shape of 13cm X 7.5cm and draw and cut four splits and a squared hole that allow to insert the four tree shaped pieces and the main beam in the middle. The four splits are 2cm X 0.5cm each and the central hole is 1cm X 1cm. Take one rectangle with a shape of 14cm X 7.5cm and cut three holes for the sensor, the push button and the power supply socket. I suggest to cut them as three small squares because it is easier than a hole shape if you use a cutter. Finally, draw and cut a small square 2cm X 2cm which will be put on the top of the beam.

Paint all the obtained pieces and wait for drying. After that, Glue the rectangular panels as in photo to obtain a box and wait for drying. Leave the panel with the three holes as the last one in order to easily install the electronic board later.

Step 2: LED Strip

First, cut a beam 21 cm long and paint it with white acrylic paint or another colour you like. The beam has a squared shape of 1cm X 1cm so the LED strip fits perfectly on it. Cut two LED strips 20 cm long each and stick them on two sides of the beam. The two string shall have a contacts side exactly on the top of the beam and be sure that the LED contacts of the two strips are speculars (+12V, R, G, B singnals are on the same line). If you did correctly you should be able to connect the two strings together by soldering four wires on the top of the beam (see photo). The two LED strips are now connected as a unique longer strip. Finally, choose a strip side and solder four wires from the contacts on the bottom to a pin header. Of course, you are free to change connection type according to your changes on the electrinic board (see next step).

Step 3: Electronics

Make the electronic circuit on a strip-board as shown in the schematics. There are no specific rules for doing this. I suggest to use the same BH1750FVI sensor breakout board because it is easy to fix it directly on a hole through the panel in order to receive external light more precisely. I also reused some N MOSFET that I had at home (TN2404KL) so you can choose another part number. Be sure that the maximum drain current is 0.5 A at least and that they are N (not P) MOSFET since the LED strip is a common anode type (common power line is +12 V). For any details about electronics don't hesitate to ask in the comments below or send an email. Me and other people here will be happy to help you. Anyway, a minimum of experience with electronics is required. You can modify the original schematics and even do your own PCB. I'm curious to see your work!

I suggest to use a voltage regulator to reduce the external supply voltage from 12 V to 6/6.5 V for the Arduino Pro Mini in order to have a lower power dissipation on the internal LDO voltage regulator considering also that there is a tantalum capacitor which is quite sensitive. Indeed my first prototype blew up after a while when I directly powered it up with 12 V. So I put a LM317 regulator between 12 V and the Arduino board and it is still working perfectly :) .

The photo of the electronic board shows the BH1750FVI light sensor breakout board not yet fixed on its final position. So, take care to place the sensor chip directly on its reserved hole in the rear panel. I used rapid glue and tape to keep it stable. Mount the push button and the power supply socket through the dedicated two holes and connect them on the board. I used pin headers and soft wires and I finally put some hot glue (see photo).

Flash the Arduino with my software available on GitHub ( Take care to trim the light threshold for your specific light environment. Anyway I think that it should work anywhere. For final test, see next step.

Step 4: Final Assembly

Once everything is dried and the electronic stuff is ready, you can move to the final step. Insert the beam and the four tree shaped pieces in the corresponding splits in the top panel. Glue them underneath the panel and wait for drying. Be careful to pass the LED strip wires through the squared hole. Take the small square 2 cm wide and glue it on top of the beam just above the wires. You can put some hot glue before if you prefer.

Mount the electronic board inside the box and glue the last panel with the push button. Wait until the glue is dry. Cut four pieces of wood and glue them 0.4 cm from the upper edge inside two panels (see photo).

Now, it is time to decorate your tree as you like! Glue some gems and attach some decorations.

Finally, connect the LED strip wires to the electronic board and slot the panel with tree on top of the box. The panel shall fit inside the box and lay on the four pieces of wood.

Power it up with an external 12 V power supply and test it; push the button and select all the pre-defined light effects. Next, turn it off with a sufficient environment light and verify that the tree stays off. Then, reproduce a dark light environment and verify that it lights up automatically!

Do it, personalize it, improve it and share!

Make It Glow! Contest

Participated in the
Make It Glow! Contest