Basic Servo Question

Hi everyone,

I made a circuit for education purposes and it works fine.
But I've noticed the servo turns more quickly in 1 direction than the other.
Looking at the code, both turns look identical.
Is this the servo resetting to position 0 or am I missing something?

I'd appreciate the help if anyone has the time to look. Code below:


#include <Servo.h>

Servo  myservo4;  // create servo object to control a servo
// twelve servo objects can be created on most boards

int pos = 0;    // variable to store the servo position

void setup() {
  myservo4.attach(9);  // attaches the servo on pin 9 to the servo object

}



void loop() {

  for (pos = 0; pos <= 179; pos += 1) { // goes from 0 degrees to 180 degrees
    // in steps of 1 degree
    myservo4.write(pos);              // tell servo to go to position in variable 'pos'
    delay(15);                       // waits 15ms for the servo to reach the position

  for (pos = 180; pos >= 0; pos -= 1) { // goes from 180 degrees to 0 degrees
    myservo4.write(pos);              // tell servo to go to position in variable 'pos'
    delay(15);                       // waits 15ms for the servo to reach the position
  }
 }
}

That code is a poor copy of the Sweep example. You have a brace } missing after the first for loop so it's probably not doing quite what you think it is.

Steve

Hi Steve,

Thanks so much! That was it. :slight_smile: :slight_smile: :slight_smile:
I'm really dumb though.
Both directions take the same amount of time now.