3 Channel Arduino Powered Christmas Light Controller!





Introduction: 3 Channel Arduino Powered Christmas Light Controller!

For Christmas this year, I wanted to make a really cool project but didn't quite know what to make. As I was getting the Christmas lights out to decorate, there was an old busted Christmas light timer. I took it apart and looked around at the low-voltage circuit. Before this I had never experimented with AC circuits. I decided instead of hacking the timer to just make a whole new circuit, thus starting the AC electronics hobbyist side of me. And here it is, the 3 channel arduino powered Christmas light controller!

CAUTION!! If you decide to build this project you must be CAREFUL! This project is built with AC voltage which CAN BE DEADLY! If you have never worked with AC before, please get supervision from someone that has. Instructables and/or myself are NOT responsible for any injuries caused by the misuse of this project.

If you need any help or perhaps a more detailed description of the schematic, leave a comment.

Step 1: Tools, Materials and Skills

For this project you will need the following tools, materials and skills:


Soldering iron- you can get one of these for cheap at radioshack or online

Solder- can also be bought at radioshack

Wire cutters and wire strippers- radioshack has them

Something to mark with- I used a sharpie



3, 5 volt relays- I bought mine at radioshack but they can also be bought for cheap online

3, 1N914 diodes

3, NPN transistors- I used 2n3904 but 2n2222 will also work.

Solid and Stranded core Wire- radioshack

Perforated board A.K.A. proto-board- radioshack

male and female header pins- online

Arduino microcontroller- I used an UNO but older versions will also work. You can buy them online and at some radioshacks

Electrical Cord- radioshack or home-improvement store

Electrical outlets- home improvement store or radioshack

electrical tape


For this project you will have to know how to do the following:


Read schematics

Work with AC volatge

Have basic knowledge of electronic circuits

how to program and arduino

Step 2: Make the Shield for the Arduino

This project will have two circuit boards, one that goes on top of the arduino like a shield and one that connects the relays to the arduino through wires. To make the shield, take a piece of proto-board and mark it with a pencil or sharpie so it lines up with the arduino. After you mark it, score it with an x-acto knife. After you have scored it 5 or 10 times snap it at the scored line. Take a piece of your sand paper and stick it to a block of wood. Sand the edges of the board to make it neater. Push the leads in the header pins so they are flush with the plastic, then solder them to the board. Cut a row of 5 female header pins and solder them somewhere on the board. connect them to 5v, GND, digital pin 13, digital pin 12 and digital pin 11.  Continue to the next step.

Step 3: Make the Relay Board

Following the schematic above, solder your relays, transistors and jumper wires onto the board. Solder a diode between the coil leads of each relay. Solder all of the 5 volt lines together ultimately coming down to a single stranded core wire. Also, solder a stranded core wire to each of the base's of the transistor. Finally, connect all of the emitters together and solder a stranded core wire to the connected emitters. These 5 stranded wires now need to be soldered to 5 header pins. This will connect to the female header pin on the shield we made on the last step. Finally, connect the hot wire of the electrical cord to the hot side on all of the outlets. Connect the neutral side to the throw of the switch in the relays. If you don't understand this explanation refer to the schematic above or leave a comment!

Step 4: Program the Arduino

The following code will cycle through turning on each relay:

void setup() {


void loop() {




    • Science of Cooking

      Science of Cooking
    • Microcontroller Contest

      Microcontroller Contest
    • Spotless Contest

      Spotless Contest

    We have a be nice policy.
    Please be positive and constructive.




    Thank you for showing how to make a shield from parts to settle right on to the Arduino. It would never have occurred to me to do this, let alone figure out how.

    can i use in4007 diode instead of the one which you use

    Would it be possible to use this circuit with light switches instead? I dont mean the ones on the light itself, but the wall switches.

    This is definitely possible. There would be two ways to do that. You could directly connect the light switches to the circuit, or you can mount a servo to each light switch that flips the light switch so you don't have to open up the wiring in your wall.

    In SA we use 220-250V, what relays would I have to use for that amount of voltage?

    Most 5 volt relays are most likely not rated for that much voltage. Your best bet (to my knowledge) would be to use TIP120 transistors instead of the 2n3904's and use 12 volt relays instead of the 5 volt ones. It would probably be best for you to contact someone that has experience with that kind of voltage (Mine is 110). Remember to be safe, never work on a mains voltage projects while it is plugged in, and to insulate ALL live wires using electrical tape. Have fun!

    Thanks man, do you know anyone on instructables that I could ask??

    If you are really set on making this project, you can't go wrong with asking a question. Again, I do not feel comfortable giving people advice with mains voltage circuits because they are not my specialty. I will do a bit of research and consult my father (he is pretty good with mains voltage).

    Most relays have contact ratings... are these rated for 120VAC?

    Nevermind, I found info on the contacts 125VAC @ 1A. Gotta watch the amperage or you'll weld the contact.