Servo Issues

Hi
my servo is jammed completely, when I tried to rotate it , it just made wearied sound with no rotation at all. Is my SG-90 is broken or any solution is possible ?
I've used it without any load.
Thanks in advance,
A.

Sweep_test.ino (840 Bytes)

Have you tried a servo sweep test?

Have you tried write (90) or writeMicroseconds (1500) ? That should put it at roughly the centre travel.
You are powering it correctly (ie not from Arduino 5V, and with at least 1A supply)?

@AmmAr_KHalil, why have you started a Thread about this as well as asking the SAME question in this other Thread. That duplication just wastes people's time. I am suggesting to the Moderator to lock the other Thread, which is very old, anyway.

Following is the Reply I posted in the other Thread

Disconnect the servo from everything and see if you can't move the arm with your fingers (be gentle - but not too gentle) I would try taking apart to see if you can reassemble it with the gears positioned so it can move manually. Google shoud find plenty of examples of the insides of servos.

...R

sweep test is not working, with both functions, writeMicroseconds and write function. But I'm powering my servo from 5V arduino pin.

when I bought new servo,first run the sweep test, it was working perfectly,but after few running tests it get jammed.

Don't power a servo ever from the Arduino 5V pin, it cannot provide enough current and you
risk damaging the Arduino.

You run servos from a dedicated supply capable of at least 1A per servo, or you get problems
(95% of servo issues we see here are peopl not realising servos take real power)

Very simple servo test code you can use with the arduino serial monitor. Note that the inexpensive 9g servos will sometimes strip the gears if driven against the internal hard stops.

//zoomkat 7-30-10 serial servo test
//type servo position 0 to 180 in serial monitor
// 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);
  Serial.println("servo-test"); // so I can keep track of what is loaded
}

void loop() {

  while (Serial.available()) {
    char c = Serial.read();  //gets one byte from serial buffer
    readString += c; //makes the String readString
    delay(2);  //slow looping to allow buffer to fill with next character
  }

  if (readString.length() >0) {
    Serial.println(readString);  //so you can see the captured String 
    int n = readString.toInt();  //convert readString into a number
    Serial.println(n); //so you can see the integer
    myservo.write(n);
    readString="";
  } 
}

I wish Arduino would change their example servo code so it didn't break so many servos. The default servo extremes are beyond the range of many (most?) servos.

i've Ac to Dc adapter with output of 4.5V and 100mA . Is it enough to derive servo safely?

It might work with 100mA but a power supply with 10 times that current (i.e. 1 amp) would be more sensible.

...R

AmmAr_KHalil:
i've Ac to Dc adapter with output of 4.5V and 100mA . Is it enough to derive servo safely?

NO, I repeat - 1A per servo minimum, don't waste time or money on an inadequate supply.