First time trying to control a dc brushed motor with a N-Channel MOSFET.

I believe I understand how it should work but it just isn't and I am stuck as to what to test and fix or change.

I have a small Dc brushed motor(if i connect it directly to +5V power supply it works fine) that i connected to ma IRF1010N MOSFET as per the schematics. Arduino runs just blink code (but it also doesn't work if i manually connect gate to +5V) enter image description here

However if i replace the motor with an LED it works just fine Led blinks like it shouldenter image description here

I have tried running the motor on 12V(thinking the MOSFET was dropping the voltage too much) and it still doesn't work, but if i connect Gate to +12V for a while, it like "charges" and starts turning, but a 1 sec pulse from arduino doesn't turn it on.

What am I missing? the motor alone works, MOSFET with LED works it just when I try connecting the motor in place of the LED it doesn't work? What can i try what can I test?

  • 2
    \$\begingroup\$ The rated Threshold voltage of the MOSFET you are using is between 2-4V, that's not alot of room with 5V control logic. Try using a MOSFET with a smaller threshold, this one probably can't drive enough current with the applied voltage. \$\endgroup\$
    – jramsay42
    Commented Sep 24, 2017 at 23:18
  • 1
    \$\begingroup\$ This may not be a well chosen FET. The data sheet doesn't really give figures for performance at 5v gate drive - it will pass at least small currents (so the LED lights) but the full performance figure is given with 10v on the gate. Compare something like a DMN2041L commonly used in quadcopters where performance is stated for both 2.5v and 4.5v gate drive... though you probably want something that isn't surface mount. Also make sure you have the FET leads correctly identified and that you haven't already zapped the gate oxide, shorting it to one of the other leads. \$\endgroup\$ Commented Sep 24, 2017 at 23:18
  • \$\begingroup\$ In the through hole realm, Adafruit seems to have chosen the IRLB8721PBF cdn-shop.adafruit.com/datasheets/irlb8721pbf.pdf as the N-FET they offer, and it does give a figure for 4.5v gate drive. \$\endgroup\$ Commented Sep 24, 2017 at 23:23
  • 1
    \$\begingroup\$ I did :P. If i understand correctly 5V at the gate does not allow enough Current to flow Drain-Source so the motor does not spin. I should buy a different MOSFET with more detailed rating around 5V gate. \$\endgroup\$
    – Kosovir
    Commented Sep 24, 2017 at 23:28
  • 1
    \$\begingroup\$ Yes. Something you could do is to measure the drain-to-source voltage with the gate alternately grounded and connected to 5v. Would be even better if you used a power resistor in place of the motor, in which case you could figure out the whole thing, at least to the extent that the resistor doesn't heat up and change value. \$\endgroup\$ Commented Sep 24, 2017 at 23:32

1 Answer 1


First figure out how much current you need to make your motor move. Then look up the IV curve for the mosfet and make sure the mosfet will sink at least that amount of current at 4.5v gate voltage.

looking at the graph I see that the mosfet should pull about 1 amp. is that enough for the motor?

The mosfet most likely requires more gate voltage to turn on sufficiently. You can test this by applying 10v to the gate. At 10v gate source voltage the mosfet will be able to pull well over 10A, more than enough for most motors.

It also makes sense mentioning that the load you are trying to drive is inductive. Current will slowly increase when the mosfet is on and when it turns off it will want to continue. With no where to go it will drive the drain of the mosfet to some arbitrary high voltage. It makes sense to place a diode across the coil to absorb this high voltage pulse. The cathode will be connected to the 5v rail and the anode to mosfet drain.


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.