7 years, 5 months ago.

Stepper motor control with mbed: problems when changing rpm


I recently started the control of a stepper motor by using an mbed LPC1768. So far I could make it turn at a constant speed but have troubles when changing the rpm.

I'm using a pololu stepper motor (bipolar, 200 steps/rev, pololu item #1206) controlled by a stepper motor driver DRV8825 (pololu item #2133).

I tried 2 control methods: by pwm with the PwmOut class and by using the Ticker and Timeout classes, but got roughly the same result.

There are 4 points I would like to confirm:

1) there is a high pitch noise when the motor is turning, is it normal ?

2) when i change the rotation speed of the motor, the transition is not smooth. it's looks like the motor stops for a very short time and restarts immediately after with the new rpm, even when the speed is changed slowly by increments of 1 pulse per second.

3) so far there are few constant values of the pps for which the motor is turning properly (with the high pitch noise though), other values just block the motor. a value that seem to work fine is 1200pps. if someone has experience with this motor driver, what are the ranges of rotation speed in which the motor rotates smoothly and if possible with no noise?

4) The motor often gets very hot, even if the potentiometer on the DRV8825 that allows the adjustment of the maximum current is set to its middle position. Is it normal? if yes, besides a heatsink and a fan, are there other ways to set the stepper motor and driver to minimize the heat dissipation ?

For reference, I attach my test program with the 1200pps speed by using the Ticker and Timeout method. /media/uploads/merlinthewizz/steppermotortest.cpp

Thanks in advance!


Any suggestion ?

posted by Harvey N 21 Mar 2015
Be the first to answer this question.