For many people who aren’t familiar with electronics often struggle to decide whether to use BJT or MOSFET in their projects. In this article I will explain the differences between BJT and MOSFET and help you decide which one is more suitable for your application.
BJT vs. MOSFET
As explained in my previous articles, BJT is current-controlled device where MOSFET is voltage-controlled, both with unique characteristics and their pros and cons. There isn’t a straight-forward and definite answer to the question which one is better.
When choosing which one to use in your application, one needs to consider many factors including power level, drive voltage, load voltage,switching speed, efficiency, cost, etc.
I will mainly focus on low power consumption applications e.g. driving a few LEDs or 5V DC motor etc, since most of the readers on this blog are of Arduino and Raspberry Pi hobbyists.
When used with Arduino which can only produce an DC output voltage of 5V, we are limited to using logic level MOSFET. They are not as common as standard MOSFET that requires at least 10V or more Vgs (gate-source voltage) to fully turn on.
On the other hand, BJTs that can be driven by Arduino (~5V DC) are easier to find, and generally cheaper.
Therefore BJTs are more suitable than MOSFETs for driving low-power LEDs and similar devices from Micro Controllers Unit (e.g. Arduino).
BJT can switch faster than MOSFET due to the less capacitance at the control pin. However MOSFET is more tolerant to heat (stable to thermal changes) and can simulate a good resistor.
At low power and voltages application – e.g. less than 10V and around 1A, small BJT could be a good choice. Bipolar have on state voltage drops (Vsat) dependant on load current, drive current & specific device type. A MOSFET has an on resistance Rdson rather than Vsat. Rdson is dependant on drive voltage, load current. Rdson increases with temperature and may double over ambient temperature values.
Power Consumption Efficiency
MOSFET is usually more efficient switches for power supplies. BJT will consume more power because it’s wasting current when it’s switch on. Also the BJT generally has a 0.3v voltage drop in the input pin, and it takes a lot of base current to do that.
Transistors are often connected together to form useful circuits. For instance the MOSFETs can be easily placed in parallel, but the BJT cannot unless external emitter resistors are added. The external resistance generates additional efficiency losses.
In a battery-powered device where you have limited power and the load is variable and often low, using BJT is a bad idea. If a BJT is used to power something with a predictable current draw like LEDs, using BJT isn’t as bad. Bcause you can simply set the base-emitter current to be a small fraction of the LED current to achive better efficiency.
Carefully selected transistor can enhance the performance of your project. Also it doesn’t has to be either BJT or MOSFET, they can as well be combined together to create innovative circuits that take advantage of the high-input-impedance and low-power operation of MOSFETs and the very-high-frequency operation and high-current-driving capability of bipolar transistors.
Mosfets are so faster than the BJTs. Mosfets can switch more than 200khz, they are the fastest electronic device.
Please edit the text.
Excellent web site, excellent tutorials. Keep up the good work.
I’m a hobbyist working on a battery operated Arduino + ESP8266 project, and want to be able to switch the ESP completely off when not in use. Given that the ESP has 3 pull up pins, I’m thinking I should switch the + side of the ESP using a PNP transistor or p-channel MOSFET. After reading your article it seems the MOSFET would be the best low power solution.