# Appropriate base resistor for BJT switch driving a motor

In the following circuit, the BJT is used as a switch, controlled by in. The load is a motor. I've added a few diodes for safety, as recommended here; you can safely ignore them. simulate this circuit – Schematic created using CircuitLab

in is connected to a digital pin of Arduino, so the voltage is 5V when high, and the current should not exceed 40mA.

My motor's input voltage is 12V, and its rated current is 0.45A. I think it yields a maximum resistance of 26.67Ω. I'm using this figure to model the load resistance.

Based on these, I'm explaining my approach, to show what have and haven't I considered. When in is high as 5V, the BJT should be saturated. The spec. of 2N2222 says $\rm V_{be(sat)}$ is:

• 1.3V at $\rm I_C$=150 mA, $\rm I_B$=15 mA
• 2.6V at $\rm I_C$=500 mA, $\rm I_B$=50 mA

Since I'm looking for about 450mA, I'll just take $\rm V_B$=2.6V. Now the volt. diff. across the base resistor becomes 2.4V. By Arduino's 40 mA limit, I see the resistance must be ≥ 60Ω.

By deciding $\rm I_B$, I would be able to decide the appropriate resistance. But I'm perfectly stuck here. I've seen some articles saying "take β≒10 for saturation", but I'm confused since $\rm I_C$ does not increase while $\rm I_B$ increase there, so doesn't β vary?

As Vcc is fixed to 12V, the equation $\rm V_C+I_C \cdot R_{load} = 12\:V$ draws a line in Ic vs. Vce plot. Does it help?

• The diode at the top and the bottom are unnecessary. Is there a reason for why you don't want to use a MOSFET (such as AO3402)? Without looking at your text I'd say your schematic seems reasonable. Nov 17, 2017 at 3:20
• $\beta$ is meaningless at saturation. A practical approach for finding base current to guarantee the saturation is taking $\beta=10$ or $\beta\le\beta_{min} / 10$, where $\beta_{min}$ is the minimum value given in the datasheet. But there's another issue here: Since the load current is high, the power dissipated by transistor and the temperature rise will be extremely high: $P_T = I_C \cdot V_{CE-sat} = 0.45A \cdot 1V = 0.45W$ and the final temperature of the transistor will be $24°C + P_T\cdot R_{th-ja} = 24+90 = 114°C$ ! As Harry pointed out, go for a MOSFET instead. Nov 17, 2017 at 7:20
• @Namnamseo Power BJTs that are meant for a couple of amps flowing through them usually has a β of 10 while in saturation, and about 30 otherwise. So if you imagine that every other BJT has a β greater than 30, then they will be better than the β of a power BJT in saturation. So that's why 10 is usually the minimum β at saturation, because that's how good they usually are. You could however put another NPN so you got two of them in a Darlington setup, this will multiply the β. But as Rohat pointed out, you will have heating issues. With a Darlington setup you'd still need heatsinks. Nov 17, 2017 at 11:04
• @HarrySvensson ya it's more for big motors driving big loads with lots of inertia. The power can go out at random too, especially in this neck of the woods. Kinda embarrassing though, when you show the working proto to the boss and visitors and you turn it off, and all the lights stay on and just dim out as the wheel slows down :) Nov 17, 2017 at 19:57
• @HarrySvensson even relatively small motors can be problematic. It just depends on the application, and if there are any kids around that want to ask "what happens when I spin this daddy?" Nov 17, 2017 at 20:18

A MOSFET if really best for turning on high current loads, esp motors that, as part of their nature, have a very heavy start current that you do not want to accidentally limit.

Using a BJT means whatever is driving this circuit does, in turn, need to supply enough current to drive the base, so you end up passing the problem backwards. A MOSFET, being voltage activated, is much more suitable to be controlled by logic circuits.

Choose a MOSFET that has:

1. Enough current capability to handle the full start-up motor current indefinitely.

2. A Vgs threshold no more than 1/3rd of your logic output level and make the gate resistor small... ~50R.

3. An RDS_ON value that is very small. They come in all shapes and sizes, and the lower the RDS_ON the less power and heat will be wasted/dissipated in the MOSFET.

4. Is in the right package to not be overly hot when running, or can be attached easily to a heat-sink. (Do the math to figure out if you need one, and add it, BEFORE you power it up.)