MOSFET

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.

MOSFETs: IRF1404 (TO-220), 2N7000 (TO-92)
Fig.: MOSFETs: IRF1404 (TO-220), 2N7000 (TO-92)

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.

Electronic symbol of a n-channel MOSFET
Fig.: Electronic symbol of a n-channel MOSFET
Electronic symbol of a p-channel MOSFET
Fig.: Electronic symbol of a p-channel MOSFET

Features/Specifications

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.

Important data of some MOSFETs

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)

Connections

Terminal diagram of the 2N7000 MOSFET in a TO-92 package
Fig.: Terminal diagram of the 2N7000 MOSFET in a TO-92 package
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
Terminal diagram of the IRF1404 MOSFET in a TO-220 package
Fig.: Terminal diagram of the IRF1404 MOSFET in a TO-220 package
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

Used Components

Setup & Programming

Circuit diagram connecting a MOSFET with a microcontroller
Fig.: Circuit diagram connecting a MOSFET with a microcontroller

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.

MOSFET as a switch

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

PWM with MOSFETs

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);
  }
}
Last edited by Christian Grieger on 2025-05-16
X
  1. [top]
  2. Features/Specifications
  3. Connections
  4. Used Components
  5. Setup & Programming
  6. MOSFET as a switch
  7. PWM with MOSFETs