Problem with 360° Servo

Hello,

I have a problem with my 360 ° servos. If I run them at 6 volts, they start to jerk after a while, despite the fact that they are officially approved for 6 volts.

Can anyone help me ? :confused: Thank you in advance.

P.S. The servos are running with an external voltage converter.

Start here

Thank you for your answer.

But nothing from this things applying to my problem.

Robotbuilder365:
But nothing from this things applying to my problem.

Not even when you read this :o

Try giving us a few real details. For a start tell us what servos you have, how many and the specification of your "external voltage converter". Then post the code you are using to drive them.

If they jerk "after a while" what do they do before a while? And how long is a while?

Steve

A typical issue is failing to connect the arduino ground to the external power supply ground.

@zoomkat

The Arduino gets ground from the external power supply.

@slipstick

I use two TowerPro MG995 360° servos. The voltage converter converts 6 Volts and should actually have enough power to drive the two servos, unfortunately I dont know, which specific model it is.
The servos are driving normal for 4 or 5 seconds and then they start to jerk, they still drive but much slower.

Here is an example code with which I drive the servos:

#include <Servo.h>
Servo re, li;

void setup() {
Serial.begin(9600);
re.attach(25);
li.attach(26);
}

void loop(){
re.write(130);
le.write(130);
delay(200);
}

A very common issue with servos is inadequate power. How many Amps can your power supply provide?

Simple servo test code you might try to see if the servo runs stable without anything else going on.

// zoomkat 7-30-10 serial servo test
// type servo position 0 to 180 in serial monitor
// for writeMicroseconds, use a value like 1500
// Powering a servo from the arduino usually *DOES NOT WORK*.

String readString;
#include <Servo.h> 
Servo myservo;  // create servo object to control a servo 

void setup() {
  Serial.begin(9600);
  myservo.attach(9);
}

void loop() {

  while (Serial.available()) {

    if (Serial.available() >0) {
      char c = Serial.read();  //gets one byte from serial buffer
      readString += c; //makes the string readString
      delay(3);
    } 
  }

  if (readString.length() >0) {
    Serial.println(readString);
    int n = readString.toInt();
    Serial.println(n);
    myservo.writeMicroseconds(n);
    //myservo.write(n);
    readString="";
  } 
}

The program doesn't work...
Arduino says, that "serial buffer" is an error.

Robotbuilder365:
The program doesn't work...
Arduino says, that "serial buffer" is an error.

Post the code. Post the actual error message

The program is the same that zoomkat sent.
The error is: serial was not declared in this scope.

zoomkat doesn't use "serial", they use "Serial".

What is the reference to "buffer"?

When I wrote

Post the code. Post the actual error message

I really meant it.

Otherwise, you're just wasting time. Oh...wait.

Robotbuilder365:
The program is the same that zoomkat sent.
The error is: serial was not declared in this scope.

Then you've messed with it because it compiles without error for me (IDE 18.10, Nano). And "serial" only appears in // comments.

Steve

It is good now, I found my problem.

Thanks to all. ^^

So what was your problem? It might help someone coming along later...which is the point of these forums.

Steve

The problem came from the servo itself.
There was an issue with the gearbox. One gear didn´t turn properly.