Make a RGB LED Strip Controller.




About: Make your life more lazy and awesome by the touch of electronics. Check out awesome projects and learn how to build them easily and cheaply.

In this instructable, I will show you how you can use a non-addressable RGB LED Strip according to your needs. The controller that comes with this kind of strip can only set the strip to a specific color, change brightness or show some animations. But, let's say, you want to make a music reactive RGB LED project, then this controller will be of no use and you will learn how to do that right here.

Let's get started.

Teacher Notes

Teachers! Did you use this instructable in your classroom?
Add a Teacher Note to share how you incorporated it into your lesson.

Step 1: Watch the Video.

The video contains all the steps and information required for this project, have a look at it first before moving on to the next step so that you have an idea of what we are going to do.

Step 2: Gather the Components.

Step 3: First Test.

In the circuit diagram attached, there are three MOSFETs for each of the colors. Create only one of it in the breadboard before soldering, just to be sure that it will work. After that, upload some random PWM values to Arduino and check by connecting the strip that the brightness is getting changed. Or you can also use a potentiometer to change the duty cycle of PWM output from Arduino like I did.
Check all the colors with the same circuit.

Step 4: Solder the Components.

After that, make the circuit permanently on a piece of perforated board.
Do not use thin jumper wires as they can reduce current carrying capability. Use a 0.75 sq. mm wire least.
Also, hot glue the wires soldered for 12 Volt supply as they can break by continuous tension.

Headers: Use headers for external connection, like for strip, Arduino connection etc. You can solder the IR receiver directly into the board and also a smaller Arduino like pro mini can be soldered directly in the board, that will remove the hassle of connecting jumper wires to everything.

Refer to the images and video for more proper understanding.

Step 5: Determine the IR Codes.

To use any remote you want, you have to determine the hex code for different buttons of that remote. After that just edit the sketch with your determined hex codes of the remote.

Determining the hex codes of your IR remote:

Step 6: Upload the Sketch.

Now, upload the sketch provided in this step.

To edit the sketch according to your needs, watch the video in which I have explained what the sketch is doing. You can also add more colors in the 2D array if you want.

To determine the RGB codes of different colors, click here:

Step 7: Done.

Make sure you common the grounds of the Arduino and the 12 Volt supply if you are separate power supplies for them.

If you have any questions, please comment below. I'll be happy to help.

Thanks for reading :)



    • Indoor Lighting Contest

      Indoor Lighting Contest
    • Make It Fly Challenge

      Make It Fly Challenge
    • Growing Beyond Earth Maker Contest

      Growing Beyond Earth Maker Contest

    7 Discussions


    1 year ago

    This is awesome !!

    Well Done, very nicely made controller !

    i would like to make a home-brew PCB with your Controller/IR Receiver combo but with arduino ATMEGA328P circuitry on board too, would you be able to share the Eagle file you created the schematic for the controller please please ?


    i will also share the completed eagle files for this all in 1 PCB in the hope of keeping everything open-source so everyone will benefit from this, we could make a joint-PCB with our efforts, this could be a great project to get involved in :)


    what do you think ?


    1 year ago

    Pretty neat, butI am a bit puzzled by the use/function of the TC4420 mosfet driver, is there a reason why you do not drive the Mosfet directly from the Arduino I/O pin (via a resistor)?
    The IRFZ44 Mosfet can drive some 15 Amps with a 4V gate voltage. 4 volt is no problem for the Arduino.
    Not saying what you do is wrong, just trying to understand the reason

    3 replies

    Reply 1 year ago

    Hi. I totally understand your question. I'll try to clear it using the following two points:
    1. Gate terminal capacitance: The output current of any microcontroller is usually very low (around 20mA), which is just perfect to drive loads with smaller capacitance in the range of picoFarads, but the gate terminal capacitance is higher than that. Although, I think, Arduino can handle it, but to ensure proper functioning, I have used it.
    2. Threshold Voltage: Although threshold voltage for a typical MOSFET is around 3-5 Volts, but to turn it on properly, 8-12 Volts is required. The Arduino will work just fine if we are just turning on or off at an interval of few seconds, but here, we are talking about turning it on and off 200 times a second (PWM frequency of Arduino is approx. 200 Hertz), that's why, just to be on the safe side, I have used it.
    If you want you can try without a MOSFET driver. I have used this MOSFET without driver at the output of a 555 generating 3kHz PWM signal and that woks perfectly fine. But the 555 was working on 12 Volts. If you try, let everyone know the results.
    I hope I answered your question. I'll be happy to answer more, if you have any
    Thanks for reading :)


    Reply 1 year ago

    Thanks for your detailed explanation. I already figured that it would be something like that. The IRFZ44 indeed can use a higher voltage, but it will allow a decent drain source current within the Arduino's IO capacities. I normally use logic level FET's via a small resistor, directly from an Arduino IO pin and I haven't experienced problems, but I admit that I only have done so in a small number of projects, thus my experience on that combo is limited

    The TC4420 can deliver some 6 amps. That seems quite enough just to feed a gate ;-)

    Anyway, great project and thanks for explaining