Go Down

Topic: DC motor torque decreasing with PWM (Read 5 times) previous topic - next topic


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?



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.
[ I won't respond to messages, use the forum please ]


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.

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.


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.

Go Up