Arduino – der Umgang mit dem Servo Motor

Heute habe ich mal etwas mit einem Servomotor gespielt den ich noch in meiner Elektronikkiste liegen hatte. Bei dem Servomotor handelt es sich um einen kontinuierlich drehenden Servo. Ich habe als erstes die Arduino Beispiel Sketche getestet und mich gewundert warum sich der Servo immer nur in eine Richtung drehte. Durch Zufall kam ich auf die Lösung des Problems. Der Servo musste händisch, durch drehen eines kleinen Stellrades im Inneren feinjustiert werden. Um den Servo zu justieren geht man am besten wie folgt vor.

Servo mit dem Arduino verbinden

Servo         Arduino
Schwarz   GND
Rot       +5V
Gelb      Digital Pin 2

Arduino-Servo

Justieren eines kontinuierlich drehenden Servos mit Stellschraube

Wenn Sie einen Servo mit Stellschraube haben, ist es leicht diesen zu justieren.
Führen Sie einfach dieses Arduino Sketch aus. Der Servo-Motor wird sich kontinuierlich drehen. Justieren Sie nun den Servo-Motor, indem Sie mit einem kleinen Schraubenzieher so lange an der Stellschraube drehen, bis der Motor stoppt.

Servo-MotorStellschraubeJustieren des Servos

Justieren eines kontinuierlich drehenden Servos ohne Stellschraube

Auch ein sich kontinuierlich drehender Servo ohne Stellschraube lässt sich justieren. Dies erledigt man direkt im Arduino Sketch. Wenn man weiß, dass der Befehl myServo.write (90) den Servo stoppen soll, sich der Servo jedoch trotzdem langsam weiter dreht, dann können Sie folgendes Sketch nutzen um den korrekten Winkel zu ermitteln, bei dem der Servo zum stehen kommt. Übertragen Sie dazu einfach dieses Sketch auf den Arduino und öffnen Sie den seriellen Monitor. Beachten Sie jedoch, dass Sie die gleiche Baud-Rate einstellen, die Sie auch im Arduino Sketch vorgegeben haben. Notieren Sie sich den Wert, der im Seriellen Monitor angezeigt wird, bei dem der Servo stoppt! Wenn der Servo zum Beispiel anstatt bei 90 bei 94 stoppt, dann nehmen Sie ab sofort diesen Wert zum stoppen des Servos.

 

Unterschiede in der Steuerung der verschiedenen Servo Typen

Mit Servo.write() kann man den Servo steuern. So lässt sich dieser je nach übergebenem Wert in zwei verschiedene Richtungen drehen oder stoppen. Der Unterschied in der Steuerung der verschiedenen Servo Typen ist nun folgender. Sendet man z.B. den Wert Servo.write(45) an einen Standard Servo dann dreht sich dieser auf die 45 Grad Position, wohingegen sich ein kontinuierlich drehender Servo mit einer mittleren Geschwindigkeit in eine Richtung dreht. Folgende Werte lassen sich für die Geschwindigkeit der Drehung in die verschiedenen Richtungen heranziehen.

  • 0 = Volle Geschwindigkeit in eine Richtung
  • 98 = Langsamste Geschwindigkeit in die selbe Richtung
  • 90 = Stoppen
  • 91 = Langsamste Geschwindigkeit in die entgegengesetzte Richtung
  • 180 = Volle Geschwindigkeit in die selbe Richtung

 

Steuerung eines Standard Servo Motors

In diesem Beispiel wird der Servo alle 5 Sekunden um 45 Grad gedreht.

 

Steuerung eines kontinuierlich drehenden Servo Motors

Dieses Sketch dreht den Servo Motor für 5 Sekunden, in voller Geschwindigkeit und anschließend in langsamster Geschwindigkeit, links herum. Danach wird der Servo für 5 Sekunden gestoppt. Anschließend dreht sich der Servo für weitere 5 Sekunden in voller Geschwindigkeit in entgegengesetzter Richtung. Die Variable center ist für die Justierung des Servos zuständig. Würde ich diese in meinem Fall weg lassen, dann würde der Servo in den langsamen Drehungen einfach stoppen.

Über Enrico S.

Programmierer, Webdesigner, Grafiker, Blogger, Screencaster, Arduino- und eMobility Enthusiast.

Kommentare geschlossen.