Servo Problem

Moin leute,

ich habe bereits schon im Englischsprachigen Teil einen Thread erstellt, ich hoffe das ist kein Crossposting :wink:

Wollte nur mal hören was meine landsmänner dazu sagen:

Ich habe seit ein paar tagen meinen Arduino - Einfach nur geil, bin total begeistert. Gleich dazu habe ich mir einen Servo bestellt. Gekauft bei Segor Electronics. Der Servo ist ein “SpringRC SM-S4303R”, 360°, angeblich 6kg Torque und wird als “Roboter Servo” deklariert.

Tja, den will ich gern mit meinem Arduino Uno (rev V3) testen.
Im noch alten Forum fande ich einen Post (den finde ich gerade nichtmehr :confused: ) der diesen Servo behandelt. es scheint als ob ich nicht der einzige mit diesem Problem bin. Dort wurde ein Code gepostet:

#include <Servo.h>

Servo myservo;

void setup()
{
  myservo.attach(9); //set up the servo as usual
  Serial.begin(9600); //for watching the speeds in the serial monitor
}

void loop() {

// on this servo 1500 is stopped, above 1500 is clockwise, below is counter clockwise

     for (int i=1500; i >= 1300; i=i-20) //start from a stop and slowly increase to get the motor turning
     {
      myservo.writeMicroseconds(i);
        Serial.print("Running motor at: ");
        Serial.println(i, DEC);
      delay(5000);
   }
  
       for (int i=1300; i <= 1500; i=i+50)
     {
      myservo.writeMicroseconds(i);
        Serial.print("Running motor at: ");
        Serial.println(i, DEC);
      delay(5000);
   }
  
   delay(5000); //wait for five seconds and then spin it the other way, counting up again.
  
    for (int i=1500; i <= 1700; i=i+20)
     {
      myservo.writeMicroseconds(i);
        Serial.print("Running motor at: ");
        Serial.println(i, DEC);
      delay(5000);
   }

}

Mit diesem Code hat der Servo kurz funktioniert. Was ich damit meine: Der Servo funktionierte NICHT, es kam nur ein Brummen. Der Motor versucht also zu drehen bekommt aber zu wenig Power, nehme ich an. Irgendwann, nachdem ich an dem Code rumgespielt habe, ging der Servo wunderbar (Also wirklich Komplett ohne Probleme). Am nächsten tag habe ich den arduino wieder angeschlossen (Habe weder an der Hardware Konstruktion noch am Code was geändert) und er ging nicht mehr.

Vorhin habe ich von einem User im englischen Thread einen Code bekommen der funktionieren sollte:

// zoomkat 10-14-11 serial servo test
// use a microseconds value like 1500 in serial monitor
// 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"); // 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);  // allow buffer to fill with next character
    }

  if (readString.length() >0) {
    Serial.println(readString);  //so you can see the captured string 
    myservo.writeMicroseconds(readString.toInt()); //convert readString to number for servo
    readString=""; //empty for next input
  } 
}

Also auf den Arduino, angeschlossen - Geht! Ja, der Servo geht wieder. Nach ein paar minuten habe ich den Arduino wieder ausgemacht. Dann später wieder an - Servo Brummt wieder. Ich weiß nicht was los ist? Ich habe Nichts gemacht, der Servo Brummt wieder nur.

Ich hoffe wirklich ob jemand eine Idee hat - Er hat ja jetzt schon zwei mal wunderbar funktioniert.

MfG

Ist das ein 6V servo und holst du dir die versorgung etwa vom arduino?

Das weiß ich ja nicht! Ich war sogar auf der offiziellen Webseite von SpringRC, nichtmal da steht was genaueres. Wenn es ein 6V servo ist, ist es natürlich kein wunder dass er nicht geht. Ja, die Versorgung kommt direkt vom Arduino.

Ich habe ein Schaltnetzteil hier, das stelle ich mal auf 6Volt, versorge den Servo mit externen 6V aber PWM vom Arduino.

MfG

Edit: Hier mal die Herstellerseite:

http://www.springrc.cn/english/product.asp?id=140

4,8 - 6V

Hast Du die Masse (GND) des Arduino mit dem Minus-Pol des Netzteils des Servos verbunden? Grüße Uwe

Hi,

das ist mir gerade eine Minute bevor du diesen Post geschrieben hast auch eingefallen :D

Hab das gemacht aber leider ohne erfolg - Auch mit6 Volt. Das Brummen wird lediglich höher (also die "Tonhöhe")

Das Interessante ist - Auch wenn garkein strom angeschlossen ist, also nur das Signal und Ground, brummt der servo auch, obwohl er garkein strom bekommt. Ich habe direkt am Servo (hab den mal aufgemacht) gemessen - 5 bzw 6 Volt kommen an, daran liegts also nicht...

Hallo,

ich habe genau das gleich Problem mit dem gleichen Servo. Hast du das Problem mitlerweile gelöst?

Im Datenblatt steht übrigens, dass er auch schon bei 4,8V funktioniert.

Gruß Jens