Servomotor

Erstellt von Patrick Dietrich
Benötigtes Material
  • Arduino Uno
  • USB-Kabel für den Arduino
  • Servomotor (SG90)
  • 3x MM-Kabel
Als PDF
PDF-Download
Arbeitsblatt
PDF-Download erweitert
Erweitertes Arbeitsblatt

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

ServomotorArduino
BraunGND
Rot5V
Orange10
Schaltplan

Schaltplan

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.

Was ist ein Servomotor?

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.

Das Material und dessen Inhalte sind - sofern nicht anders angegeben - lizenziert unter der Creative Commons Lizenz CC BY-NC-SA 4.0 (für den vollständigen Lizenztext siehe https://creativecommons.org/licenses/by-sa/4.0/legalcode )