Go Down

Topic: 6DOF Robotic Arm using Arduino Uno and 6 Tower pro Servos (MG996R ) (Read 42 times) previous topic - next topic


Hi all,
     This is my first post in the forum. Currently am working in a 6-DOF robotic arm driven by Uno and MG996 Tower pro servos. I am using 5V 10A Smps.  Among  the 6 motors ,2 of them not rotates as per the program. Both rotates in 360 even for the sample program "SWEEP" which is given in the Arduino example programs. Sweep program instructs to drive in between 0 and 180. Ground connected commonly for Arduino and SMPS.

                                                                  Some motors works properly in between  0 and 180. But they does not follows constant speed . Some times speed changes. I have tried with another PWM pin, But problem is still exist.  I don't know whats the problem is. Please give me your suggestions.  

                  If it is the problem of motor or power supply, please tell me how i can cover it.


A schematic, showing how the servos are connected to the power supply and to the Arduino is essential.

If, with a simple sweep program, some motors go from 0 to 180 and back, and some rotate at varying speeds and directions, the problem isn't the code. The problem is that some of the motors are servos (position can be controlled) and some are variable speed electric motors (only speed and direction, not position, can be controlled).
The art of getting good answers lies in asking good questions.


Thank you for the replay. This is the schematic of the my circuit.

                I have brought 6 motors. But 3 of them works perfectly. But the rest moves a continuous rotation.  I don't know why the same series servomotors behaves differently for the same code.


Hi Ajith,

Power is the problem here. I faced the same problem connecting multiple devices and arduino to 5VDC. As per
the Arduino UNO data sheet, You need to give (7 - 12) volts to arduino input in Vin pin, unless you give supply 5V through USB. Once you connect +12VDC to arduino and +5VDC to all motors, your system will work just fine.


Power is often a problem with servos, but I do not think that explains the OP is describing.
Those servos are at the low end of the quality/price spectrum.  There are going to be some examples that fail. 

One common mode of failure is that if a servo command is given at one end of the range, it makes the servo rotate continuously.  Some people have been able to still use these are typical servos by avoiding commands at that end.  For example, limit the servo commands to between 1000us and 2000us.  I think by default, the servo.Attach uses a default of something like 544 and 2400.

If they still do not behave, then you may consider purchasing some additional servos.  I recommend getting more than you need, as some of them may be bad out of the box, or you might strip gears in your assembly or testing.

Go Up