Problems with Servo Motor MG996R

Hi,

I am trying to build a robotic arm as a small project because I am new to this whole thing.
For starters I took the servo motor MG996R (what maybe was a mistake ) and ran into problems pretty quick. When I load the code that i used for the SG90 motors the motor, it just does weird things.
I figured it had something to do with the power supply of the motor because it still was getting its current from the Arduino 5V pin itself and that there might not have been enough Ampere etc..
When I connected it to another Power supply that I can change like i want I put it around 6-7V. But when I did that the wire got hot and there still was no sign of correct movements.

So whats the Problem here, do I need to buy better cables for these Servos to work?
And how do I provide a power source for multiple of these at the same time ? Are there any good and easy options to power multiple servos at the same time ?

BR,
Karl

Always

Show us a good schematic of your proposed circuit.
Show us a good image of your ‘actual’ wiring.
Give links to components.


In the Arduino IDE, use Ctrl T or CMD T to format your code then copy the complete sketch.
Use the </> icon from the ‘reply menu’ to attach the copied sketch.

Mostly likely you have an inadequate power supply. For that servo, you need a separate power supply capable of providing at least 3 Amperes. A 4xAA battery pack with fresh or fully charged cells will work for a short while.

Don't forget to connect the grounds.

I still have to learn how to create schematics of circuits so I dont have one.

The picture of the wiring is attached.

The link to the servo is here https://www.electronicoscaldas.com/datasheet/MG996R_Tower-Pro.pdf

#include <Servo.h>
Servo myservo;    // erzeugt ein Servomotor-Objekt
// maximal können acht Servomotor-Objekte erzeugt werden
int pos = 0;      // Variable, die die Servoposition (Winkel) speichert
void setup() {
  myservo.attach(10);  // an welchem Pin ist der Servomotor angeschlossen
}
void loop() {
  for (pos = 0; pos < 180; pos += 1) { // von 0 bis 180 Grad, in Schritten von einem Grad
    myservo.write(pos);                   // sagt dem Servomotor, in welche Position sich drehen soll
    delay(15);                            // wartet 15 Millisekunden
  }
  for (pos = 180; pos >= 1; pos -= 1) { // und das gleiche zurück
    myservo.write(pos);
    delay(15);
  }
}

It is a code that i copied to simply test the servos.

My power supply should be fine I still think it is the wires that create the problems.
I replied down below you can see the power supply etc there.

Wiring error, possibly damaging a number of components.

Don't try to use a breadboard for motor currents, as the tracks will burn. Breadboards are for low power logic circuits.

I didnt use the Breadboard for these as it seemed pointless for that exact reason it was just there because I used it for a joystick sort of thing earlier.
So I may have damaged my servos ? Hm that sucks but whatever.
And the wirres itself cannot lead to a Problem ?

Of course they can. You need to use a wire gauge that supports the expected current draw.

AWG table

There needs to be a wire from the Arduino GND pin to the servo power-supply GND.

Pen and paper usually works well. Then a camera and posting the picture here.

Never power any motor from any Arduino pin. The tiny strips on the board are not designed for that. They might even fuse.

I once read that I always need to use the ground on the arduino but I didnt think that this would be correct in this case.
Why would I do that ?

And where would I get those then ? Are there any go-to stores ?

Ok thank you. Wont do that again.

The control signal that goes out of the Arduino needs to return to the Arduino.


If you connect the signal wire (control wire) to the servo you need a return GND wire from the servo to the Arduino.

1 Like

Oh that makes sense. Maybe this also was one of the reasons for the lack of control.

Most definitely.

Thanks alot I will try that.

How would you wire that ? If you look at the picture I dont really know how to get a second wire connected to the GND of the Power Supply

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.