Project tutorial
Dimmable Arduino LED Strip Driver

Dimmable Arduino LED Strip Driver © GPL3+

Tutorial of how to build an Arduino based illumination LED strip drive with dim capabilities.

  • 16 respects

Components and supplies

Ph a000066 iso (1) ztbmubhmho
Arduino UNO
12v DC Power Supply
With enough amps to power all your LED strip
Illumination LED Strip
09939 01
Rotary potentiometer (generic)
Fairchild semiconductor tip120 image
Darlington High Power Transistor
Mfr 25fbf52 2k21 sml
Resistor 2.21k ohm

Necessary tools and machines

09507 01
Soldering iron (generic)

Apps and online services

About this project

Well, I live in Brazil and here we love to buy cheap things we don't need from China and wait for it's arrival until we forgot we bought it in the first place.

My girlfriend is one of those people (me too). She bought a illumination white LED strip but she didn't knew that you can't just plug it to the wall to power it so I had the great idea of building one dimmable LED strip driver!


A LED will vary its brightness according to the voltage supplied to it. The problem is that usually cheap DC power supplies are constant, they can provide a constant voltage, in the case of this project 12V.

So to workaround that we will have to make our own circuit to regulate the voltage output, using PWM (pulse width modulation). PWM works by switching the voltage on and off very quickly, depending on the ratio between the time on and the time of we can have an average output voltage between 0V and 12V.


For this circuit I’m powering the Arduino and the LED Strip with the same power supply, for that I’m using the Arduino’s power jack that can power the Arduino with voltages between 7V and 12V.

Double check if your power supply connector have the same polarity as the Arduino’s connector with is positive in the center, like in the picture below.

The potentiometer is connected to the analog input of the Arduino to regulate the level of the PWM output to the TIP120 power transistor (by software).

As noticed by TJ Blevins in the comments, be aware that the TIP120 can handle up to 5 amps, it should be enough, but if you are planning to drive a long LED strip or several of them you might need a more powerful transistor.

This is my final assembly I soldered directly to the power jack the capacitor the smooth the PWM signal and also I soldered the the positive connector (exposed in the back of the connector) directly to the positive input of the LED strip and the ground connector (exposed in the side of the connector) to the ground of the board I made.

It is not represented in the circuit schematic but in the final assembly I put a switch between the connector (middle pin) of the TIP120 and the negative terminal of the LED strip to cut the power of the LED strip completely when switched off.


The code is pretty simple and self explanatory. You can download it in my Github page at: link to code


Final Considerations

This is the first of my projects that I documented but I'm planning to write guides for lots of projects I love making.

You can check out my future projects in my blog.

Please ask any question or suggestions you have, I'll be pleased to answer.


Similar projects you might like

Bluetooth control led with lcd led status display real time.

Project tutorial by Youssef Sabaa

  • 54 respects

LED Emergency Lights using WS2812 RGB LED Module

Project tutorial by bigboystoys13

  • 34 respects

How to Make a Supersize Thermometer with an RGB LED Strip

Project tutorial by Giovanni Carrera

  • 1 comment
  • 11 respects

Music Reactive LED Strip

Project showcase by buzzandy

  • 154 respects

Arduino controlled RGB LED strip

Project tutorial by Raphael Nestler and Danilo Bargen

  • 29 respects

5 Minute Christmas Neopixel Led Strip

Project showcase by Alexander

  • 32 respects
Add projectSign up / Login