Pages: [1]   Go Down
Author Topic: DC motor torque decreasing with PWM  (Read 4375 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 1
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hello, I am using arduino Uno as an interface between my RC receiver and H-bridge(L293d).
I have been able to control the speed and direction of the motor by PWM. But as the RPM of the motor decreases, the stall torque of the motor decreases as well. I need the motors to power a pan tilt head. Any decrease in torque is not acceptable as the camera and the head is pretty heavy. Is there any way of decreasing the RPM while maintaining the torque?
Any help would be greatly appreciated.

P.S: I got the Uno just yesterday!
Logged

0
Offline Offline
Shannon Member
****
Karma: 200
Posts: 11694
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Can you tell us more about the motor and the supply for it?  A good motor will pull lots of current at stall, perhaps the supply isn't up to this on PWM pulses?  Torque depends on average current, the supply will probably limit peak current, as might the H-bridge.

BTW the fundamental physics means that torque is related to current and RPM to voltage for a DC motor - but this is only actually true if the windings are superconducting - the winding resistance means deviation from this ideal behaviour.  Worth measuring the resistance if you want to estimate the maximum stall current the motor can pull for various voltages.
Logged

[ I won't respond to messages, use the forum please ]

SW Scotland
Offline Offline
Edison Member
*
Karma: 17
Posts: 1376
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

You could increase torque by increasing supply voltage - which will require a corresponding decrease in PWM duty cycle, since an increase in voltage will also tend to increase motor speed (which you do not want)   The increased peak voltage will drive more current through the motor windings and torque is influenced by current.
Logged

Canada
Offline Offline
Sr. Member
****
Karma: 0
Posts: 318
Sometimes teaching, always learning,
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

A gear reduction system may be required if you want lots of torque at a slow speed.
Logged


United Kingdom
Offline Offline
Tesla Member
***
Karma: 224
Posts: 6593
Hofstadter's Law: It always takes longer than you expect, even when you take into account Hofstadter's Law.
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

To maintain high torque at low RPM, use an rpm sensor and PID controller software. The PID controller adjusts the PWM to achieve the required rpm. If necessary it will apply full power (100% PWM) to the motor until it is up to the required speed.
Logged

Formal verification of safety-critical software, software development, and electronic design and prototyping. See http://www.eschertech.com. Please do not ask for unpaid help via PM, use the forum.

Offline Offline
Newbie
*
Karma: 0
Posts: 35
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

To maintain high torque at low RPM, use an rpm sensor and PID controller software. The PID controller adjusts the PWM to achieve the required rpm. If necessary it will apply full power (100% PWM) to the motor until it is up to the required speed.

where would you be able to get rpm sensor for Arduino Uno?

I looked everywhere with no luck. And also How can I get PID controller software or rather how I can apply PID to the Arduino Uno
whenever I put my finger on the spinning dc motor because when I do that, I want arduino Uno to calculate PID and readjust the rpm. How can I do that?

Thanks
Logged

0
Offline Offline
Shannon Member
****
Karma: 200
Posts: 11694
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Another thought:  have you optimized the PWM frequency for your motor?  Too low a PWM frequency will mean the current draw is spikey and more likely to overload the supply I think.  The default Arduino PWM frequencies are on the low side for a motor I think.  Anyway it might be worth investigating.
Logged

[ I won't respond to messages, use the forum please ]

Offline Offline
Edison Member
*
Karma: 32
Posts: 1286
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

I don't think you need an RPM sensor... I think you need a position sensor for the pan & tilt.  i.e. a servo.   

An RPM counter could be a round-about way of making a servo motor, but you should probably just get a real servo motor.

Quote
I have been able to control the speed and direction of the motor by PWM. But as the RPM of the motor decreases, the stall torque of the motor decreases as well.
As mark says, that's pretty-much the physics of a DC motor.   The only input-control you have is voltage (via PWM or whatever).  Current is then determined by the applied voltage and the load on the motor...   i.e. if you put a load on the motor to stall it, current will increase, and if your power supply can't supply the "needed" current, the voltage will drop.

With the proper servo-feedback, the required voltage  can be supplied for the proper torque & speed to position the motor at any moment in time.
Logged

South Texas
Offline Offline
Edison Member
*
Karma: 8
Posts: 1024
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

If you are trying to use slow speed a DC motor is a poor choice without a gearbox to slow things down. The motor has little torque because you are effectively running the motor on low voltage. PWM with a 50% duty cycle is going to behave similar to the motor on 50-60% voltage. To control the position you need some sort of position feedback to "close the loop" and that is a whole bunch of programming in itself. Sounds like a better application for a stepper motor unless you want to get into encoders and closed loop servo control.

A gearbox changes the available torque by the gear ratio.  10:1 means you have 0.1 the speed and 10.0 the torque.
Logged

Pages: [1]   Go Up
Jump to: