High torque servos are not working properly

Hello Everyone,

This is my first post. If I make any mistake, kindly forgive me.

Recently, I am trying to incorporate high torque servos in my projects. However, I am having some issues while using these servos. The servos I am using is RDS1335MG and MG996R (Tower Pro) with Arduino Uno.
The Arduino Uno is powered by a PC and the servo is powered by an external power source (7 volts). I have attached the circuit diagram along with this post.

The servos work fine with the sweep and knob program of Arduino’s servo library. However, whenever I program it to move to a specific position, it initially jitters and if I apply some force it moves to the specified position.

The code I used to move to a specific position is mentioned below.

#include <Servo.h>
Servo myservo; 
void setup() {
  myservo.attach(9);  
}
void loop() {
  myservo.write(180);
  delay(20);
}

I have attached a video link that shows that initially, the servo works fine when the sweep program is used. However, later when I uploaded the code for moving to a specific position, it moves to the position only after some force.

Kindly help me in this regard. I will be highly thankful for any advice to overcome this situation.

Thanking you in anticipation.

Best regards

There are two very common issues with servos: Not enough power and trying to make them turn too far.

If sweep works, power is probably OK, but the servo may not be able to get to 180. Try a smaller number.

Sweep makes lots of tiny 1 degree moves. That takes much less power than doing a large move in one go. I have often seen servo setups that work with Sweep but not with simple write()s. What exactly is your “external power source (7 volts)”? What current specification? Are all grounds connected?

And where is the circuit diagram?

Steve

an external power source

Needs to be able to supply at least 3 Amperes per servo, for the MG996R.

It needs to provide more power from an external source. Please do not forget to connect GND of the external source and Arduino together.

People always seem to strongly underestimate the current draw of low voltage DC motors.
Not sure why this is, but for motors start thinking of amps to tens of amps, not fractions
of an amp. Generally the higher torque the more current too...

Part of the issue is that stall currents are much higher than steady load currents, and unless
you have implemented current control you typically need the motor driver and supply to
survive brief periods of stall current without damage or tripping out.

With really large motors the stall currents are actually extreme enough to damage the motor, so
current limiting/control is always implemented for large industrial DC motors.

Hobby servos are notorious for not providing stall current specifications, you are expected to
guess or measure this!