Servo defekt oder fehler im Code

nach vielen Tagen rum probieren hab ich nun den Fehler gefunden, und zwar liegt es doch an den Servos.
mit dem "Test-Programm" unten hab ich raus gefunden das meine Servos nur im Winkel von 20 bis 164 funktionieren, wieso weiß ich nicht !
Sollte jemand vllt. ähnliche Probleme haben , füge ich unten eine Test sketch an mit dem man per PC jeden einzelnen Winkel bzw micro sec. am Servo testen kann.

Jetzt hab ich aber ein neues Problem, und zwar fahren die servo am Anfang bis eine Taste gedrückt wird wild umher. Kann ich das lösen in dem ich einen write befehl in "setup" schreibe ?
Oder gibt es eine andere Möglichkeit ?

// 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() {
  Serial.begin(9600);
  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.println(n);
      myservo.writeMicroseconds(n);
    }
    else
    {   
      Serial.print("writing Angle: ");
      Serial.println(n);
      myservo.write(n);
    }

    readString=""; //empty for next input
  } 
}