1

I have an MG996R servo motor connected to an STM32. I am programming the micro with the Arduino programmer.

The servo motor is used to open a lock.

After testing the servo with the lock, because the lock was stuck at certain angles, a noise was coming from the servo and after a few minutes the servo stopped working and it seemed that it was broken (also, smoke came out of it).

Is it possible to stop the servo at angles other than 90°?

Thanks in advance.

ocrdu
  • 2,172
  • 6
  • 15
  • 22
Hamid Rajabi
  • 59
  • 1
  • 8

1 Answers1

1

A servo is not stopped at a certain degree it is driven to a certain angle by providing a specific duty cycle with the PWM control signal.

On a standard servo the PWM frequency is 50Hz. An on-time of 1ms is full travel in one direction, 2ms is full travel in the other direction, 1.5ms is mid position. For most servos this is 0°, 90°, 180°.

According to the datasheet of your servo it has a travel of ±60°

Read this:

https://www.arduino.cc/reference/en/libraries/servo/

If your gear train breaks and the motor releases its magic smoke just because the lock is a little stuck you're certainly doing something wrong. At least limit the motor current.

Stall current for this motor is 2.5A at 6V.

Piglet
  • 27,501
  • 3
  • 20
  • 43
  • So, if (for any reason) the servo motor is not able to complete its course and gets stuck, won't it cause any problem? namely, burns the motor? – Hamid Rajabi Jan 11 '21 at 05:29
  • 1
    you only burn the motor if you exceed the maximum current or drive the motor with more power than its housing/mounting can dissipate. when the motor stalls the current will rise . turn it of then by in the simplest case using a fuse. – Piglet Jan 11 '21 at 06:10