• Sunday10AM–7PM
  • Monday10AM–7PM
  • Tuesday10AM–7PM
  • Wednesday10AM–7PM
  • Thursday10AM–7PM
  • Friday10AM–7PM
  • Saturday10AM–7PM
Call Us:    9404844825

Mood Lighting With Shift Registers

  • Difficulty Easy Moderate Difficulty
  • Share
  • Steps 7
  • Time Required 2


Hi! This week we are going to make this backlit mood light using RGB Leds. Now whats special about this is that it shifts the Rainbow colours from one end to the other where as the other RGB Leds would just fade in and fade out the colours. I have used about 40 RGB Leds to create this pattern. And you can see during the night how beautiful it illuminates the room.

Step 1: Parts Required

Let’s look at what are the parts required for the project.

  1. ATMega328 IC
  2. 74HC595 Shift Registers
  3. 100nF capacitors
  4. Lots of RGB Leds. I used common Anode ones. But you can use the common cathode ones too
  5. And optionally a rotary switch.

Step 2: Introduction to ShiftPWM

A big shout out to Elco Jacobs because he is the guy who wrote the library called ShiftPWM which I am going to use. He has basically documented everything in his website. You can check the link here.

In his schematics he has used the famous TLC5916 or the 74HC595 shift register ICs to drive the LEDs. In India TLC5916 is very costly and difficult to get. So I used the 74HC595 Shift Registers.

Step 3: Schematics

Lets look at the schematics. Don’t be scared its very simple. A shift register requires three signals to work. Data, Clock and Latch. You can see Kevin Darrah’s video here.

But here is my simplified version.
Here are 8 screws because all Shift Registers are 8bits. And these small ones are zeros where as the bigger ones are ones. These three switches are Data, Clock and Latch.

The Data pin decides if we are going to send in 1s or 0s. The clock pin sends in the actual data and Latch pin moves the data to the output. Right now all is zero. If I press Data and Clock together because data switch is set to high every time I push Clock a one is being pushed into the shift register. Right now I pushed it twice. But to show them to the output that is the LEDs you need to latch it. So when I push it all the 1s will turn to the output and the LEds light up. Because I pushed two times just the first two LEDs light up. Now to push in 0s I don’t have to press Data but just press the Clock button. So I am going to push Clock twice and once with the Data. So that’s two zeros and one one. Now when I push the latch its going to push them to the output. And here you can see that the first two leds are pushed by 3 places. Two zeros and one lighting up.

So all the shift register does is push data from one pin to the other. And when we cascade another shift register with the first one, the latch and the clock pin remains same for both the shift registers. Meaning the same signal that we connect to the first shift register will be connected in parallel with the second one. But the Data line will be connected just to the first shift register. The Data line for the second shift register will be the output from the first shift register.

That’s all there is for you to know about how shift registers are used in this circuit.

Now back to the schematic.

Here are the three shift registers connected to eight RGB Leds through resistors. Because connecting LEDs through resistors always is a good idea. But for me it worked without the resistors. And at the end you can see the pin 9 of the last shift register gives out the Data out for the next set of shit registers. Where are the Latch and Clock signal remain the same for all.

Step 4: Breadboard Explanation

Here is my breadboard with all the connections made. There are three shift registers connected to the RGB LEDs just like the schematic. I want to be able to switch between different patterns for lighting whenever I wanted. That’s why I added this extra rotary switch.

The ATMega328 chip has about 11 digital output pins. We will be using just three to give out the Data, latch and clock signal. The rest will be wasted. So why not use this rotary switch to do some customisation. The way the rotary switch works is you give a 5v input in the middle place, and as you turn it gets connected to each of the output pins. This one has twelve but I need just 6.

Step 5: Preparing the Circuit Board

Moving to my computer I made my schematic for the Controller board which has the Arudino and the Rotary switch. And also a board design for the shift registers and the LEDs.

You can download them too from link here. Then printed them, etched some home made PCB with Ferric Chloride. I made 5 shift register boards because I needed 40 LEDs.

I drilled some holes in the PCB with my home made Mini Table top drilling machine. You can see the video here. Then I gathered all the components and soldered them.

Step 6: Making the Enclosure

Once that was done I bought this 4 feet aluminum extrusion. My table width was 4 feet so thats the length I wanted. Then I cut it into half. Measured equal distance drilled some holes and added hinges to make it into a box. For the lock I used these small jewellery locks. With that the box is ready. I already like how this has turned out. The aluminium extrusion was very thin so I had to be careful not to dent it while drilling.

Next I have to drill 5mm holes for the RGB Leds. All 40 of them. I took my time in doing this so I don’t mess up. I placed the LEDs one inch apart and that gave me enough space on either side to mount the control board. Then I secured the LEDs using some hot glue. At times like these you come to appreciate the strength of hot glue. Just make sure to clean the aluminium with acetone to remove oil and grease before applying the glue.

Then I added in the board with some spacers. This was very long process and took me an entire day to solder all the wires and leds to the boards.

Step 7: Conclusion

And then here is the final result. Because I used the spacers there are no short circuits and for the power I used a 12V 2amps power supply. But because the circuit uses only 5v I used this 7805 voltage regulator which gave out enormous amount of heat. So I just screwed in with a big heat sink and on to the alumininum extrusion making it all a huge heat sink.

Remember to just take your time with this project. There are so many electrical connections and soldering to this circuit. So if you mess it up then to find the origin of the problem it will take a very long time. Other than that this was a self satisfying project that I wanted to do for over a year. I dint have the time to get to it but now a tick on my to do list.

Thank you for reading. Until next time. Happy Learning!