Introduction
In this tutorial, we are going to learn about how to connect a 12v RGB LED strip with Arduino and how to program to make different color combinations and fading animations.
Things Required
| Components | DIY Usthad | AliExpress | Amazon | Banggood | Utsource |
| Arduino | |||||
| TIP120/TIP122/IRF530 | |||||
| 1k Resistor | |||||
| RGB LED Strip |
You can use any NPN transistors like TIP120, TIP121, TIP122 of N-Channel MOSFETs like IRF540, IRF 530, based on your application you can change the transistors. the difference is that they have a different collector-emitter current rating. For example, if you are using a large length of RGB LED strip then to drive them you will be needing high current transistors like IRF540 which have Drain Current (Id): 28 Amps. Or if you need only a few LEDs then you can use any other NPN transistors like TIP120 which have Collector Current of 5 Amps continuous and 8 Amps peak
In this tutorial, I am using TIP120 and the pinout diagram is shown below. You can download the datasheet from here.
– TIP120
Circuit
- Connect the emitter of all the transistors to the Ground of Arduino.
- Connect the Ground of 12V power supply to the Ground of Arduino.
- Connect the positive terminal of the 12V power supply to the 12V pin of the RGB LED strip.
- Connect 1 K resistor to the base of each transistor as shown.
- Connect wires from the digital pins D9, D10, D11 to the other end of the resistors as shown in the circuit diagram.
- Finally, connect wires from the R, G and B terminals of the RGB LED strip to the collector (middle pin) if the TIP120 transistors as shown.
Complete Video Tutorial
Code
Color Changing Program
//www.diyusthad.com
//www.youtube.com/c/diyusthad
#define red 9
#define green 10
#define blue 11
int t = 500;
void setup()
{
}
void loop()
{
analogWrite(red, 255);
delay(t);
analogWrite(green, 255);
delay(t);
analogWrite(blue, 255);
delay(t);
analogWrite(red, 0);
delay(t);
analogWrite(green, 0);
delay(t);
}
Fading Program
//www.diyusthad.com
//www.youtube.com/c/diyusthad
#define red 9
#define green 10
#define blue 11
int brightness;
int fadeAmount = 5;
void setup()
{
}
void loop()
{
analogWrite(red, brightness); //writing brightness value to red
analogWrite(green, brightness); //writing brightness value to green
brightness += fadeamount; //increasing brightness value by 5 in each loop
if (brightness < 0 || brightness > 255 )
{
fadeAmount = -fadeAmount; //reversing the direction of fading when brightness reachs 0 or 255
}
delay(30); //delaying the speed of fading
}
You might also like…
To buy electronic components order from UTSOURCE

