Continue to Site

Welcome to our site!

Electro Tech is an online community (with over 170,000 members) who enjoy talking about and building electronic circuits, projects and gadgets. To participate you need to register. Registration is free. Click here to register now.

  • Welcome to our site! Electro Tech is an online community (with over 170,000 members) who enjoy talking about and building electronic circuits, projects and gadgets. To participate you need to register. Registration is free. Click here to register now.

PWM Motor Drive with FET Only

Status
Not open for further replies.

kokoko

New Member
Gonna pwm-control a 12v dc motor with 2.3Ohm resistance between pins at pwm frequency of 500Hz (actually, it's an electronic throttle).
is it viable at all without special drivers, just that IRF540N fet connected directly to arduino? why should I add a driver to that circuit? Should I be using an optocoupler? What are the benefits/disadvantages of using/not using a driver?
 
Last edited by a moderator:
The IRF540N is not a "logic-gate" NFET, so will not turn on fully if driven directly with oV and 5V from the Arduino Port if powered from 5Vdd. It takes a Vgs of 10V to turn on the IRF540N, which can be done if you put a "driver" between the Arduino port pin and the gate of the '540.

A "logic-level" FET is one that turns on fully with only 3.5V or 5V on its gate... There are many possible NFETs that the Arduino can drive directly.

I recommend Opto-Isolation in the gate drive to the NFET to prevent ground loops (causes spurious resetting of the Arduino) between the Arduino power supply and the motor power supply if they can be kept separate. If the Arduino is powered from the same supply as the motor, then opto-isolating wont help with that problem. It has to be solved by how the grounds are routed.

What is the power supply for the motor?

How is the Arduino powered?
 
Last edited:
It would probably work.
However the fet just starts to turn on around 5v, so it wouldnt realise its rds on, and so would get hot.
As mentioned a driver is better, at such a low frequency you might be able to get away with a bjt and a couple of resistors, and using a higher voltage supply, the motor voltage if higher than 10v would do.
The trouble with motors esp dc ones is they have mechanical commutation which makes them electrically noisy which could mess up the processor.
 
Gonna pwm-control a 12v dc motor with 2.3Ohm resistance between pins at pwm frequency of 500Hz (actually, it's an electronic throttle).
is it viable at all without special drivers, just that IRF540N fet connected directly to arduino? why should I add a driver to that circuit? Should I be using an optocoupler? What are the benefits/disadvantages of using/not using a driver?

Hy kokoko,

Welcome to ETO. I see you are from Russia; which part? Russia is a big country. Also care to put your location in your user window on the left of your posts.

One of the problems with driving a MOSFET gate with an Arduino is that the maximum current allowed from each Arduino input/output pin is 40mA and the total output current of all pins combined is limited to 200mA. As MOSFET gates have a very high effective input capacitance of 1nF to 20nF, there is a problem when you drive MOSFET gates directly; because the edges of the Arduino output are very fast, the drive current will be very high to charge and discharge the MOSFET gate capacitance. You will normally get away with directly turning a MOSFET on and off occasionally, but the trouble is that PWM is continuous so you will be stressing the Arduino microcontroller chip.

So for PWM you need a gate driver circuit between the Arduino and the MOSFET gate. This can either be a discrete circuit or an integrated circuit

Gate drivers have other advantages:

(1) Gate drivers have a high current capability, typically 1A to 4A, to charge and discharge MOSFET gate capacitances fast. This reduces MOSFET switching times and thus reduces the MOSFET power dissipation which in turn gives the MOSFETs an easier time and increases efficiency.

(2) Gate drivers can also generate a high gate drive voltage which gives you the option of using a wider range of MOSFETs, rather than just logic-level MOSFETs. This advantage is especially important with the Arduino Due which, although a far superior microcontroller in all other respects, has less drive current (10mA I think) and only 3.3V drive voltage.

In your case, a gate driver could generate a gate drive voltage of 12V simply without any complex additional circuitry. This would allow an IRF540N NMOSFET to be used.

(3) The other major advantage of gate drivers is that they are designed to handle the difficult conditions present at MOSFET gates when MOSFETs are driving nasty loads: noisy, inductive, capacitive. This is especially relevant in an industrial, automobile, and motorcycle environment.

Isolation: opto, capacitive, inductive, between the Arduino and the MOSFET, in the same way as (3) above, isolates the Arduino supplies from what may be a nasty 12V supply with loads of noise and hash, especially on the critical ground line.

You can get direct coupled and isolated gate driver chips; both are freely available, easy to use, and reasonably priced.

By the way, I would advise dropping your PWM frequency from 500Hz to 50Hz to minimize switching losses and maximize efficiency.

spec
 
Last edited:
Why not use an Arduino motor shield? These are made to eliminate the problems of the electrical noise and back EMF from a motor.
 
Kokoko when you say electronic throttle, do you mean an electronic throttle disc as in later cars, if so these require a totally different drive technique.
 
If this is a throttle control for a road vehicle I would recommend against using an electronic approach. Like, brakes and steering, throttle control is a safety critical area where a malfunction represents a danger. Also, your proposed modification will invalidate your insurance.

spec
 
Gonna pwm-control a 12v dc motor with 2.3Ohm resistance between pins at pwm frequency of 500Hz (actually, it's an electronic throttle).
is it viable at all without special drivers, just that IRF540N fet connected directly to arduino? why should I add a driver to that circuit? Should I be using an optocoupler? What are the benefits/disadvantages of using/not using a driver?
A full PWM bridge or two half bridges are required to run this motor.
A single FET drive would result in overshoot from inertia and overshoot voltage when opening switch during PWM, so active switching to Vcc & gnd is necessary.
 

Attachments

  • image.png
    image.png
    649.8 KB · Views: 181
Status
Not open for further replies.

Latest threads

New Articles From Microcontroller Tips

Back
Top