Electronic – S8050 BJT is rated for 700 mA but gets extremely hot when powering a 12 volt 700 mA PC fan

bjtfanheat

I'm working on a project that requires a DC motor, so I salvaged a PC fan from an old computer. The model is AVC DS08025R12U. It needs 12 volts for maximum speed and is rated to draw 700 milliamps. I'm planning to power the motor with a 12 volt 3 amp power brick, which will also help power an Arduino microcontroller and a breadboard power supply module. I'm planning on changing the speed of the motor with a PWM signal from the Arduino, but just to test, I set up the simple circuit that can be found on the sparkFun website. Instead of making a simple code, I am just plugging a wire into ground or 5V manually. I also have the Arduino removed from the circuit. Here's a schematic –

schematic

simulate this circuit – Schematic created using CircuitLab

Instead of powering the breadboard with the Arduino, I used an Elegoo breadboard power supply module.

I have a wire going straight from the DC jack (12 volts, 3 amps) to the Collector of an S8050 NPN Bipolar Junction Transistor, which, from the datasheet, is able to handle 12 volts and 700 milliamps. Although the power brick does supply 3 amps, the fan is only rated to draw 700 milliamps, which is the maximum amount of amps the BJT can take, after checking with a multimeter, it only draws a little over 500 milliamps, which should be nowhere near too much for that transistor. The datasheet for the S8050 NPN BJT is right here – http://electronics.se-ed.com/magic/s8050.pdf

Is the potential problem in the physical circuit? Am I incorrectly reading the datasheet? Is this normal?

Also, for some reason, when I use 5 volts to turn the transistor on and off, the fan doesn't spin very fast. Only when I plug the jumper cable connected to the base of the BJT to 12 volts does it reach maximum speed, in which case the BJT gets much hotter much faster.

Thanks so much!

Best Answer

From your description it sounds like you're doing "high-side switching", like this:

schematic

simulate this circuit – Schematic created using CircuitLab

THIS IS NOT WHAT YOU WANT!
Because, as you've discovered "the fan doesn't spin very fast", this configuration will never deliver the full 12V to your fan.
It doesn't matter if the Arduino is there or if you're just pulling that pin manually up to 5V.
In this configuration your fan will never get more than about 4.3V (5V - 0.7V Vbe), with the remaining 7.7V dropped across your transistor (just causing it to heat up - as you've also discovered).
The voltage at your NPN transistor's emitter can never get higher than the voltage you put on its base (minus the typical 0.7Vbe).

Rearranging your circuit to do "low-side switching" instead will improve things dramatically:

schematic

simulate this circuit

In this configuration with the emitter tied to ground, applying 5V to the base resistor (not directly to the base) causes the transistor to switch on 'hard', pulling its collector down to about 1V, which means that your fan now gets 11V - much better than before.

While this is a significant improvement, its still a bit less than ideal.
The low-ish current gain (probably around 40) means that your poor Arduino will have to source around 15-20mA to drive the transistor (and you would need to reduce the value of the resistor to 220R or less).

Replacing your S8050 NPN BJT with a small N-Channel logic-level MOSFET (also in the low-side configuration) should give an even further improvement.
You can do away with the resistor and connect the N-FET's gate directly to your Arduino while not worrying about the Arduino having to source any current, because the N-FET doesn't really require any. *simplification
IF you choose the right N-FET you'll also get closer to delivering the full 12V from your supply yo your fan.