Go Down

Topic: Servo not rotating 180degrees. (Read 727 times) previous topic - next topic


I understand, but the servo.writeMicroseconds(uS) command is fairly new to me. Is it possible that you  could send me a sketch on how to find the end points?

servo test code.

Code: [Select]
// zoomkat 10-22-11 serial servo test
// type servo position 0 to 180 in serial monitor
// or for writeMicroseconds, use a value like 1500
// for IDE 0022 and later
// 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() {
  myservo.writeMicroseconds(1500); //set initial servo position if desired
  myservo.attach(7);  //the pin for the servo control
  Serial.println("servo-test-22-dual-input"); // 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

    // auto select appropriate value, copied from someone elses code.
    if(n >= 500)
      Serial.print("writing Microseconds: ");
      Serial.print("writing Angle: ");

    readString=""; //empty for next input

Consider the daffodil. And while you're doing that, I'll be over here, looking through your stuff.   8)


I used the first sketch, and my servo was running fine in the first part of the loop and reached 180deg without any loud buzzing. However, when it went back to 0deg(the second part of the loop), it could not make completely get to the 0deg position. So I made the minposition smaller(decreased it by 5u each attempt), but nothing really happened. Any way to fix this?

Go Up