Introduction: Power LED's - Simplest Light With Constant-current Circuit
Here's a really simple and inexpensive ($1) LED driver circuit. The circuit is a "constant current source", which means that it keeps the LED brightness constant no matter what power supply you use or surrounding environmental conditions you subject the LED's to.
Or to put in another way: "this is better than using a resistor". It's more consistent, more efficient, and more flexible. It's ideal for High-power LED's especially, and can be used for any number and configuration of normal or high-power LED's with any type of power supply.
As a simple project, i've built the driver circuit and connected it to a high-power LED and a power-brick, making a plug-in light. Power LED's are now around $3, so this is a very inexpensive project with many uses, and you can easily change it to use more LED's, batteries, etc.
i've got several other power-LED instructables too, check those out for other notes & ideas
This article is brought to you by MonkeyLectric and the Monkey Light bike light.
Step 1: What You Need
Circuit parts (refer to the schematic diagram)
R1: approximately 100k-ohm resistor (such as: Yageo CFR-25JB series)
R3: current set resistor - see below
Q1: small NPN transistor (such as: Fairchild 2N5088BU)
Q2: large N-channel FET (such as: Fairchild FQP50N06L)
LED: power LED (such as: Luxeon 1-watt white star LXHL-MWEC)
Other parts:
power source: I used an old "wall wart" transformer, or you could use batteries. to power a single LED anything between 4 and 6 volts with enough current will be fine. that's why this circuit is convenient! you can use a wide variety of power sources and it will always light up exactly the same.
heat sinks: here i'm building a simple light with no heatsink at all. that limits us to about 200mA LED current. for more current you need to put the LED and Q2 on a heatsink (see my notes in other power-led instructables i've done).
prototyping-boards: i didn't use a proto-board initially, but i built a second one after on a proto-board, there's some photos of that at the end if you want to use a proto-board.
selecting R3:
The circuit is a constant-current source, the value of R3 sets the current.
Calculations:
- LED current is set by R3, it is approximately equal to: 0.5 / R3
- R3 power: the power dissipated by the resistor is approximately: 0.25 / R3
I set the LED current to 225mA by using R3 of 2.2 ohms. R3 power is 0.1 watt, so a standard 1/4 watt resistor is fine.
where to get the parts:
all the parts except the LED's are available from http://www.digikey.com, you can search for the part numbers given. the LED's are from Future electronics, their pricing ($3 per LED) is far better than anyone else currently.
Step 2: Specs & Function
Here i'll explain how the circuit works, and what the maximum limits are, you can skip this if you want.
Specifications:
input voltage: 2V to 18V
output voltage: up to 0.5V less than the input voltage (0.5V dropout)
current: 20 amps + with a large heatsink
Maximum limits:
the only real limit to the current source is Q2, and the power source used. Q2 acts as a variable resistor, stepping down the voltage from the power supply to match the need of the LED's. so Q2 will need a heatsink if there is a high LED current or if the power source voltage is a lot higher than the LED string voltage. with a large heatsink, this circuit can handle a LOT of power.
The Q2 transistor specified will work up to about 18V power supply. If you want more, look at my Instructable on LED circuits to see how the circuit needs to change.
With no heat sinks at all, Q2 can only dissipate about 1/2 watt before getting really hot - that's enough for a 200mA current with up to 3-volt difference between power supply and LED.
Circuit function:
- Q2 is used as a variable resistor. Q2 starts out turned on by R1.
- Q1 is used as an over-current sensing switch, and R3 is the "sense resistor" or "set resistor" that triggers Q1 when too much current is flowing.
- The main current flow is through the LED's, through Q2, and through R3. When too much current flows through R3, Q1 will start to turn on, which starts turning off Q2. Turning off Q2 reduces the current through the LED's and R3. So we've created a "feedback loop", which continuously tracks the current and keeps it exactly at the set point at all times.
Step 3: Wire the LED
connect leads to the LED
Step 4: Start Building the Circuit!
this circuit is so simple, i'm going to build it without a circuit board. i'll just connect the leads of the parts in mid-air! but you can use a small proto-board if you want (see photos at the end for an example).
first, identify the pins on Q1 and Q2. laying the parts in front of you with the labels up and the pins down, pin 1 is on the left and pin 3 is on the right.
comparing to the schematic:
Q2:
G = pin 1
D = pin 2
S = pin 3
Q1:
E = pin 1
B = pin 2
C = pin 3
so: start by connecting the wire from the LED-negative to pin 2 of Q2
Step 5: Keep Building
now we'll start connecting Q1.
first, glue Q1 upside-down to the front of Q2 so that it is easier to work with. this has the added benefit that if Q2 gets very hot, it will cause Q1 to reduce the current limit - a safety feature!
- connect pin 3 of Q1 to pin 1 of Q2.
- connect pin 2 of Q1 to pin 3 of Q2.
Step 6: Add a Resistor
- solder resistor one leg of resistor R1 to that dangling LED-plus wire
- solder the other leg of R1 to pin 1 of Q2.
- attach the positive wire from the battery or power source to the LED-plus wire. it probably would have been easier to do that first actually.
Step 7: Add the Other Resistor
- glue R3 to the side of Q2 so it stays in place.
- connect one lead of R3 to pin 3 of Q2
- connect the other lead of R3 to pin 1 of Q1
Step 8: Finish the Circuit!
now connect the negative wire from the power source to pin 1 of Q1.
you're done! we'll make it less flimsy in the next step.
Step 9: Permanant-ize It
now test the circuit by applying power. assuming it works, we just need to make it durable. an easy way is to put a large blob of silicone glue all over the circuit. this will make it mechanically strong and waterproof. just glob on the silicone, and make an effort to get rid of any air bubbles. i call this method: "BLOB-TRONICS". it doen't look like much, but it works really well and is cheap and easy.
also, tying the two wires together helps reduce strain on the wires also.
i've also added a photo of the same circuit, but on a proto-board (this one is "Capital US-1008", available at digikey), and with a 0.47-ohm R3.

Participated in the
The Instructables Book Contest
323 Comments
Question 4 years ago
Hi Dan.
I have a question.... I am from Namibia in Africa so please don't ask me to source something I have to get in America or EU.....
Now to the question, I have an Ebike that runs on 48 to 90V (that's what the controller can do...).
I have a front light that works on 9 - 85V so that was a good find I wanted a rear Led light that had an angel and main light in it that runs on the same voltages. They did not pitch after 4 months of waiting. so I have been refunded.
I now need to make a rear light that can also react to my ebrake, so a tail or park light that goes to full brightness once the ebrake is pulled....... I know.. complicated.....
I do not like having a bunch of dc dc convertors as this is just another thing that can go wrong.... I have a few of these cob style led roof lights that run on 12v I have strung 4 in series and put in a fairly high wattage 1.5K resistor and have with success run it on 85V with nothing burning out.....
Is it possible to use your circuit and adapt it for my voltage range? I also do not want to use an Arduino on the bike for the above mentioned reasons....
Any help will be appreciated..
Thanks
Regards
Charles
Answer 8 months ago
I believe your supply voltage to the LEDs can be quite high, the only limiting factor is to keep the Gate-Source voltage below the limit for the MOSFET. I plan on trying a circuit with a zener to allow a high LED supply voltage and allowable voltage for the Gate.
As for the eBrake: I'd look into using a BJT transistor that adds a second resistor in parallel with R3. So your normal current limit is half brightness and then when the new transistor turns on from the eBrake, the new resistor lowers the R3 value increasing the current and brightness.
1 year ago
The transistor was obsoleted.
Reply 1 year ago
You refer to the FQP50N06L, I guess? Do you have link?
Mouser still has a lot of them and I cannot see any notice of end-of-lifetime. Either way, at the bottom of this page some alternatives are listed: https://www.digikey.com/en/products/detail/onsemi/FQP50N06L/965352
Tip 1 year ago
I tried to simulate the circuit here: https://www.circuitlab.com/circuit/wd55xkp5r42x/pr...
Note that I did used different transistors. The top graph shows the current through the LED depending on
- the power source providing 9V to 15V.
- R1 with 2.2 Ohm +/- 10% (to show the sensitivity of R1; resistors usually have this tolerance).
3 years ago
Would you recommend this circuit to handle currents of more than 2 Amps?
6 years ago
Does anyone have a diagram on how to make this on breadboard? please.
Reply 4 years ago
I don't have a diagram, but I do have these pics after building this project yesterday.
Question 5 years ago on Step 1
Hello, I have the following scheme but i dont know how to calculate resistors and stuffs since i am using a little more difficult scheme.
All the LED diodes are 3W and need 700mA to light in full power.
As power supply i am using PC power supply with 12V as input.
Check the image and i will be really happy if u can help me and give me guidinence.
Thanks
Answer 4 years ago
you need a 20 ohm resistor rated for 3 watts
4 years ago
I made one with IRF3205 and bc337, seems when the input between 10-18, the current keep less changes, say constant. when the input goes low, say 5-9v the current change fast too low.
5 years ago
Hi Dan! Really nice instructable, keep it going! I used your circuit for my own project, if you are interested give it a read: https://www.instructables.com/id/Build-Your-Own-DMX-Fixture-Arduino/
7 years ago
In calculations, you mentioned LED current is 0.5/R3. How did you arrive at the number 0.5? similarly, the next line how did you arrive 0.25/R3 as power?
Reply 7 years ago
Given that the voltage drop across the current sense resistor (R3) is 0.5v - then using Power = IV = VI = V x V/R = 0.5 x 0.5/R3 = 0.25/R3.
I've built the circuit and the voltage drop across Vbe for Q1 = voltage drop for R3 - is indeed 0.5v. But how could that be predicted from the 2N5088 data sheet? What are the design steps?
(it is a great tutorial BTW - just I'm frustrated by my lack of understanding - even if the light does come on!)
Reply 6 years ago
I was curious about this too, and if I'm understanding right has to do with the qualities of a transistor, but could be wrong. Here's why I think that:
- http://electronics.stackexchange.com/questions/916...
Throughout my reading, I've seen folks using 0.5 - 0.7 for various calculations; thankfully some named it as V_BE, so I googled around leading me to the above. It sounds like an inherent property of the materials used. Here's two examples that spell it out a little more than this tutorial:
- http://www.pcbheaven.com/userpages/LED_driving_and...
- http://www.scienceprog.com/building-simple-constan...
So, if we know that junction right above R3 is at 0.7V, I think that's how we get I = 0.7/R3 (though this tutorial uses 0.5). And power is V^2/R, so you get 0.25 (0.5^2). In the first link, his equation Vm = Vdd - Vled - 0.7 suggests that since the voltage will drop across the LED, and end up at 0.7 at the transistor, the MOSFET will have the balance.
Anyway, you had that already but felt like commenting since it perplexed me as well. I'm still not positive, but think he's using 0.5 instead of 0.7 and the value comes from a property of transistors. At least that's as close as I've gotten to something sane-ish!
Reply 5 years ago
The Voltage drop when used Germanium made components is around 0.5-0.6 but usually 0.5. If it's Silicium it's 0.7. That is as far as I remember from my lessons in high school :D
Maybe it's irelevant but i thought it might help :)
5 years ago
This is a really cool circuit. Thank you for sharing. I was wondering, would this circuit work on a long strand of led lights to combat voltage drop over the length of the run?
6 years ago
Will battery be okay as my power supply? Since it is not a constant voltage will it affect the way the circuit works?
7 years ago
Congratulations on a simple but effective constant current circuit.
The schematic symbol of the MOSFET shown in the circuit diagram is that of a P-Channel MOSFET, not N-Channel. Moreover, it is not a simple FET but a MOSFET.
The power adapter voltage can be calculated as follows:
V supply = 3.2 X n + 1V
Where 3.2 is the voltage drop across each led, n is the number of LED's in series.
The 1V added in the end is to take care of any voltage drop that may occur in the power supply due to regulation errors. So a 6V supply can only feed one LED. A 12V supply can feed a maximum of 3 LED's. From the above rough formula we can say that 3 LED's in series will require:
V = 3.2X3+1 = 10.6V
So a 12V supply will also work with 3 LED's, but to keep the power dissipation of the MOSFET at a minimum, it would be advisable to keep the power supply voltage as close to the calculated value as possible, thus 11V would dissipate less heat than a 12V supply. So if you have a 24V supply available, you can safely connect 7 LED's in series.
Reply 6 years ago
the symbol shown is correct.
https://www.circuitlab.com/blog/2013/10/17/new-mosfet-schematic-symbols/