MOSFET or BJT?
Should you use a MOSFET or a BJT as a switch? Drive method, losses, speed and cost compared, common mistakes, and an in-browser simulator.
Short answer
If you're switching loads above a few hundred milliamps, choose a MOSFET: it's voltage-driven and barely warms up when on. For small signals, LEDs, relay coils and cheap simple circuits, a BJT is still the most practical choice.
Comparison
| BJT (e.g. BC547, 2N2222, TIP120) | MOSFET (e.g. IRLZ44N, AO3400) | |
|---|---|---|
| How is it controlled? | By current: the base needs a continuous current to stay on | By voltage: apply a voltage to the gate; it draws no steady current |
| Loss when on | Roughly fixed voltage drop: VCE(sat) ≈ 0.2–1 V → loss ≈ I × VCE | Behaves like a resistor: loss = I² × RDS(on); RDS(on) can be a few mΩ |
| Typical heating at 5 A | Several watts: needs a heatsink | Often under 0.5 W with a logic-level MOSFET |
| Driving from a microcontroller | Directly through a base resistor; pin current is limited (≈20 mA) | Directly if logic-level; otherwise needs a driver or 10 V |
| Switching speed | Moderate; slow to come out of saturation | Fast; suited to PWM and DC-DC converters |
| Sensitivity to static | Low | High: the gate oxide can be punctured |
| Cost and availability | Very cheap, everywhere | Cheap; you need to pick the right type |
Choose a BJT if…
- ✓The load is under a few hundred mA (LED, small relay, buzzer)
- ✓You're doing analog amplification (audio, sensor signals)
- ✓You only have common parts like the BC547 / 2N2222
Choose a MOSFET if…
- ✓The load is 1 A or more (motor, LED strip, heater)
- ✓You're adjusting speed or brightness with PWM
- ✓Heating and losses matter in a battery-powered circuit
Common mistakes
- !Taking VGS(th) as the "turn-on voltage". At the threshold the MOSFET passes only a tiny current like 250 µA; check which VGS the datasheet's RDS(on) is specified at.
- !Driving an IRFZ44N or IRF520 from a 5 V Arduino. These need 10 V on the gate; at 5 V they stay half-on and heat up. Pick logic-level types with an "L" in the name (IRLZ44N, IRLB8721).
- !Leaving the MOSFET gate floating. The gate keeps its charge and the MOSFET can stay half-on; put 10–100 kΩ between gate and source.
- !Fitting a BJT base resistor without calculating it. Too little base current won't saturate the transistor and it heats up. Aim for a base current of about 1/10 of the load current.
- !Forgetting the flyback diode on inductive loads (relays, motors). It can kill a BJT or a MOSFET the first time it switches off.
Try it: which MOSFET fully turns on at 5 V?
Compare three common MOSFETs with the same load, drop the gate voltage to 3.3 V and see how the heating changes.
Open the simulator full page →