I wan to dimmer an halogen lamp 12V DC 20W with PWM from Arduino Nano (3.3V). I was using an IRF520 Mosfet then a guy advice me to use an IRLZ44N, but didn't explain me why. I've tried to read the datasheet but my poor electronic knowledge didn't help me a lot.

What is the difference between the two components? Why I should use one instead the other?

  • \$\begingroup\$ For the differences, print out both datasheets and look at each value... \$\endgroup\$
    – PlasmaHH
    Commented Nov 23, 2015 at 23:04
  • \$\begingroup\$ it's only a matter of value? \$\endgroup\$
    – nkint
    Commented Nov 23, 2015 at 23:08
  • 1
    \$\begingroup\$ It always is a only a matter of value (or size) \$\endgroup\$
    – PlasmaHH
    Commented Nov 24, 2015 at 11:26

3 Answers 3


You should look at the I-V curves specified for the device.

The first plot refers to IRF520. As you can see, you need at least 4.5V on the gate in order to get a current just a bit higher than 1A. With 3.3V the current could be even lower than 1A. (I can't tell from the graph, but I'm quite sure this device isn't going to work with your setup).


In the case of IRLZ44N you are luckier. With 3V you can get more than 10A (as long as V_DS is sufficiently high). The recommendation was good. Pick this device instead of the other one.



Most FETs need around 10 volts on the gate to switch them fully on. You can still use it with 3.3 volts output pin but with additional transistor and voltage divider. Then you can make it switch from 12 volts that are used for the bulb. But that would require some more parts:

enter image description here

Or use what is called "logic level" FET that switch at lower voltage. That's why IRLZ44 has an "L" in its name (there is also IRFZ44 which is regular FET). You can spot if it is a logic level FET by looking at its datasheet for values RDS(on) - Static Drain-to-Source On-Resistance and VGS(th) Gate Threshold Voltage. For logic level FET there will be values of RDS(on) for low voltages like 5V or less and for regular FETs there is usually only one value for 10V. And the value for VGS(th) is rather low for logic level FETs, like 1-2V.

Using logic level FET in your case will also cause less heat to be dissipated on the FET. You can asses that by knowing maximum current that goes through your load: P = I²*RDS(on). If it is like 1/4 of Watt or less then you probably do not need a heat sink. It can be precisely calculated using thermal resistance values from datasheet (degree per Watt), maximum operating temperature from datasheet and ambient temperature.

Here is a nice article that covers that very well: Using MOSFETS with TTL levels


It's a matter of Vgs(th), the gate-source threshold voltage at which the FET begins to turn on. An IRF520 has a threshold voltage in the range of 2 to 4 volts, so it's entirely possible a 3.3 v Arduino gate drive will not do the trick. The IRLZ44, on the other hand, has a range of 1 to 2 volts, so an Arduino will reliably turn it on.

The situation is actually a bit worse than this indicates, since if you look closely at the data sheet, the threshold is specified to produce a drain current of 250 uA, which is well below any useful load, so the gate voltage will actually have to be somewhat higher than spec for switching real loads.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.