Aziz Bench

BC547 as a switch with Arduino and ESP32

A small-signal NPN for up to 100 mA, common in European kits. Its datasheet guarantees saturation with a base current of one twentieth of the load: 5 mA for 100 mA.

Transistor
BC547
NPN · TO-92 · onsemi
Max voltage
45 V
Max current
100 mA
VCE(sat)
0.25 V at 10 mA
TO-92 pinout
1C2B3E

From a 3.3 V or 5 V pin

PinVerdictWhyIn free air
ESP32 · 3.3 VWorks150 Ω on the base: up to 100 mA of load at a gain of 20100 mA (rating)
Arduino Uno · 5 VWorks220 Ω on the base: up to 100 mA of load at a gain of 20100 mA (rating)

In free air at 25 °C, with the junction 25 °C below its 150 °C maximum and θJA 200 °C/W, from a 20 mA pin at the datasheet’s forced gain, and no further than the highest current with a guaranteed saturation voltage.

Specifications

TypeNPN
PackageTO-92
Maximum voltage45 V
Maximum current100 mA
Minimum gain hFE110 at 2 mA
VCE(sat), maximum0.25 V at 10 mA (IC = 20 × IB) · 0.6 V at 100 mA (IC = 20 × IB)
VBE(sat), maximum0.7 V at 100 mA (IC = 20 × IB) (typical)
Thermal resistanceθJA 200 °C/W
Maximum junction temperature150 °C
Datasheet usedonsemi

Pinout

PinFunction
1Collector
2Base
3Emitter

Flat face toward you, leads down: pin 1 is on the left.

Similar parts

PartPackageVCE(sat), guaranteedMax voltageMax current
BC547TO-920.6 V at 100 mA (IC = 20 × IB)45 V100 mA
2N2222ATO-921 V at 500 mA (IC = 10 × IB)40 V600 mA
2N3904TO-920.3 V at 50 mA (IC = 10 × IB)40 V200 mA
S8050SOT-230.6 V at 500 mA (IC = 10 × IB)25 V500 mA
TIP120TO-2204 V at 5 A (IC = 250 × IB)60 V5 A

Tips

The base resistor is sized for IC = 20 × IB, the condition of the datasheet’s saturation voltage. A higher gain from the hFE column would leave the transistor half on and hot.

Every coil needs a flyback diode across it, cathode to the positive supply. Without it the voltage spike at turn-off can destroy the transistor at the first switching.

Open the calculator →Check the BC547 with your own load, supply, PWM frequency and temperature.

Other transistors

Frequently asked questions

Does the BC547 work with a 3.3 V ESP32?

Yes, with a base resistor: at the gain of 20 the datasheet uses for saturation, a 20 mA pin drives the BC547 up to 100 mA of load. For more current use a logic-level MOSFET.

How much current can the BC547 switch without a heatsink?

About 100 mA from a 5 V Arduino pin, in free air at 25 °C, keeping the junction 25 °C below its 150 °C maximum (limit: rating).

What is the BC547 pinout?

TO-92: 1 collector, 2 base, 3 emitter. Flat face toward you, leads down: pin 1 is on the left.

Source of the figures: onsemi datasheet (PDF)