Du bist hier: Aktor > Servo

Arduino Servo

1. Vorbereiten

1.1. Servo Anschliessen

Das Arduino Servo ist ein simpler aber raffinierter Aktor, der mit seinen präzise programmierbaren Bewegungen Leben in deine Projekte bringt. Let's move it..

Normale Servos können Bewegungen von ca. 180° abdecken und das mit einem erstaunlichen Drehmoment von bis zu mehreren kg/cm. Das Servo wird über drei farbige Litzen mit dem Mikrocontroller verbunden. Die Farben dieser drei Anschlüsse sind je nach Produkt unterschiedlich und haben diese Funktion:

  • Rot          →  +5V
  • Braun     →  -5V
  • Orange   →  -L1 (minus)

  • Hinweis: Die Abbildungen zeigen unsere Breakout-Boards  Komfort ↗ oder  Pixel ↗
  • Hinweis: Alle Projekte können auch mit dem Arduino Uno, Nano oder weiteren umgesetzt werden
  • Hinweis: Es können bis zu 4, im Extremfall 8 Servos angeschlossen- und programmiert werden
  • Hinweis: Wenn sich das Servo unerwartet verhält einen Elko mit 470-1000μF einsetzen (Bild). Polung beachten. Für weitere Infos hier klicken ↗.
Bild1: So wird ein Arduino Sensor an den Microcontroller angeschlossen

1.2. PWM Steuersignal verstehen

  • Hinweis: du kannst auch mit dem Servo arbeiten, wenn du dieses Kapitel überspringst! Programmiere einfach das untenstehende Sketch 1 oder 2 und experimentiere mit dem Servo. Den Originalen Arduino Code findest du dann in der Code-Ansicht des Editors.

Die genaue Position des Servos wird mit einem PWM Signal (Pulsweiten Modulation Signal) gesteuert:

  • Das Servo erwartet alle 20ms einen kurzen Impuls von 5V → t = Zeitabstand Impulse
  • Die Dauer dieses Impulses bestimmt über den Winkel des Servohebels → i = Impulsdauer
  • i soll (in der Theorie) zwischen 1000 μs und 2000 μs betragen.
  • i = 1000 μs entspricht der Anfangsposition
  • i = 1500 μs entspricht der Mittelposition
  • i = 2000 μs entspricht der Endposition

2. Servo mit Arduino programmieren

2.1. Konstruiere deine eigene "Arduino Servo Funktion"

  • Tipp: Verstehe die Grundlagen einer Funktion hier
  • Tipp: Klicke auf den schwarzen Punkt, um die Funktionsvariablen Position und Servo Pin einzugeben.
  • Tipp: Schaue genau, ob du eine Pause in ms oder in μs verwendest. Es braucht beide!
  • Tipp: Experimentiere mit dem Wert wiederhole 10 mal. Er gibt die Anzahl Steuerimpulse an, die an das Servo gesendet werden. Eventuell musst du hier auf wiederhole 30 mal erhöhen, damit die ganze Servo-Bewegung ausgeführt wird.

  • Hinweis: Alle PGLU-Mikrocontroller weisen eine besonders hohe elektrische Stabilität auf. Um dies zu erreichen, sind die Wirkweisen von Aktoren und Sensoren in der PGLU-Blocksprache gegenüber dem Arduino Code C++ invertiert. Das ist der Grund, weshalb "setze Servo Pin auf AUS" in Wahrheit zu einem "HIGH" Signal führt. Diese Tatsache hat keinen Einfluss auf die Verwendung des Servos oder anderer Komponenten und muss nicht weiter beachtet werden.
Sketch 1: Arduino Servo steuern ohne Library (Klick für Zoom)

2.2. Sketch: Arduino Servo schnell stellen

Sketch 2: Arduino Servo ohne Library schnell stellen (Klick für Zoom)
  • Hinweis: Experimentiere mit den Werten für i (grüne Kreise). Sie sollen in der Theorie zwischen 1000μs und 2000μs liegen (vergl. Kap. 1.2.). Bei dem getesteten Servo (siehe Video) war der Ausschlag mit Werten zwischen 600μs und 2400μs am besten.

2.3. Sketch: Arduino Servo langsam stellen

Sketch 3: Arduino Servo ohne Library langsam stellen (Klick für Zoom)

Tipp 1: Experimentiere mit dem Wert 1 (grüner Kreis). Er bestimmt die Schrittweite zwischen zwei Positions-Signalen und damit das Tempo der Bewegung. Teste dein Sketch und beachte mit welch erstaunlicher Kraft diese Bewegung vollzogen wird.

Tipp 2: Experimentiere mit dem Wert wiederhole 10 mal. Dieser gibt die Anzahl steuer-Impulse an, die an das Servo geschickt werden. Im Zusammenhang mit der Zähle-von-bis Schleife kannst du mit wiederhole 2 mal ev. eine flüssigere Servo-Bewegung erreichen.

3. Challenge: Arduino Servo Projekte im Technischen Gestalten

3.2. Arduino Push Rollbot

Tipp: Lasse einen Fotowiderstand ↗ erkennen, ob sich das Servo in der Nähe des Bodens befindet, weil es dann dunkler wird.

3.3. Arduino Soap Bubble Machine

3.4. Arduino Servo Draw Bot

3.5. Arduino Bug

3.6. Animalische Roboter (Boston Dynamics)

3.7. Robot Contest

Hinterlassen Sie einen Kommentar