Arduino - Servomotor
In diesem Tutorial werden wir lernen, wie man den Servomotor mit Arduino verwendet. Im Detail werden wir lernen:
- Wie funktioniert ein Servomotor?
- Wie programmiert man Arduino, um einen Servomotor zu steuern?
- Wie programmiert man Arduino, um die Geschwindigkeit eines Servomotors zu steuern?
- Wie stellt man zusätzliche Leistung für Hochdrehmoment-Servomotoren bereit?
Erforderliche Hardware
Oder Sie können die folgenden Kits kaufen:
1 | × | DIYables STEM V3 Starter-Kit (Arduino enthalten) | |
1 | × | DIYables Sensor-Kit (30 Sensoren/Displays) | |
1 | × | DIYables Sensor-Kit (18 Sensoren/Displays) |
Über Servomotor
Der Servomotor ist ein Bauteil, das seine Welle drehen kann (in der Regel zwischen 0° und 180°). Er dient dazu, die Winkelposition des Objekts zu steuern.
Pinbelegung
Der Servomotor, der in diesem Beispiel verwendet wird, verfügt über drei Pins:
- VCC-Pin: (typischerweise rot) muss mit VCC (5 V) verbunden werden
- GND-Pin: (typischerweise schwarz oder braun) muss mit GND (0 V) verbunden werden
- Signal-Pin: (typischerweise gelb oder orange) empfängt das PWM-Steuersignal vom Pin eines Arduino

Wie es funktioniert
Nachdem der VCC-Pin und der GND-Pin jeweils mit 5 V bzw. 0 V verbunden wurden, können wir den Servomotor steuern, indem wir ein geeignetes PWM-Signal am Signaleingang erzeugen.
Der Winkel wird durch die Breite des PWM-Signals bestimmt.
Das Datenblatt des Servomotors liefert uns die folgenden Parameter:
- PWM-Periode (PERIOD)
- PWM-Mindestbreite (WIDTH_MAX)
- PWM-Maximalbreite (WIDTH_MIN)
Diese Parameter sind in der Arduino-Servo-Bibliothek festgelegt. Wir müssen die Werte der Parameter nicht kennen.
Der Winkel wird wie folgt bestimmt:
- Wenn die PWM-Breite = WIDTH_MIN, dreht sich der Servomotor auf 0°.
- Wenn die PWM-Breite = WIDTH_MAX, dreht sich der Servomotor auf 180°.
- Wenn die PWM-Breite zwischen WIDTH_MIN und WIDTH_MAX liegt, dreht sich der Servomotor proportional zu einem Winkel zwischen 0° und 180°.

Arduino - Servomotor
Einige Pins des Arduino können so programmiert werden, dass sie PWM-Signale erzeugen. Wir können den Servo-Motor steuern, indem wir den Signalpin des Servo-Motors mit einem Arduino-Pin verbinden und PWM auf dem Arduino-Pin erzeugen.
Dank der Arduino Servo-Bibliothek ist die Steuerung eines Servomotors ein Kinderspiel. Wir müssen nicht einmal wissen, wie ein Servomotor funktioniert. Wir müssen auch nicht wissen, wie man ein PWM-Signal erzeugt. Wir müssen lediglich lernen, wie man die Bibliothek verwendet.
Verdrahtungsdiagramm
Sie könnten online Verdrahtungsdiagramme finden, die eine Verbindung vom VCC-Pin des Servomotors direkt zum 5V-Pin des Arduino-Boards zeigen, wie unten dargestellt. Obwohl dieser Ansatz funktionieren kann, ist er dringend davon abzuraten, da ein potenzielles Risiko besteht, das Arduino-Board zu beschädigen.

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.
Stattdessen empfehlen wir dringend, zum Schutz Ihres Arduino-Boards eine externe Stromversorgung für den Servomotor zu verwenden. Der untenstehende Schaltplan veranschaulicht, wie der Servomotor an eine externe Stromquelle angeschlossen wird.

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.
Bitte stellen Sie sicher, dass Sie die Masse des externen Netzteils mit der Masse des Arduino-Boards verbinden. Vernachlässigen Sie diesen wichtigen Schritt nicht, damit der Betrieb ordnungsgemäß funktioniert.
Wie man einen Servomotor programmiert
- Die Bibliothek einbinden:
- Deklariere ein Servo-Objekt:
Wenn Sie mehr als einen Servomotor steuern, müssen Sie einfach weitere Servo-Objekte deklarieren:
- Setzen Sie den Steuerpin des Arduino-Boards, der mit dem Signalpin des Servomotors verbunden ist. Zum Beispiel Pin 9:
- Zuletzt drehen Sie den Winkel des Servomotors auf den gewünschten Winkel. Zum Beispiel 90°:
Arduino-Code
Schnelle Schritte
- Schließen Sie Arduino über ein USB-Kabel an den PC an
- Öffnen Sie die Arduino IDE, wählen Sie das richtige Board und den richtigen Port aus
- Kopieren Sie den obigen Code und öffnen Sie ihn mit der Arduino IDE
- Klicken Sie in der Arduino IDE auf die Hochladen-Schaltfläche, um den Code auf den Arduino hochzuladen

- Siehe das Ergebnis: Der Servomotor dreht sich langsam von 0 bis 180° und dann wieder langsam von 180° zurück nach 0°
Code-Erklärung
Sie finden die Erklärung in der Kommentarzeile des obigen Arduino-Codes.
So steuern Sie die Geschwindigkeit eines Servomotors
Durch die Verwendung der Funktionen map() und millis() können wir die Geschwindigkeit des Servomotors sanft steuern, ohne den übrigen Code zu blockieren.
Video Tutorial
Wir erwägen die Erstellung von Video-Tutorials. Wenn Sie Video-Tutorials für wichtig halten, abonnieren Sie bitte unseren YouTube-Kanal , um uns zu motivieren, die Videos zu erstellen.
Fordere dich heraus
Verwenden Sie den Servomotor, um eines der folgenden Projekte durchzuführen:
- Steuerung der Position eines Servomotors mit einem Potentiometer. Hinweis: Siehe Arduino - Potentiometer.
- Automatisches Öffnen/Schließen des Mülleimers. Hinweis: Siehe Arduino - Ultraschallsensor.
Zusätzliches Wissen
- Die Servo-Bibliothek unterstützt bis zu 12 Motoren auf dem Arduino Uno und 48 auf dem Arduino Mega.
- Der Strom vom 5-V-Pin des Arduino reicht möglicherweise in einem der folgenden Fälle nicht aus:
- Verwendung eines Servomotors mit hohem Drehmoment, der eine schwere Last tragen kann.
- Verwendung mehrerer Servomotoren.
- Verbinden Sie nicht den positiven Pin einer zusätzlichen Stromquelle mit dem 5V-Pin des Arduino.
- Der negative Pin der zusätzlichen Stromquelle muss mit dem GND-Pin des Arduino verbunden werden.
In diesen Fällen müssen wir möglicherweise eine zusätzliche Stromversorgung für Servomotoren bereitstellen.

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.
Wie wir im obigen Diagramm sehen können, verbindet der VCC-Pin des Servo-Motors NICHT mit dem 5V-Pin des Arduino. Er verbindet sich mit dem Pluspol einer zusätzlichen Stromquelle.
Bitte beachten Sie, dass: