Einen Servo mit einem Potentiometer und einem Arduino steuern
In diesem Tutorial lernen wir, wie man einen Servomotor mit einem Potentiometer und einem Arduino steuert. Das Potentiometer ermöglicht es uns, den Winkel des Servos stufenlos einzustellen, wodurch wir seine Position in Echtzeit kontrollieren können. Am Ende dieses Projekts hast du einen funktionierenden Aufbau, der den Wert des Potentiometers und den entsprechenden Servowinkel anzeigt.

Wenn das Potentiometer gedreht wird, ändert sich der Winkel des Servomotors von 0 bis 180 Grad. Wir verwenden den analogen Eingang des Arduino, um den Wert des Potentiometers zu lesen und diesen Wert dann mit einer einfachen Formel auf den Bereich des Servomotors abzubilden. Dieses Projekt ist eine hervorragende Möglichkeit, zu verstehen, wie analoge Eingänge funktionieren und wie man Motoren damit steuert (im Video bei 01:45).
Hardware erklärt
Für dieses Projekt benötigen wir ein Arduino-Board, einen Servomotor und ein Potentiometer. Das Potentiometer fungiert als veränderlicher Widerstand und liefert eine Spannung, die seiner Stellung entspricht. Diese Spannung wird über den analogen Eingang des Arduino eingelesen, sodass wir bestimmen können, wie weit der Servomotor gedreht werden soll.
Der Servomotor ist eine Art Motor, der auf einen bestimmten Winkel eingestellt werden kann. Er empfängt ein Steuersignal, das ihm die gewünschte Position angibt. Der Servo dreht sich aufgrund des Eingangssignals vom Arduino auf diesen Winkel und ist damit nützlich für verschiedene Anwendungen wie Robotik und ferngesteuerte Geräte.
Datenblattdetails
| Hersteller | Verschiedene |
|---|---|
| Teilenummer | Standard-Servo |
| Logik/IO-Spannung | 5 V |
| Versorgungsspannung | 4.8 - 6 V |
| Ausgangsstrom (pro Kanal) | Bis zu 1 A |
| Spitzenstrom (pro Kanal) | Bis zu 2 A |
| Leitfaden zur PWM-Frequenz | 50 Hz |
| Schwellenwerte der Eingangslogik | 0.8 V (niedrig) / 2.0 V (hoch) |
| Spannungsabfall / RDS(on)/ Sättigung | 0.5 V |
| Thermische Grenzwerte | 85 °C |
| Paket | Standardgröße |
| Notizen / Varianten | Erhältlich in verschiedenen Größen und Drehmomentstufen. |
- Stellen Sie sicher, dass die Versorgungsspannung innerhalb der Grenzwerte (4.8 - 6 V) liegt.
- Verwenden Sie einen geeigneten Widerstandswert für das Potentiometer (10 kΩ empfohlen).
- Überprüfen Sie die Polung der Anschlüsse, um einen falschen Betrieb zu vermeiden.
- Achten Sie auf Hitze; stellen Sie sicher, dass der Servo nicht überlastet wird.
- Halten Sie die Verkabelung kurz, um Störungen zu reduzieren.
- Verwenden Sie Entkopplungskondensatoren an den Versorgungseingängen, falls erforderlich.
- Überprüfen Sie, ob das Potentiometer korrekt mit dem analogen Pin A0 verbunden ist.
Verdrahtungsanleitung

Um die Komponenten zu verdrahten, verbinden Sie zuerst das Potentiometer. Der mittlere Anschluss des Potentiometers sollte mit dem analogen Pin verbunden werden.A0am Arduino. Der linke Pin sollte an den 5V-Pin am Arduino angeschlossen werden, und der rechte Pin sollte mit der Masse (GND) verbunden werden.
Als Nächstes verbinden Sie den Servomotor. Das Massekabel (typischerweise schwarz oder braun) des Servos sollte mit dem GND des Arduino verbunden werden. Das Versorgungskabel (normalerweise rot) sollte mit dem 5V-Pin des Arduino verbunden werden. Schließlich sollte das Steuerkabel (oft gelb oder weiß) mit dem digitalen Pin verbunden werden9Auf dem Arduino. Diese Einrichtung ermöglicht dem Arduino, das Servo anhand der Position des Potentiometers zu steuern.

Codebeispiele und Schritt-für-Schritt-Anleitung
Werfen wir einen Blick auf die wichtigsten Teile des Codes. Zuerst binden wir die Servo-Bibliothek ein und erstellen ein Servo-Objekt:
#include
Servo myservo; // create servo object to control a servo
Dieser Code initialisiert das Servo und bereitet es zur Steuerung vor. Der nächste Schritt besteht darin, den Wert des Potentiometers zu lesen:
int val = analogRead(potpin); // reads the value of the potentiometer
Hier wird der vom Potentiometer gelesene Wert in der Variablen gespeichertval. Der Wert liegt zwischen 0 und 1023 und entspricht der Stellung des Potentiometers. Anschließend ordnen wir diesen Wert dem Stellbereich des Servos zu:
val = map(val, 0, 1023, 0, 180); // scale it to use it with the servo
Diese Zeile wandelt den Wert des Potentiometers in einen für den Servomotor geeigneten Bereich um. Schließlich stellen wir den Servo auf die berechnete Position ein:
myservo.write(val); // sets the servo position according to the scaled value
Dieser Befehl veranlasst das Servo, sich entsprechend der Position des Potentiometers auf den angegebenen Winkel zu bewegen. Den vollständigen Code finden Sie weiter unten im Artikel.
Vorführung / Was Sie erwartet
Wenn Sie das Programm ausführen, stellt das Drehen des Potentiometers den Winkel des Servomotors sanft ein. Sie sollten sehen, wie die Winkelwerte im seriellen Monitor angezeigt werden, während Sie den Drehknopf drehen. Wenn sich der Servo unerwartet verhält, überprüfen Sie Ihre Verkabelung, insbesondere die Anschlüsse des Potentiometers und des Servos (im Video bei 04:30).
Der Servo sollte sofort auf Änderungen der Position des Potentiometers reagieren. Wenn Sie Verzögerungen oder Ruckeln bemerken, ziehen Sie in Erwägung, die Verzögerung im Code zu verringern, um die Reaktionsfähigkeit zu verbessern.
Dinge, die Sie vielleicht brauchen
-
AmazonServo motor on Amazonamzn.to
-
AliExpressPurchase SG90 Servo motor 180 or 360 from AliExpresss.click.aliexpress.com
Ressourcen & Referenzen
-
ExternSG90 servosamzn.to
Dateien📁
Keine Dateien verfügbar.