Arduino and transistor amplifier

Hi, I am trying to use my arduino(3.3V Pro mini) to control the brightness of 10V 1A LED through a pwm signal. The region I want to vary the voltage on LED is 6-10V. It looks like I need to use a transistor. I tried to simulate different circuits but can't imagine one that will give me nice and gradual voltage rise. Can any of you ?

Well, I must be very stupid than... Can you give me schematics of a circuit I can use ?


You use the right words for the wrong reasons. You'll need a transistor because your Arduino can't provide all the necessary current. Leds are usually dimmed via PWM and not by reducing the voltage. This works by flickdring the led fast enough to fool the eye. Less often on and the eye believes the led is dimmed. When the led is on, the full voltage and current is used.

Another thing you should consider is, that the human eye doesn't see light linearily but exponentially. Double the light and you'll see it one level brighter. Double it again, another level. With a 10-bit PWM this means, you can double your level of light 10 times. I would guess it gives you no more than 30 levels of light that look different to the average viewer. The range from 0 to 100 is going to be the most interesting, 100 to 1024 make less difference with the last 500 making no difference at all. But you should play around with that yourself to see how it works for you.

As for the schematic, look at the tutorial pages about motors and soleniods. You have the basic transister circuit there (you wont need the diodes for driving leds) and about using PWM with led or motors. Korman

Thanks Korman. The problem is that transistor switch collector voltage between 6V and 10V in a range of base voltage between 0.75v and 1v ... if I use analog output (pwm) I can send values in a range from 0 to 255 that will give me output (base) voltage from 0 to 3.3 right ? so if I want to control the brightness I can use output values in a range 60 - 77. It's only 17 different states. I want this number to be much bigger. That is the problem. I need to decrease the gradient of Vcollector(Vbase) graph or to use more accurate pwm signal.

One doesn't normally utilize base voltage as a design guide, but rather base current. The emitter/collector current is a product of base current times device current gain. A bipolar transistor is fundamentally a current amplifying device not a voltage amplifying device.

So look up the current gain for the transistor and then compute a series resistor from the arduino output pin to base that will supply that current.


You need something that can control the current to drive the LED and take a PWM input.

This is one of the better circuits I've found and the mosfet is useful for other things.

Step 6 is where the mosfet current limiter begins, at step 8 you will find the modification to the circuit to allow PWM input.

When you follow the instructions and set the current limit right this will power the LED at it's rated current when the pwm input is at maximum. You will need to test it to see how low it can go.

The amount of power you want is trivial for this circuit, you will need to heatsink the LED and the mosfet. The mosfet can allegedly do 54.4amps but never trust a datasheet without testing. I recommend a heat sink for it even at 1amp.