Arduino and BJT to supply 0-10V at 1A


I read that its possible to hook up the arduino mega to a darlington transistor like TIP120 and therefore increase the current output following this circuit.

I'm using a 24v 3amp power supply for this setup, but when i measure the current gain from the circuit, it says less than 20ma, sometimes even 0ma.

I vary the pwm output from arduino over the entire 0-5v range.

Please help.

Some notes...

You don't measure current gain in mA... So what DID you measure?

A PWM output doesn't change the voltage so "0-5V range" is nonsense. It's always 5V, it's the duty cycle you change.

Biggest problem with a BJT is the voltage drop (thus waste of energy in the form of heat) in the transistor, That's why mosfets are more common nowadays for "power" applications.

So please explain more clearly how you connected it and what you did measure.

What are you using as the motor in the circuit you have shown, that is what is your load.
The transistor will not conduct the current you need unless the load requires it,

You have a 24V 3A power supply, the supply will only provide 3A if the load needs it.

Using OHMS LAW Voltage Across the load = Current Through the Load X Resistance of the Load.

Transposing Resistance of the Load = Voltage Across the Load /Current through the Load

So for a power supply of 24V to supply 3A of current you will need a Load Resistance of;

Load Resistance = 24 / 3 = 8 Ohms.

Is your load 8 Ohms or a device rated at 3A with 24V supply?

Tom.... :slight_smile:

Hi Tom, Septilllion.

Thanks for your help.

I used a rated 5v 0.1A motor fan for load in the test and measure the current and voltage across it. For the actual load, I would like a fixed analog voltage at 1A, as its a big motor I'm driving and is unsure if rapidly changing voltage values will kill it.

Really appreciate your help

  1. you can only measure the current when 100% duty with a normal meter. With a true RMS you can measure with PWM but it you set it to 50% PWM you will of course read less current. What? Depends, see 2.

  2. Motor rating is not like a light bulb. It doesn't always just draws 100mA. Depends on the load you give it and the voltage applied.

  3. You can't have "a fixed voltage at 1A". Whatever you connect will (try to) draw whatever it needs (/wants). Fixed voltage (with a PWM) is possible. Then you have to minimize the voltage drop across the transistor under the load (as in current) conditions you want. And a Darlington isn't great for that... A low Ron logic level mosfet is.

  4. Can't speak for your motor (because you only call it "a big motor") but in general a motor has no problem with PWM. It's the most common way of driving motors. Even trains us it.

Hi septillion,

I did the setup, coupled with a low pass rc filter (330ohm, 1uf) to the arduino pwm pin to get an analog voltage prior to passing it over to the TIP120. However when i measure the output, it reads 2.2v even at pwm 0.

Best regards

So that suggests you are not doing what you think you are doing. Certainly you are not doing what you describe. So why not post a clear photo so we can see your wiring.

Drop the RC filter. PWM is just fine and just adding a RC filter doesn’t make it voltage driven. And btw, you never going to dissipate all the excessive heat in a TIP120 anyway.