09 Servos
Servos
Ein Servo (od. Servomotor) ist ein elektronischer Motor mit vorgeschaltetem Getriebe, sowie einer Positionsdekodierung (üblicherweise über ein Potentiometer). Normalerweise kommen Servos bei Industrierobotern oder auch RC Modellen zum Einsatz, sie bieten jedoch eine relativ einfache Ansteuerung und eignen sich deshalb auch für andere Zwecke.
Kontrolle
Servos gibt es in zwei Varianten:
1. Standard Servos
2. Continous Rotation Servos
Erstere lassen sich von 0-180° einstellen und letztere drehen sich kontinuierlich (d.h. weiter als 360°). Die Ansteuerung geschieht mittels PWM (Pulse Width Modulation) welche wir schon für das Dimmen einer LED verwendet haben.
Anschluss
Der Anschluss ist, wie schon erwähnt, sehr einfach zu realisieren. Für die Verwendung mit dem Arduino müssen wir lediglich Vcc mit der 5V Versorgung und GND mit dem GND des Arduino verbinden. Die Signalleitung können wir an einem beliebigen digitalen Pin verwenden.
Servo Library
Für die Programmierung gibt es für das Arduino schon eine fertige Library, mit welcher wir einen Servo ansteuern können. Wenn wir die Servo Library nutzen, dann können wir nicht gleichzeitig die PWM Funktion an den Pins 9 und 10 nutzen, weil deren Timer für die Servos verwendet werden. Die wichtigsten Funktionen gibt es hier in der Übersicht...
servo.attach(PIN): Der Servo Variablen einen Pin zuweisen (muss für jeden Servo gemacht werden)
servo.write(Winkel): Sendet eine Winkelangabe an den Servo
servo.read(): Liesst die aktuelle Position des Servos aus
servo.detach(): Trennt die Verknüpfung zwischen Pin und Servo Variable (PWM wird frei)
#include <Servo.h>
Servo myservo;
void setup()
{
myservo.attach(9);
myservo.write(0);
}
void loop()
{
delay(1000);
myservo.write(90);
delay(1000);
myservo.write(180);
delay(1000);
myservo.write(90);
delay(1000);
myservo.write(0);
}
Aufgaben
1. Steuert die Drehung eines Servos mit einem Potentiometer.
2. Steuert die Drehung eines Servos von Processing mit einem Slider.
Weitere Informationen
Servo Library bei
arduino.cc