A bipolar junction transistor (BJT) is a semiconductor device used to amplify or switch low-power signals in electronic circuits. Typically operated in the active region, it allows a small input current or voltage at the base to control a larger current flow between collector and emitter. They're often used in amplifiers, radios, and signal processing applications.
A BJT is a type of transistor that uses both electrons and holes (two types of charge carriers) to conduct current.
It has three terminals: Emitter
, Base
, and Collector
.
BJTs come in two types: NPN and PNP, and they amplify current by using a small base current to control a larger current flowing from
collector to emitter. The main difference between NPN and PNP BJTs is the direction of current flow and the required voltage polarity:
Type | Description | Common devices |
---|---|---|
NPN | Current flows from collector to emitter when a small positive voltage is applied to the base (relative to the emitter). | BC547, BC548, 2N3904, 2N2222, S8050, BC550 |
PNP | Current flows from emitter to collector when a small negative voltage is applied to the base (relative to the emitter). | BC557, BC558, BC556, 2N3906, 2N2907, S8550 |
Note: Since there are so many different types of BJTs with a wide range of characteristics, we will use here the two widely used types BC547 and BC557.
BC547 Spec | BC557 Spec | |
---|---|---|
Transistor Type | NPN | PNP |
Collector-Emitter Voltage (VCEO) | 45 V | -45 V |
Collector-Base Voltage (VCBO) | 50 V | -50 V |
Emitter-Base Voltage (VEBO) | 6 V | -5 V |
Collector Current (IC) | 100 mA | -100 mA |
Power Dissipation (Ptot) | 500 mW | |
DC Current Gain (hFE) | 110 to 800 | |
Transition Frequency (fT) | 150 MHz | |
Operating Temperature | -65°C to +150°C |
📄 BC547 (NPN) datasheet (45 kB)
📄 BC557 (PNP) datasheet (50 kB)
Pin No | BC547 (NPN) | BC557 (PNP) |
---|---|---|
1 | Collector | Emitter |
2 | Base | Base |
3 | Emitter | Collector |
As a basic setup, both an NPN and a PNP transistor are connected to a microcontroller, and a HIGH or LOW signal is alternately applied to the base. This results in a blinking effect with two LEDs due to the different behaviors of the transistors.
#define PIN_NPN 2
#define PIN_PNP 3
void setup() {
pinMode(PIN_NPN, OUTPUT);
pinMode(PIN_PNP, OUTPUT);
}
void loop() {
digitalWrite(PIN_NPN, HIGH);
digitalWrite(PIN_PNP, HIGH);
delay(500);
digitalWrite(PIN_NPN, LOW);
digitalWrite(PIN_PNP, LOW);
delay(500);
}
#define PIN_NPN 23
#define PIN_PNP 21
void setup() {
pinMode(PIN_NPN, OUTPUT);
pinMode(PIN_PNP, OUTPUT);
}
void loop() {
digitalWrite(PIN_NPN, HIGH);
digitalWrite(PIN_PNP, HIGH);
delay(500);
digitalWrite(PIN_NPN, LOW);
digitalWrite(PIN_PNP, LOW);
delay(500);
}