Servo.h

Inhaltsverzeichnis

Vorweg

Beispiel

Software holen und installieren

Programmieren

EEPROM.h

Wire.h (I²C)
Servo.h

Links

Ergänzungen, Tipps und Tricks

Servo.h

Was hier steht, bezieht sich auf Version 1.6.5 der IDE.

Servos sind elektromechanische Bauteile, die häufig einen Hebel besitzen, dessen Stellung mit Hilfe entsprechender Befehle bestimmt werden kann.

Wer etwas Bewegtes bauen möchte, dessen Bewegung mit einem Arduino kontrolliert werden soll, kommt um einen solchen Servo höchstwahrscheinlich nicht herum.

Servo

Servos gibt es ab ungefähr 5 € in einem Fachgeschäft für Modellbau oder bei einem entsprechenden Versender.

Die Steuerung der Hebelstellung eines Servos ist ziemlich einfach. Für sehr einfache Dinge genügt ein Rechteck-Signal mit variabler Pulsbreite. Der Hebel begibt sich dann in eine Position, die der Pulsbreite des angelegten Signals entspricht. Für ein solches Signal benötigt man noch nicht einmal einen Arduino, ein simpler „555“ genügt.

Es gibt Servos, die sehr leicht sind und solche, die besonders genau arbeiten. Gewicht und Genauigkeit spielen je nach Anforderung unterschiedlich große Rollen. Man sollte sich bei der Beschaffung eines Servos nicht darüber wundern, dass die besseren Servos oft die teureren sind. Eine ebenso große Rolle spielen die verwendeten Materialien und die Frage, ob der Servo ein Getriebe besitzt. Servos, die eine Drehbewegung ausführen, besitzen meistens ein Getriebe (zum Beispiel aus Metall oder Kunststoff) – Servos, die eine lineare Bewegung ausführen, haben weniger oft ein Getriebe (es sei denn, es geht um große Stellkräfte).

Ein Servo besitzt üblicherweise drei Leitungen: Masse bzw. Minus (meistens braun oder schwarz), Plus (oft rot) und die Leitung, die das Steuersignal überträgt (manchmal weiß, im Foto oben orange).

Da ein Servo verhältnismäßig viel Energie benötigt, sollte er nicht über den Arduino mit Strom versorgt werden. Sonst besteht die Gefahr, dass der Arduino überlastet und zerstört wird.

Um diese Bibliothek in eigenem Code nutzen zu können, muss sie mittels

#include <Servo.h>

eingebunden werden. Wer das nicht eintippen möchte, wählt im Editor den Menüpunkt Sketch → Include Library … → Servo.

Befehle

Die Befehle sind mit der jeweiligen Seite der Referenz bei arduino.cc verknüpft. Dort finden sich häufig auch Codebeispiele.

Die Beispiele im Folgenden gehen davon aus, dass es ein Objekt der Servo-Klasse gibt, das beispielsweise so erzeugt wurde:

Servo servo;

attach(Pin)
Mit diesem Befehl teilt man mit, an welchem Pin die Steuerleitung des Servos angeschlossen ist. Einschränkung beachten: Solange ein Pin für einen Servo verwendet wird, können die Pins 9 und 10 keine pulsweitenmodulierten Signale (PWM-Signale) ausgeben.
Beispiel: servo.attach(5);
write(Wert)
write() entspricht der Aufforderung, das bewegliche Teil des Servos an eine bestimmte Stelle zu bewegen. Der angegebene Wert entspricht oft dem Winkel in Grad, den der Servo anfahren soll. Da die Bewegung eine gewisse Zeit in Anspruch nimmt, sollte man anschließend eine entsprechende Pause einlegen (z. B. mit delay()). Beispiel: servo.write(30);
writeMicroseconds(Wert)
Sendet den angegebenen Wert an den Servo. Meistens wird dadurch der Schaft des Servos an eine bestimmte Position bewegt. Bei Standard-Servos mit Hebel bedeutet ein Wert von 1000 das eine Ende, 2000 das andere und ein Wert dazwischen ein entsprechender Winkel (1500 sind dann ungefähr die Mitte). Beispiel: servo.writeMicroseconds(1200);
read()
Gibt die Stellung des Servos zurück. Dabei wird jedoch lediglich der zuletzt mit write() verwendete Wert ausgegeben. Beispiel: val=servo.read();
attached()
Ergibt entweder „true“ oder „false“ und teilt so mit, ob der Servo mit einem Pin des Arduino verbunden ist. Beispiel: if (servo.attached()==true) {…
detach()
Löst die Verbindung des Servos mit dem Arduino. Wenn die Verbindungen aller Servos aufgehoben wurden, können die Pins 9 und 10 wieder für die Erzeugung pulsweitenmodulierter Signale (PWM-Signale) benutzt werden. Beispiel: servo.detach();

Weiter zu: Links


Nach oben Inhaltsverzeichnis

Valid HTML 4.01 Transitional