A N-channel MOSFET STP16NF06L is used to drive a 12V load.

enter image description here

Pin 1 is connected to Arduino Uno digital pin 4.

Pin 2 is connected to the negative terminal of the 12V load.

Pin 3 is connected to the GND terminal of a 12VDC power supply.

The positive terminal of the 12V load is connected to the +12V terminal of the 12VDC power supply.

Problem: When the Arduino output pin is at LOW state and measured to be at 0V, the MOSFET still turns on and passes 6V to the 12V load.

When the output pin is in the HIGH state, it's measured to be at 4.9V and 7.5V across the 12V load.

Shouldnt the MOSFET provide 0V across the load when pin 1 is 0V, and just above 10V when pin 1 is at 5V?

enter image description here

Pin 1: Green clip to Arduino pin

Pin 2: White clip to negative terminal of load

Pin 3: Black clip to GND of 12V power supply

  • 1
    Are you sure you don't have D and S wired opposite? Measure with a voltmeter from Gate to Source and see if that is 0V. – ACD Feb 23 '15 at 18:34
  • 3
    is your power supply's ground the Arduino's ground? – PkP Feb 23 '15 at 18:54
  • 1
    The way you describe the connection, it should have a common ground; otherwise you can't say what the Vgs voltage will be – PkP Feb 23 '15 at 18:56
  • 1
    @ACD, it's conducting through the forward diode. Seems clear to me that it's a problem of not having a common ground. – PkP Feb 23 '15 at 18:59
  • 1
    From your description I can't be really sure what your circuit is like. But can you arrange your connection so that all the power supplies, including the PC USB's grounds are connected together? – PkP Feb 23 '15 at 19:02
up vote 2 down vote accepted

If you have the device connected correctly, and the Arduino ground is commoned with the 12V supply ground, the next suspect is electrostatic damage to either the MOSFET or the Arduino.

If the Arduino pin swings from 0V to 5V when disconnected from the MOSFET, replace the MOSFET. And use proper anti-static working procedures this time.

Also note that most Peltier coolers take 6-10A, so with an ON resistance of 0.1 ohms the MOSFET will dissipate 3.6 to 10 watts, and die rather quickly unless you mount it to an appropriate heatsink (say 5C to 10C per watt)

For your connection to work, you must have a common ground for the MOSFET and the Arduino. The MOSFET's Source must go to the common ground. Also your (12V) power supply's ground must be the same ground.


simulate this circuit – Schematic created using CircuitLab

I think you missing a 10k resistor. Just run a 10k resistor from ground to mosfet pin no. 1 (digital pin 4) and then it will work fine!

here is the working example and circuit diagram.


  • Tried using 10k resistor as suggested, does not seem to work. – Nyxynyx Feb 23 '15 at 21:47
  • is Arduino ground and 12 v supply ground is commoned ? – Mandy Feb 25 '15 at 14:50
  • yes they are... I power the Arduino using the 12 VDC power supply. – Nyxynyx Feb 25 '15 at 15:16

Your Answer


By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

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