I'm trying to use an Arduino to control a humidifying system, which means it needs to control a relatively high-power pump. I thought using a MOSFET as a switch would be the easiest and best way to do this, as shown here using this MOSFET.

I double-checked that I configured it correctly to this schematic I made below, but it is not performing as expected. The output pin of the Arduino is shown as a step voltage, and the DC supply represents the 12V (3A) wall adapter used to power the pump. Lastly, the ground is the ground pin on the Arduino, which is powered by my laptop, and not a DC jack.


simulate this circuit – Schematic created using CircuitLab

I wrote a simple test program for the Arduino to make sure it works. It simply drives an output pin high and low, with a couple seconds of delay between transitions. Of course I expect this to run the pump, then stop, and repeat. However, in both states the pump runs, just with slightly more power during the one period.

What I've Done/Tried

  • I verified that the output pin of the Arduino is in fact changing between 0 and ~5V.
  • I measured the voltage and amperage delivered to the pump, and it only slightly changes between states.
  • I tried to measure the resistance of the motor/pump, as well as the drain-source resistance(while Vgs = 0V) but my multimeter would not give me results. (I'm assuming that these were too high for my multimeter.)

Is there a mistake with my design, my choice of N-MOSFET, or is the problem limited to a defective component or error I made in putting it together? If it is one of the former two, how can I fix this?

  • 7
    \$\begingroup\$ There is no motor in your schematic. \$\endgroup\$
    – user263983
    Jul 4, 2021 at 19:47
  • 4
    \$\begingroup\$ Your schematic doesn't show where you've put the pump in the circuit. You can just use a light bulb symbol or a box for the pump. Knowing where the pump is will greatly assist with helping you. \$\endgroup\$
    – ErikR
    Jul 4, 2021 at 19:47
  • 5
    \$\begingroup\$ "Lastly, the ground is the ground pin on the Arduino, which is powered by my laptop, and not a DC jack." - But it's also connected to the negative/ground part of the pump circuit, right? \$\endgroup\$
    – marcelm
    Jul 4, 2021 at 19:59
  • 1
    \$\begingroup\$ "However, in both states the pump runs, just with slightly more power during the high period." Are you sure the FET Drain and Source and +12V power supply are connected the right way around? Switch your meter to Diode Test and measure across the Drain and Source (with Vgs = 0V). When meter positive on the Drain and meter negative on the Source it should read an open circuit. The other way it should show a diode (~0.7V). In operation the Drain should be positive and the Source negative. \$\endgroup\$ Jul 4, 2021 at 22:19
  • 1
    \$\begingroup\$ Where is the power supply? (given Vp is the pump) \$\endgroup\$
    – Damien
    Jul 5, 2021 at 7:58

1 Answer 1


For the MOSFET to work, your gate voltage has to be high with respect to the source.

In the schematic, the source of the MOSFET is connected to both the ground of the Arduino and the ground of supply.

From what you say, it seems like you have connected the source to the ground of the power supply, but not to the ground of the Arduino. It has to be connected to both grounds.


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.