Ein Servomotor verfügt über eine interne Regelung, sodass von außen nur eine Position angeben werden muss, die er selbstständig anfährt und hält (trotz Krafteinwirkung). Er kann dadurch sehr genaue Positionen anfahren, ist aber nicht für endloses Drehen ausgelegt. Der Motor wird direkt oder mit Hilfe des Grove Shields an einen Arduino angeschlossen und über Pulsweitenmodulation (PWM) angesteuert.
Der hier abgebildete Servomotor kann in einem begrenzten Winkelbereich rotieren und somit unter anderem Zeiger oder Hebel bewegen. So kann beispielsweise die Lenkung eines ferngesteuerten Autos mithilfe von Servomotoren bewegt werden.
Alle weiteren Hintergrundinformationen, sowie ein Beispielaufbau und alle notwendigen Programmbibliotheken sind auf dem offiziellen Wiki (bisher nur in englischer Sprache) von Seeed Studio zusammengefasst. Zusätzlich findet man über alle gängigen Suchmaschinen durch die Eingabe der genauen Komponentenbezeichnungen entsprechende Projektbeispiele und Tutorials.
Wichtige Hinweise:
Je nach Motoraufbau kann der maximale Aktionsradius des Motors variieren. In vielen Fällen erreicht der Motor nicht die angegebene Gesamtrotation von 180°. Ist dies der Fall, kann es zu unerwartetem Verhalten (Zucken, Rattern, Spannungsabfall, Wärmeentwicklung…) führen, wenn der Motor in die Extrempositionen gedreht wird. Aus diesem Grund wird empfohlen, den Motor nur in einem Bereich von ca. 10° bis 170° zu bewegen.
// schließe einen Servo an Pin D9 des Arduino / Grove Shield an
// lade den code auf den Arduino
// der Servo wird verschiedene Positionen anfahren.
// Danach passiert nichts mehr bis du den Arduino neustartest.
// dies geht z.B. mit der Reset-Taste.
#include <Servo.h>
// erstellt ein Servo-Objekt, um einen Servomotor zu steuern
Servo myservo;
void setup() {
// verknüpft den Servomotor an Pin 9 mit dem Servo-Objekt
myservo.attach(9);
// fahre Servo zu Position 0 (Links Anschlag)
myservo.write(0);
delay(500);
// fahre Servo zu Position 180 (Rechts Anschlag)
myservo.write(180);
delay(500);
// fahre Servo zu Position 90 (genau die Mitte)
myservo.write(90);
delay(500);
}
void loop() {
}
Sie sehen gerade einen Platzhalterinhalt von YouTube. Um auf den eigentlichen Inhalt zuzugreifen, klicken Sie auf die Schaltfläche unten. Bitte beachten Sie, dass dabei Daten an Drittanbieter weitergegeben werden.
Wichtige Links für die ersten Schritte:
Projektbeispiele:
Weiterführende Hintergrundinformationen: