Got a question by email, which I discourage, because then nobody else can chime in to add details or correct errors.
Here’s the transcript:
I want to control a brushed DC motor (speed and direction) with a PWM driver (L298) controlled by a microcontroller (Arduino), with the following requirements:
- Motor voltage range: 6 – 12 V dc.
- Forward / Reverse
- Power Supply : 12 v battery (No regulator (12 → 6 V)
- The motor must perform as being supplied at 6 V dc.
It means to me that the motor should be supplied at 6 V with some kind of PWM magic. I was told that it can be accomplished but not how to do it.
Yes I can set 50% Duty Cicle (PWM), then I have 6 V in the motor, but it means constant speed (or I just misunderstood PWM) so I cannot increase/decrease speed.
I have 0 – 127 (0 – 50%) control speed but below motor specs (6 – 12 V) son motor stops.
And above (127 – 255) I have control too but in the 6 – 12 V range so above 6 V.
I have searched forums and Google, but I can´t find the way to do it. It´s likely an odd question but I am simply lost.
And my reply, which may seem curt, but remember that I really can’t do design work by email…
> then I have 6 V in the motor,
> but it means constant speed
> (or I just misunderstood PWM)
> so I cannot increase/decrease speed.
PWM allows you to supply a DC voltage equivalent to
(PWM duty cycle) x (DC input voltage)
You can change the speed of the DC motor by changing the PWM duty cycle, thus increasing or decreasing the voltage applied to the motor. But that’s the limit of your control.
> below motor specs (6 – 12 V) son motor stops.
That, unfortunately, is the nature of DC motors. Their torque depends strongly on the input voltage and below the rated input, the torque drops off sharply.
This introduction may help. I found it by searching on
“dc motor” torque pwm
and you will find other references using similar searches.