Electronic – arduino – How to determine what transistor is needed

arduino

I created a circuit that uses a transistor to run a small (1.5 – 3v) motor. The transistor I used was a 2n3904 NPN. I calculated Beta to be about 11 when it's hooked up to an Arduino the base resistor I used was 47 Ohms and it worked well.

Given that I moved the circuit from the Arduino to a HiTechnic prototyping board, It's digital pins only put out 3.3v and from what I can tell (they don't say this online or in any documentation) the current is really tiny, about 8mA. Because of that it seems like I need use a different transistor – at least that is my guess, because even when I put a base resistor with 0 Ohms of resistance the motor barley turns and the current into the collector is barley 170mA.

To get a better idea of what I am doing. I have essentially taken this video tutorial and migrated it to this setup and I am using the Arduino to turn it on and off using the wire library and bitWrite.

The motor I am using is a Radio Shack Model: 273-258. It says it is .18amps to .25amps at no load, it will start spinning at just over .21amps.

Best Answer

You say you want to control a motor that requires from 180 to 250 mA at no load from a 3.3 V digital output of questionable current sourcing capability.

First, the no load current is pretty useless. The important parameter is what the maximum load will ever be. That is what you need to design to. If the circuit can handle the maximum current the motor will draw, it will certainly be able to handle a lower amount. The maximum current, also called the "stall current" is probably 500 mA at least. Let's figure 1 A max.

Here is a circuit that should work nicely:

This FET has a guaranteed maximum on resistance of 80 mΩ at 2.5 V gate drive. At 1 A it will only drop 80 mV and dissipate 80 mW, which is fine for a SOT-23 package. You will notice it getting a little warm, but it will be well within its limits.

A FET is a better choice here than a bipolar like your 2N3904 for several reasons. First, it will drop less voltage and therefore take less from the motor. At such a low drive voltage, even a few 100 mV can become significant. Second, it will drop less voltage and therefore dissipate less power and not heat up as much. Figure a bipolar would drop at least 200 mV although probably more at 1 A. Even just 200 mV at 1 A is 200 mW, which would make a SOT-23 pretty toasty. Third, it won't load the digital output, which you say has low current sourcing capability. The FET gate will only look like a capacitor to the digital output. That will slow down its edges, but they will still be instantaneous on the scale of anything the motor will react to.

A 2N3904 is a pretty crappy transistor for more than just signals anyway. I ususally use 2N4401/4403 for jellybean bipolars. They have more current capability and are generally more robust, but still have good gain and are also cheap and widely available. But I wouldn't use even the 2N4001 in this case. The FET is a better choice.