Metal-Oxide-Semiconductor Field-Effect Transistors (MOSFETs) are a type of transistor that are characterized, among other things, by being controlled via voltage (instead of current), by switching quickly, and by having high efficiency. Especially at higher currents, MOSFETs are often preferred over bipolar transistors and can also be used as an alternative to relays.
Similar to bipolar transistors, there are two basic types of MOSFETs: n-channel and p-channel (analogous to NPN and PNP). However, this article focuses exclusively on n-channel MOSFETs.
Among many other specifications, three values of MOSFETs are of particular interest here:
VDSS | (Drain Source Voltage) Maximum voltage rating of the component between drain and source. |
---|---|
ID | (Continuous Drain Current) Maximum continuous current that can flow between drain and source without damaging the MOSFET (assuming appropriate cooling of the component). The temperature is usually specified as well. |
VGS(th) | (Gate-Source Threshold Voltage) Gate voltage at which the transistor starts to conduct minimally. |
For control via microcontrollers, it is essential that VGS(th) is at 5V (Arduino) or 3V (ESP32), otherwise it is not possible to fully turn on the MOSFET or even allow any current flow through the drain-source path.
MOSFET | Package | VGS(th) | VDSS | ID |
---|---|---|---|---|
IRF 1404 | TO-220 | 2V - 4V | 40V | 202A |
IRF Z44N | TO-220 | 2V - 4V | 55V | 195A |
IRF 3205 | TO-220 | 2V - 4V | 55V | 110A |
IRL 2505 | TO-220 | 1V - 2V | 55V | 195A |
IRF Z24N | TO-220 | 2V - 4V | 55V | 195A |
IRF 3808 | TO-220 | 2V - 4V | 75V | 140A |
2N7002 | SOT-23 | 1V - 3V | 60V | 115mA |
2N7000 | TO-92 | 1V - 3V | 60V | 200mA |
1N60 | TO-92 | 2V - 4V | 600V | 1.2A |
SI2302 | SOT-23 | 0.65V - 1.2V | 20V | 2.2A |
NTF3055L108 | SOT-223-3 | 1V to 2V | 60V | 3A |
STN1HNC60 | SO-8 | ±30V | 600V | 360 mA |
STN1NK60Z | SOT-223-4 | 3V | 600V | 300mA |
📄 2N7000 (n-channel) datasheet (769 kB)
📄 IRF1404 datasheet (110 kB)
Pin No | Pin Name (2N7000) |
---|---|
1 | Source (S); equivalent of emitter on NPN transistor |
2 | Gate (G); equivalent of base on NPN transistor |
3 | Drain (D); equivalent of collector on NPN transistor |
Pin No | Pin Name (IRF1404) |
---|---|
1 | Gate (G); equivalent of base on NPN transistor |
2 | Drain (D); equivalent of collector on NPN transistor |
3 | Source (S); equivalent of emitter on NPN transistor |
In the circuit diagram shown here, a 180Ω resistor is placed between the Arduino pin and the gate to limit the current flow, since the gate represents a capacitance to drain and source, which can cause high currents during rapid switching. Additionally, a 2.2kΩ resistor pulls the gate to ground so that the MOSFET switches off immediately after the gate voltage drops and does not remain conductive for a certain period of time.
In the sketch, an Arduino pin is alternately switched to HIGH and LOW using two different delay times. The MOSFET used should perform these switching operations accordingly.
#define PIN_LED 9
void setup() {
pinMode(PIN_LED, OUTPUT);
}
void loop() {
for (byte i=0; i<6; i++) {
digitalWrite(PIN_LED, !digitalRead(PIN_LED));
delay(500);
}
for (byte i=0; i<16; i++) {
digitalWrite(PIN_LED, !digitalRead(PIN_LED));
delay(50);
}
}
The circuit worked well with the following MOSFETs: IRF1404, IRF3808, IRF3205, IRFZ44N, IRL2505, IRLZ44N
To check whether and how fast the MOSFET used can switch, we use a PWM signal to dim an LED.
(Keep in mind that the PIN X
should be PWM-capable)
#define PIN_LED 9
void setup() {
pinMode(PIN_LED, OUTPUT);
}
void loop() {
digitalWrite(PIN_LED, LOW);
for (byte i=0; i<255; i++) {
analogWrite(PIN_LED, i);
delay(10);
}
digitalWrite(PIN_LED, HIGH);
for (byte i=255; i>0; i--) {
analogWrite(PIN_LED, i);
delay(10);
}
}