Servomotor
Erstellt von Patrick Dietrich
Benötigtes Material
- Arduino Uno
- USB-Kabel für den Arduino
- Servomotor (SG90)
- 3x MM-Kabel
Als PDF
Beschreibung
Der Servomotor kann ähnlich wie ein normaler Motor eine programmierbare
Drehbewegung machen. Anders als ein normaler Motor, der sich dauerhaft
im Kreis drehen kann, kann ein Servomotor sich lediglich in einem Winkel
von 180° drehen. Dies bietet natürlich einige Einschränkungen, aber auch
den großen Vorteil, dass wir mit Hilfe des Programms den Servomotor
zwischen 0° und 180° genau positionieren können. Möglich macht dies ein
eingebauter zusätzlicher Sensor, der die Drehposition ermittelt. Der
Motor besitzt drei Kabel mit jeweils einem Weiblich-Anschluss. Der rote
Anschluss ist Vcc, der braune ist GND und der orange ist der Output
Anschluss für den Arduino. Ein Servomotor ist ein Aktor, daher werden
wir ihm mit Hilfe des Programms ein Signal geben, mit dem er arbeiten
kann.
Verkabelung
Code
Mit dem Programm lässt sich eine simple Schranke bauen. Diese ist für 2
Sekunden unten (0°) und dann für 2 Sekunden oben (90°).
#include <Servo.h> //Wir binden die Bibliothek für den Servomotor ein
Servo servomotor; // Servomotor bekommt den Namen "servomotor"
void setup() {
// put your setup code here, to run once:
servomotor.attach(10); // Bestimme den Digitalen Pin 10 als Anschluss
}
void loop() {
// put your main code here, to run repeatedly:
servomotor.write(0); // Servomotor wird auf 0° gedreht
delay(2000); // Pausiere das Programm für 2 Sekunden
servomotor.write(90); // Servomotor wird auf 90° gedreht
delay(2000); // Pausiere das Programm für 2 Sekunden
}
Aufgaben
Beschreibe, was der Code tut!
Ein Objekt `servomotor´ wird erzeugt und im Setup der Pin 10 als
Anschluss festgelegt. In der Loop wird der Servomotor jeweils um 0° oder
90° gedreht.
Ein Servomotor ist ein Aktor und verhält sich ähnlich wie ein normaler
Motor, jedoch mit der besonderen Eigenschaft, dass er sich nur in einem
Winkel von 180° drehen kann. Dies kann helfen den Servomotor sehr genau
zu positionieren.
Häufige Fragen und Probleme
Mein Servomotor reagiert nicht.
- Wenn dein Servomotor nicht reagiert, dann überprüfe zuerst die
Verkabelung.
- Sind alle Kabel richtig angeschlossen?
- Ist die richtige Farbe mit dem richtigen Pin verbunden?
- Wenn alles richtig angeschlossen ist überprüfe deinen Code. Ist der
richtige Pin angesprochen?
Mein Servomotor steht nicht im richtigen Winkel.
Wenn dein Servomotor einen falschen Winkel anzeigt, liegt das sehr
wahrscheinlich an dem verstellbaren Plastikaufsatz. Setze den Servomotor
mit Hilfe des Programms auf 0°, nimm anschließend den Plastikaufsatz ab,
richte ihn aus und setze ihn wieder richtig drauf. Sollte er weiterhin
einen falschen Winkel anzeigen, überprüfe deine Eingabe im Programm.
Mein Servomotor soll auf einen Sensor reagieren.
Wenn du möchtest, dass dein Servomotor auf das direkte Signal eines
Sensors reagiert, kannst du dir den gewünschten Sensor raussuchen und
ihn wie gehabt in den Code einbinden. Anschließend bindest du das Signal
des Sensors dort ein, wo du dem Servomotor normalerweise den Winkel
angeben würdest.
Ein Beispiel: servomotor.write(analogRead(helligkeitssensor));
Achtung!: Der Servomotor arbeitet nur mit Zahlen zwischen 0 und 180,
daher musst du bei einigen Sensoren einen Teiler einbauen, damit die
höchste Zahl, die den Servomotor erreicht, 180 ist.