Controlling Your Christmas Lights Without Ever Getting Off The Couch


14 year-old [Connor Smith] has been busy this holiday season, thinking up ways to improve the lighting situation at home.

A few weeks ago he put together this 3-channel light controller to toggle his parents’ external lights, incorporating an Arduino for control. The Arduino was used to switch the channels on and off at specified intervals in order to create a simple light show on the house’s exterior. Not satisfied with just a few strings of blinky lights, he took his controller back inside for some additional modifications.

He had grown tired of crawling behind the Christmas tree to plug and unplug it every day, and decided to make things easier on himself. He stripped the IR receiver out of an old VCR and interfaced it with the Arduino in his light controller using the IRremote library. After taking a bit of time to decode the values for two infrequently used buttons on his TV remote, he had himself a Christmas tree light switch that he could activate from across the room.

Check out the short video below to see his remote switch in action.


11 thoughts on “Controlling Your Christmas Lights Without Ever Getting Off The Couch

  1. Using a Triac would definitely be quieter than hearing the clicks of the relays. I probably will make one with Triacs and experiment with fading using pulse width modulation. A SCR would also work well.

  2. I think it’s awesome that there are still 14 year olds playing with electricity…looks like the sort of thing I would’ve done when I was that age. It’s also great to see the effort put in to the hand-drawn schematics, refreshing to see folks take pride in documenting their work. I think there are a few changes that I’d make, though:

    Cover plate on the outlets: just good practice when working with AC, especially in a spot where there are likely to be dry pine needles and errant tinsel. He mentions in the comments to the article “I plan on putting a cover over it”, not sure I’d even put pictures out there without one.

    Snubbing on the relay coils, which was also pointed out in one of the comments. It’s amazing how little coil inductance/current it takes to build up enough transient voltage to fry your buffer transistor (VCE max for a 3904 is 40V). In the absence of a suitable diode, even an R-C snubber should do the trick.

    I don’t see any series resistance on the buffer transistors. While this would be fine for FETs, he’s using bipolars so there’s significant current on the control line (base). The base-drive pins connect straight to the Arduino, and on the Arduino they connect straight to the microcontroller. The current through the base of the 2N3904s is limited by RDSon of the Arduino pins, which is likely causing overstress on the pins and possibly the 3904s.

    1. Thanks for the kind words! In the first schematic, I forgot to add the transistors and diodes. In the second I forgot the current limiting resistors at the base of each transistor (as well as the diodes). I am currently working on an eagle schematic that includes all of these. I plan on re-doing the whole project to make it look more professional. Thanks again!

    1. Looks great! I would control mine with an iphone, but I don’t have one. Not even a smartphone. Although, getting an iphone and developing apps is on my list of things to do this up-coming summer.

    1. i had 2 MOC and 1 triac. i managed to blow up the first MOC, which had zero crossing, so now im stuck with non PWM blinking :(.

      these schemes are based on a MOC3011(no ZC) but should work with a pin compatible, ZC enabled MOC like the MOC3041.
      for a resistive load(LED christmas lights):

      and for inductive load:

  3. This is very cool. I am also 14 and i made a 8 channle relay board for my outdoor christmas lights. Last year i had my christmas tree with 4 separate strings of lights plugged into a ssr board that i made. I think the idea of a tv remote controll is cool, i would have never had that idea

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.