How to know Servo Motor is not moving?


I have a setup with a mini maestro Servo Controller (18) with several Servo Motor connected on it. My setup runs on a battery and it is possible to move the setup in different location. However, it is possible that during those manipulation the servo Motor cannot move because something is preventing the motor to move. Let says for the sake of the discussion that the motor is suppose to move an object and sometime the object is too heavy to get move and the motor cannot move at all.

Is there a way, software wise with C#, to know if the motor is not moving at all?




Hobby servos use their feedback internally and do not make it externally available, so there is no way for a servo controller to know where a servo is or whether it is moving. One option is to modify your servo to make its feedback potentiometer voltage externally available (or connect a second, external feedback potentiometer to your servo output), and use this voltage to tell if the servo is moving appropriately or not. Another option is to use a current sensor to measure the average current draw of your servo. If a heavy object is preventing your servo from moving, the servo’s current draw should go way up. Note, however, that stalling a servo, even momentarily, can permanently damage it. One way to help avoid such damage is to power your servos at the low end of their ranges (e.g. 4.5 V) so they will hopefully not generate enough torque to strip their gears when stalled.

Also, please note that RC hobby servos are not “servo motors”, and using the two terms interchangeably can lead to confusion.

- Ben