Picking a mosfet

I'm having a lot of trouble understanding the mosfet and how to choose one. My goal is to switch about 1.5A at 5v with the arduino at PWM speed without a heatsink. I've come up with these:

I hate to just flat out ask which one I should use, but I'm pretty much at that point... I'm trying to understand the charts, but I'm not finding what I would expect. I would appreciate some guidance.

I was also not sure about how exactly to connect this to the arduino. I know that I should drive my load with the drain and connect the source to the ground, but I wasn't sure if the atmega chip could be directly connected to the gate.

Thanks

All 3 are specified for logic level gate drive (meaning that Rds(on) is quoted at 4.5v), and all 3 have a sufficiently low Rds(on) for switching 1.5A without dissipating much power. Any of them would do. I would choose #1 because it has the lowest total gate charge, so it will switch fastest. It has the highest Rds(on) at Vgs=4.5v, but still only 34millohms, which gives only 75mW power dissipation at a steady 1.5A.

Any of those will do nicely.

The three parameters you are interested in:

Continuous Drain Current Id:
This is the amount of current the MOSFET can handle, and hence the maximum size of your load.

Drain Source Voltage Vds:
This is basically the voltage rating of the MOSFET. When the MOSFET is turned off, the whole supply voltage will be measurable across it, so you must not exceed this value.

Threshold Voltage Vgs Typ:
This is the gate voltage at which the MOSFET will switch on. It ideally needs to be somewhere in the "dead" zone of the logic levels in use. 1.7 to 1.8v is perfect.

You can directly drive a MOSFET with an Arduino IO port. You don't need a current limiting resistor as the MOSFET has a very very high impedence. What you do need, though, is a pull-down resistor (say 10K) between Gate and Source. This stops the gate from floating when the IO pin isn't set as an output.

This is the basic layout:

but with the additional resistor between "To Arduino Output Pin" and "To Arduino 0V".

Thank you both. This is very helpful.

A resistor in series with the mosfet gate is highly recommended, because power mosfets have high input capacitance. When the pin driving the gate changes state, the peak current flow as this capacitance charges or discharges the gate will exceed the 40mA rating of the Arduino output. If you are using PWM then this happens many times a second. So you should use a series resistor. A value in the range 100 to 180 ohms is ideal.

As majenko says, you should also have a pulldown between the Arduino pin and ground to ensure that mosfet remains off in the time before the pinMode call is made.

If the load is inductive (e.g. motor or solenoid), you also need a diode across the load to catch the back emf when the mosfet turns off. Mosfets can absorb a small amount of energy under these conditions, but not the amount you are likely to get from a motor or solenoid.

That series resistor from output to gate serves a very important purpose and that is to reduce the effects on 'charging' the Gate Capacitor on the Vcc Supply. Those current spikes will show up as noise on the Vcc supply and can be much worse inside the ic where they cannot be filtered and can effect background things like A/D ports and timers.. (PWM). The trade off is the R/C time constant for a first order estimate. This is the point where energy transfer is best (lowest current) but for casual use would be of secondary concern just use a resistor from 150 - 330 ohms for best results. AND By-Pass that Vcc used to power shift registers off or on board the Arduino as they have the SAME spike issues with Vcc as well, there is no current limiting or buffering.

Doc

majenko:
Any of those will do nicely.

The three parameters you are interested in:

Continuous Drain Current Id:
This is the amount of current the MOSFET can handle, and hence the maximum size of your load.

I disagree, you should choose a device based on Rds(on) and the power dissipation you can afford - a MOSFET rated at 10A will probably melt if you pass 10A through it (since its the thermal limit with infinite heatsinking)

Drain Source Voltage Vds:
This is basically the voltage rating of the MOSFET. When the MOSFET is turned off, the whole supply voltage will be measurable across it, so you must not exceed this value.

Ensure this rating is twice your supply voltage if you want reliable operation. Rapid switching can cause spikes of twice the supply voltage via stray inductance very easily.

Threshold Voltage Vgs Typ:
This is the gate voltage at which the MOSFET will switch on. It ideally needs to be somewhere in the "dead" zone of the logic levels in use. 1.7 to 1.8v is perfect.

NO NO NO - the threshold is the threshold of conduction, this is the voltage at which it switches OFF (a few microamps only). Anyway ignore this parameter, you use the Vgs / Rds(on) specs for choosing a switching MOSFET. Logic-level MOSFETs usually have Vthr of 0.5 to 1.0V, non-logic-level MOSFETs usually 2.0 to 4.0V. The threshold is always greater than 0V for a MOSFET since they are enhancment-mode FETs. The only way to know if a MOSFET is logic level is seeing "Rds(on) at Vgs=4.5V" or similar in the spec.

You can directly drive a MOSFET with an Arduino IO port. You don't need a current limiting resistor as the MOSFET has a very very high impedence. What you do need, though, is a pull-down resistor (say 10K) between Gate and Source. This stops the gate from floating when the IO pin isn't set as an output.

No, a power MOSFET gate has a VERY LOW IMPEDANCE of about 1 ohm in series with 5--20nF or so. At logic speeds this is effectively 1 ohm. You must use a resistor of about 180 ohms to protect the Arduino's output transistors from over-current. You are confusing DC resistance with impedance. MOSFETs have exceedingly high DC resistance, but when switching the gate current can be large (in fact you want it to be large to achieve fast switching). When driving directly from a logic output you have to limit the current to what the logic output can provide (abs max of 40mA for Arduino).

This is the basic layout:

but with the additional resistor between "To Arduino Output Pin" and "To Arduino 0V".

the threshold is the threshold of conduction, this is the voltage at which it switches OFF

.
Not according to the curves... For a 2N7000. The current flow increases from the Vds leakage value with applied gate excitation not decreases as you seemed to imply.
When I went to school it, Vgsth was the point where the device just begins to conduct (for an N Channel Device).
Some MFR's even tried to make their regular devices look better by reducing the 'De-Facto' current parameter for conduction from 1 ma to 100 uA. Typically the Vgsth was the point where conduction just began, However as pointed out it is better to look at the curves and select a minimum 'expected' gate voltage/drain current curve that fills your needs rather than the somewhat misleading Vgsth data published in the 'parameters' section as those are more, I think to make a part 'look' better than it really is rather than pass on anything real in terms of it's use. Not too many people who are interested in how much voltage is required to get a 'reaction' from the part, more to find out approximately the minimum level of enhancement required for a given current so one could determine whether the part was usable in it's intended application.

Doc

You also have to be careful once you get it and test it for the load, for one load 5v will be enough on the gate but a heavier load it will not be enough, if you wanted to garuntee it was on you could get an actual mosfet driver or get one with a lower gate threshold and or lower rds on so that with less voltage it has sufficient low resistance to run cool
I've used the stp40nf12 alot and it works great, not even detectable temperature raise at 1A
its threshold is usually around 3.5v and by 4.5v its on plenty for most loads, it can handle 40amps and 120v supposedly (with that infinite heatsink)

I agree with all of the points that MarkT made, except this one:

MarkT:

Drain Source Voltage Vds:
This is basically the voltage rating of the MOSFET. When the MOSFET is turned off, the whole supply voltage will be measurable across it, so you must not exceed this value.

Ensure this rating is twice your supply voltage if you want reliable operation. Rapid switching can cause spikes of twice the supply voltage via stray inductance very easily.

You don't need a rating of twice the supply voltage, just a rating comfortably in excess of the supply voltage. If you are switching an inductive load, you will use a flyback diode across it to catch the back emf. If you are switching a non-inductive load, then a power mosfet will easily absorb the small amount of energy stored in the stray inductance (look for "avalanche rating" on the data sheet), unless you are switching very high currents and are very careless in your circuit layout (in which case you will have other problems anyway).

I'm switching a bunch of high powered LEDs (5v, at 1.5A like I said before). So I think that the voltage rating will be more than enough either way and non-inductive, I believe.

Thanks for all of the information, everyone, I was hoping to have a good idea of what I required tonight for ordering right away Monday morning so this is very helpful.

Docedison:

the threshold is the threshold of conduction, this is the voltage at which it switches OFF

.
Not according to the curves... For a 2N7000. The current flow increases from the Vds leakage value with applied gate excitation not decreases as you seemed to imply.

By the voltage at which it switches off I didn't imply "as the gate voltage increases", you inferred that. People often don't realize there's a large gap between "off" and "on" called linear or triode region.