Hi, I need MOSFET's to power my motors however I need a MOSFET to be switched on at 40mV (Which is the most an output pin can give from the Arduino). Any suggestions? Thanks
40mV (Which is the most an output pin can give from the Arduino)
Care to explain that? If you are getting only 40mV from a pin set to OUTPUT and HIGH, there is something very wrong with the pin or what it is connected to. You need to fix that before you proceed.
To choose a MOSFET you will need to know the stall current of the motor and size the MOSFET to handle that current.
You're confusing mV with mA ![]()
But there is no "best" mosfet. All have pro's and con's but a lot will fit the bill just fine. As a general mosfet I like to use IRF7313's.
First of all, I think you mean 40mA, not 40mV).
Second, we need a bit more information -- like:
- What kind of motor?
a. AC or DC?
b. What voltage do you plan to run it at? [Similar to the question "what voltage is it rated to run at", but my question spans the scope of intentional abuse ;D )
c. What Kind of maximum current can we expect (or, how about a description of the actual application)? - What PWM frequency? This will have an impact on whether or not an Arduino output can directly drive the MOSFET [i.e. charge/discharge the Gate capacitance rapidly enough -- the more current that needs to be switched, the greater the gate capacitance tends to be, and at higher PWM frequencies, you might need a gate driver to do the job.
- Will this need to be powered via a battery, or some external mains-based supply, or ???
- What sort of duty cycle (in other words, will the motor be on for extended periods, or only brief periods, or some random/chaotic intermittence? Will this be a highly predictable duty cycle, or can some incongruence be expected?
- Will this just be a fun little project, or is this destined for production?
septillion:
As a general mosfet I like to use IRF7313's.
Really? I took a look on Mouser and Digi-Key and found only an SO-8 package. That's not an easy package for an obvious noob to use.
Plus, it's only good up to 6.5A and 30V. Cheaper, and far more versatile and easier for a noob to use, is the 55V, 47A
IRLZ44NPBF, a nice Logic Level MOSFET I learned about on this forum (BTW) ![]()
But, still, there are far too many unknowns to even be making recommendations, at this point, doncha think?
I am currently running with IRFZ44N's to power 4 DC motors for a quadcopter. I am sending a 50% duty cycle wave from D6 and this is what i read on the oscilloscope:
(I am sorry for the shit quality, however you can see 40mV as the voltage).
I am using the AnalogWrite(6, 128); command to test a 50% duty cycle on pin 6. My motor turns however barely any of the power source makes it through so little to no power reaches the motor. I have 2 small 3.7V lipo batteries with 330mAH each powering the quadcopter.
The frequency is 490Hz which i believe is the default. (if I'm wrong its whatever the default is).
Its worth noting I was expecting square waves when viewing the output on an oscilloscope, not sure why this is happening. The circuit diagram for each motor I am following is this:
(however I am using a Nano instead of an Uno which shouldn't make a difference)
This is only a fun project ![]()
What sort out output voltage are you seeing if you disconnect the MOSFET? And what do you see if you just configure the output as a digital output and digitalWrite it HIGH?
depre:
I am currently running with IRFZ44N's to power 4 DC motors for a quadcopter. I am sending a 50% duty cycle wave from D6 and this is what i read on the oscilloscope:
(I am sorry for the shit quality, however you can see 40mV as the voltage).I am using the AnalogWrite(6, 128); command to test a 50% duty cycle on pin 6. My motor turns however barely any of the power source makes it through so little to no power reaches the motor. I have 2 small 3.7V lipo batteries with 330mAH each powering the quadcopter.
The frequency is 490Hz which i believe is the default. (if I'm wrong its whatever the default is).
Its worth noting I was expecting square waves when viewing the output on an oscilloscope, not sure why this is happening. The circuit diagram for each motor I am following is this:
(however I am using a Nano instead of an Uno which shouldn't make a difference)This is only a fun project
First thing I notice is: 60V -- also, is that plus AND minus 60V, or just +60V and 0V? Either way, it exceeds the MAX VDSS of the MOSFET (which is rated at 55V).
Looking at the photo of your scope, I see a period of 128.0µS and a frequency of 7.8231kHz (which is close to the inverse of 128µS), so either this is some sort of unrelated noise, or the PWM frequency is more like 7.8kHz.
If you disconnect everything from the Arduino pin, what does the waveform look like (on that pin) -- is it nice and square?
That waveform looks like inductance, which is odd. I wonder if your MOSFET is shorted from Gate to Source (I'm not sure how a MOSFET fails when it is hit with more voltage than it can handle across it's Drain to Source channel (when it's turned off) but maybe the Gate to Source shorts out
)
BTW: even at 7.8kHz, the Arduino output should have no problem driving a MOSFET like this. You just, probably, need one that will take the voltages in use. Also, I would not really consider this a Logic Level MOSFET (at least, not for this application). But, we still don't really know the current demands on that motor -- though, unless this is a really big quadcopter, it's probably well within the drive capability of this class of MOSFET. Also, 60V on a quadcopter? Maybe this IS a really big dude!?!
And, yet another also... you probably want to choose a MOSFET that is small and light. There are such things that can handle a LOT of current -- but, they are usually SMD.
And, also yet again, consider something like a Pro Mini or a Trinket for your quadcopter -- weight reduction being an issue, I would think?!
Show what you have on gate and drain,
ted:
Show what you have on gate and drain,
Yeah, good point. I was assuming that oscilloscope shot was of the Gate.
Also, it would be a good idea to look at the motor supply line, and at the Arduino 5V line, to see if either of them are not steady.
40 mV it is some noise not a signal, pin 6 - what is it doing - no connection to it on the drawing.
depre:
I am currently running with IRFZ44N's to power 4 DC motors for a quadcopter.
The IRFZ44 is NOT a logic level mosfet, and is not really suitable to be used with the 5volt logic of an Arduino.
The mosfet could get warm, and your motors will not reach full speed.
Also, use a schottky diode across the motor, not a common 1N4004 as in most diagrams on the net.
Leo..
The IRFZ44N is not suitable at all for 5V gate drive. You should use a logic level MOSFET.
You haven't given any indication of the load these MOSFETs have to drive. Voltage I presume
is 2S LiPo, ie about 8V, but max current? Need to know...
You can probably get away with much lighter MOSFETs than a TO220 package, which will help
with the mass budget.
Some sort of gate current limiting resistor might be a good idea so the MOSFET gate isn't pulling
too much current from the Arduino pin - 150 ohms might be reasonable.
If you want faster PWM than 490Hz, its probably going to be necessary to consider switching losses - a
gate driver chip might be needed (adding to parts count/weight, alas). A MOSFET with the minimum
total gate charge than can handle the max current load would be best.
analogWrite()
[Analog I/O]
Description
Writes an analog value (PWM wave) to a pin. Can be used to light a LED at varying brightnesses or drive a motor at various speeds. After a call to analogWrite(), the pin will generate a steady square wave of the specified duty cycle until the next call to analogWrite() (or a call to digitalRead() or digitalWrite()) on the same pin. The frequency of the PWM signal on most pins is approximately 490 Hz. On the Uno and similar boards, pins 5 and 6 have a frequency of approximately 980 Hz.
Hi,
Can you please post a copy of your circuit, in CAD or a picture of a hand drawn circuit in jpg, png?
Can you post a picture of your project?
What probe are you using with your scope?
If it is a x10 check that it isn't in gnd mode.
Where are you connecting the gnd of the scope to on the circuit?
If you connect your probe to gnd then 5V pins on your controller what does the scope show?
Thanks.. Tom... ![]()
depre:
Hi, I need MOSFET's to power my motors however I need a MOSFET to be switched on at 40mV (Which is the most an output pin can give from the Arduino). Any suggestions? Thanks
I assume that you are measuring some parameter and when the voltage reaches 40mV, then a mosfet needs to be switched on with a PWM signal?
I think you have mV and mA mixed up.
40mV would be the low level output of a pin.
Hi,
The OP hasn't responded in 4 months and as queried in my post, and looking at the waveform, looked like the scope ground was not connected to the circuit.
Tom... ![]()

