Electrical – Brushed 5V-9V DC motor speed control

brushed-dc-motormosfetpotentiometer

I was looking for a very simple solution to control the speed of a 5V-9V DC brushed motor, while testing with 4 AA 1V batteries, afterwards with a 25c 2 cell 1250mah LiPo.

I have zero background in electricity and such but would like to learn during the process, the first tutorial I found and followed was this.

I have 2 potentiometers: one with 500k rating the other with 50k.
I started tried the link above with the 500k one and it all worked fine on the 4 AAs, but when I switched to the LiPo the potentiometer started smoking and burning up.

So I moved on to a different guide which said all I was missing is a MOSFET.

Following this guide things seemed to work (now with a 50k pot). However I noticed that at max power the motor was getting only 3.65V from the 4 AAs that were producing about 6.12V.

From the little I understood, MOSFETs have very little resistance once you pass the RDS(on). This is the spec of the one I'm using.

My question is: did I simply pick a bad one? Where in the spec sheet can I see how much power is lost even when I pass the gate threshold?

Also, I did find another schematic very similar to the one above that said I should switch the negative to the gate, controlled positive from the pot to the source and then connect the drain to the negative of the motor.

Though this seemed to work there were 2 side effects:

  1. I can barely control the speed of the motor, once it passes the threshold on the pot, there is like a 3% range in motion where it goes from no power to full power.

  2. When it's on low power the MOSFET heats up very quickly.

What is the correct way to hook things up? Am I using incorrect ratings?

Best Answer

  1. i can barely control the speed of the motor, once it passes the threshold on the pot, there is like a 3% range in motion where it goes form no power to full power.

This is what happens when you try to control motor speed with a MOSFET in linear mode. To understand why, look at the FET's output characteristics:-

enter image description here

When fully turned on and dropping low voltage it acts like a resistor, but with little control over the resistance (steep upward sloping line at the left of the graph). At higher Drain-Source voltage, and with Gate voltage adjusted to operate in linear mode, it does a good job of regulating the current drawn by the load. For example, with 5V on the Gate it holds the current close to 10A all the way from 2V to 60V.

But a DC motor's speed is mostly determined by the voltage it receives. The motor will draw as much current as is required to produce sufficient rpm to generate a back-emf which cancels the applied voltage (minus voltage drop across its armature resistance, which is usually very low). If fed with a constant current it will start with a very low voltage drop, then as it picks up speed the voltage will rise and it will speed up even more. The result is extremely poor speed control.

To get good regulation of the motor's speed you need to vary the voltage applied to it, independently of any current it draws. A MOSFET cannot do this by itself unless you connect the motor from Source to ground, but as the Gate-Source voltage is then above the motor voltage you must apply a higher voltage to the Gate (which is inconvenient because you need another battery or a voltage booster to produce the extra Gate voltage required). This regulates well because if motor voltage drops the Gate gets more voltage so the FET turns on harder and vice versa. here's the circuit:-

schematic

simulate this circuit – Schematic created using CircuitLab

  1. when its on low power the mosfet heats up very quickly

This is the other problem with using linear mode. The MOSFET controls motor voltage by subtracting it from the supply voltage. Since motor current flows through the MOSFET at the same time, there is a power loss. Watts = Volts x Amps. If the power supply is 6V and the MOSFET is supplying eg. 2V to the motor then it must be dropping the other 4V, and if the motor is drawing 2A then the MOSFET must dissipate 4V x 2A = 8 Watts of power.

But if the only way to control motor speed is by varying the voltage, how can we do it without wasting power? The answer is to pulse full power into the motor, with a varying duty cycle. Since the motor has inertia and takes time to speed up and slow down, if we pulse the power rapidly it will only respond to the average voltage. The motor windings also have inductance, which opposes current change and so smooths out the current pulses, reducing current peaks closer to the average current as the pulse rate is increased.

This type of motor control is called PWM (Pulse Width Modulation). It greatly reduces power loss in the MOSFET because the FET is almost always either fully on (passing current but dropping almost no voltage) or fully off (dropping voltage but passing almost no current). When the FET switches on and off there will be a power loss as it passes though the linear region, but if the transition is very quick (Gate driven with sharp edged square wave) then the average loss will be low.

Using PWM the motor can be connected to the Drain and Source to ground, so you don't need to boost the Gate drive voltage (provided the FET can be fully turned from the main supply voltage). Here's an example circuit which uses a 555 timer IC to generate the PWM Gate drive:-

enter image description here

Note the diode D3 - which recirculates inductive current through the motor when the FET is off, and C3 - which smooths out supply voltage variations caused by the pulsating current flow. These components are essential to provide good efficiency and to prevent voltage spikes from damaging the MOSFET and 555.