Willkommen auf unserem Seminar-Blog

Immer auf dem aktuellen Stand bleiben

Dieser Seminar-Blog befindet sich noch im Aufbau und wird in den kommenden Tagen entsprechend verfeinert.

Member Login

Lost your password?

Registration is closed

Sorry, you are not allowed to register by yourself on this site!

You must either be invited by one of our team member or request an invitation by email at viad.info {at} zhdk {dot} ch.

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