Powering a DC motor with a TIP120

Hi,

I've been trying to power the DC motor in a BB gun by use of a TIP120 transistor but to limited success. I was informed by a friend of mine who does electronic engineering that this transistor would be suitable. The gun is powered off 6V and draws around 1.5A. Ideally, a pin on the arduino would go from low to high and this would then fire the gun. However this is not the case. I have used a diode to prevent damage to the transistor.

My setup is pretty much the same as this video: https://www.youtube.com/watch?v=sOz41WQF7wE

If i connect the base of the transistor to the 5V output from the arduino, the motor twitches but does not spin properly.

Would someone be able to tell me where i'm going wrong? Cheers

I can't watch the video 'cause I'm at work. [u]Here is a motor/solenoid driver[/u] example.

If i connect the base of the transistor to the 5V output from the arduino, the motor twitches but does not spin properly.

You need a resistor in series with the transistor-base to prevent damage to the Arduino. (It's also possible to fry the transistor if you don't have the resistor, but the Arduino probably can't put-out enough current to damage the transistor.

Yes i have a transistor there but it doesn't seem to make a lot of difference. Interestingly, if i measure the voltage across the motor when the Arduino pin is high, its only reading around 0.7V rather than the whole 6V. Any ideas why?

DVDdoug: I can't watch the video 'cause I'm at work. [u]Here is a motor/solenoid driver[/u] example. You need a resistor in series with the transistor-base to prevent damage to the Arduino. (It's also possible to fry the transistor if you don't have the resistor, but the Arduino probably can't put-out enough current to damage the transistor.

It might well damage the TIP120 as well as itself, there's enough current sourcing on overload to just about do that.

Is the diode correctly installed? Do you have the right pinout for the TIP120? Double check these things every time is my recommendation.

You will lose some voltage to the darlington's Vsat unfortunately, a MOSFET would be better if that's the problem (ie does the motor work with only 4V or so?)

matt50567: If i connect the base of the transistor to the 5V output from the arduino

Hopefully through a current limiting resistor. If not, then you might already have damaged the Arduino pin. Use a 220ohm resistor between pin and base.

I assume you have the diode across the motor, not across the transistor, have an external supply connected to motor(+) and emitter(-), and have Arduino ground also connected to emitter.

Vsat (what you loose across the transistor) should be about 0.8volt at 1.5amp with a 220ohm base resistor. Leo..

You should be connected like this:

Are you?

Hi, You do have the gnd of the Arduino connected to the gnd of the motor power supply?

Can you please post a copy of your circuit, in CAD or a picture of a hand drawn circuit in jpg, png?

Also a picture of your project so we can see your component layout.

Thanks.. Tom... :)

Hi,

https://imageshack.com/i/pmFfE1Zij

This is my current setup. The output pin from the arduino goes to a 1K ohm resistor which then goes to the base of the transistor. The collector then goes to the negative side of the motor and there is a diode connecting this side of the motor to the positive side. The emitter is connected to ground of the arduino and also the negative terminal of the battery pack. The positive side of the battery pack is connected to the other end of the diode and also the positive side of the motor.

Cheers

Yes, sounds good - if you measure the voltage across the motor with the darlington switched on, expect about 4.5V across it or so, not the full 6V

Hi, Measure the voltage of your 6V battery pack with the motor activated.

Tom... :)

You'd be much better using a modern logic - level MOSFET device , as against the TIP120, as it's saturation resistance will be much lower. So you'd get the full 6v at the gun......

eg the IRL1104. There are lots more.

Allan

Hi,

The voltage of the battery pack is around 5.7 volts and the motor runs fine when it is connected directly to the battery.

I had considered the use of MOSFETs however my knowledge of them is very limited (as is my knowledge of BJTs). The IRL1104 appears to be largely discontinued by most retailers. What should i be looking for when it comes to choosing a MOSFET? I would assume the continuous drain current of the transistor needs to be larger than 1.5A (the current the motor draws) and that the drain source voltage needs to be greater than 6V. What else needs to be considered?

Matt

You need a drain - source current rating much bigger than you intend to use, a Rds on of at most a few tens of milliohms, and a low Vgs turn-on.

I'm not sure of the best modern cost effective solutions , so I'll leave it to the rest of the guys to pile in with loads of suggestions.

Allan

ps don't forget the flywheel diode across the motor.

Hi,

he drain source voltage needs to be greater than 6V.

NO, the battery you have now will be fine.

Just make sure the MOSFET is N-CH and “Logic Level” input.
Thats is the Vgs threshold is <1Vdc.

Its the Rds (on) that is also important, 0.027 Ohms is good.

Look up FQP30N06L.

Tom… :slight_smile:

Hi everyone,

Thanks for all the help. I managed to get it to work by purchasing a MOSFET (IRLZ44NPBF) and using a 12V power supply. Interestingly the MOSFET doesnt work when you put an arduino pin to HIGH or LOW. It only works when you use one of the PWM pins and using analogWrite. The speed of the motor can then be adjusted by changing the value from 255 to 0.

Thanks very much,

Matt

Hi, You do have the gnd of the Arduino connected to the gnd of the motor battery? A circuit diagram would be appreciated, draw and post picture? It should work either way, PWM or just logic HIGH then LOW. Make sure you have identified Gate, Drain and Source.

Thanks.. Tom.. :)