Veröffentlicht 2026-04-03
Steuern aServoMotor mit einem Arduino-Board zu bauen ist eine der häufigsten und nützlichsten Aufgaben in Elektronikprojekten. Dieser Leitfaden bietet eine klare, praktische und verifizierte Methode zum Anschließen und Programmieren einesServomit dem Standard-ArduinoServoBibliothek. Sie lernen die genaue Verkabelung, den Arbeitscode und die Behebung typischer Probleme kennen – alles basierend auf realen Szenarien und offizieller Dokumentation.
Die meisten Hobby-Servomotoren (z. B. 9-g-Mikroservos oder Servos in Standardgröße wie SG90, MG90S oder MG995) funktionieren mit jedem Arduino-Board (Uno, Nano, Mega usw.). Für diesen Leitfaden gehen wir davon aus:
Ein Arduino-Board (Uno ist das häufigste Beispiel)
Ein Standard-5-V-Servo (üblicher Drehmomentbereich: 1,8 kg/cm bis 13 kg/cm)
Überbrückungskabel (Stecker-Buchse für direkte Verbindung)
Eine separate 5V-6V-Stromversorgung (optional, aber für größere Servos empfohlen – erklärt in Abschnitt 4)
Es sind keine spezifischen Markennamen erforderlich– Die Anleitung gilt für alle Standard-Analogservos, die mit einem 50-Hz-PWM-Signal (Pulsbreite von 500 µs bis 2500 µs) arbeiten.
Befolgen Sie diese genaue Verkabelung, um Schäden oder Fehlverhalten zu vermeiden.
Kritische Regel:Versorgen Sie ein Servo niemals direkt über den 5-V-Pin des Arduino mit Strom, wenn das Servo während des Betriebs mehr als 200 mA verbraucht. Für die meisten 9g-Servos sind direkte Arduino 5V zum Testen sicher. Verwenden Sie für größere Servos (z. B. MG995) eine externe 5V-6V-Stromversorgung und verbinden Sie die Masse des Servos mit der Masse des Arduino (gemeinsame Masse).
Die Arduino Servo-Bibliothek ist in der offiziellen IDE vorinstalliert. Dieser Code bewegt das Servo wiederholt von 0° auf 180° und zurück.
#enthaltenServo myServo; // Servoobjekt erstellen int servoPin = 9; // Signalpin mit Servo verbunden void setup() { myServo.attach(servoPin); // befestigt das Servo an Pin 9 } void loop() { myServo.write(0); // auf 0 Grad verschieben delay(1000); // 1 Sekunde warten myServo.write(90); // auf 90 Grad (Mitte) verschieben delay(1000); myServo.write(180); // auf 180 Grad verschieben delay(1000); }
Um das Servo auf einen bestimmten Winkel zu steuern(z. B. 45°), einfach verwendenmyServo.write(45);. Der gültige Bereich liegt zwischen 0 und 180.
Ursache:Unzureichende Leistung. Ein Standard-9g-Servo verbraucht beim Bewegen 200–300 mA; Ein großer Servo verbraucht bis zu 1A. Der integrierte 5-V-Regler des Arduino (max. ~500 mA) kann damit nicht umgehen.
Fix:Verwenden Sie eine externe 5-V-Stromversorgung (z. B. 4xAA-Batterien oder einen 5-V-2A-Adapter). Verbinden Sie den Pluspol des Netzteils mit dem roten Servokabel, die Masse des Netzteils mit Arduino GND und die Servomasse mit dem gleichen GND.
Ursache:Signalpin nicht richtig angeschlossen oder falsche Pinnummer.
![]()
Fix:Überprüfen Sie dasmyServo.attach(pin)verwendet einen PWM-fähigen Pin. Auf Arduino Uno unterstützen die Pins 3,5,6,9,10,11 PWM. Pin 9 und 10 werden empfohlen.
Ursache:Das Servo wird gegen einen mechanischen Anschlag gedrückt oder der Impulsbreitenbereich ist für dieses Servomodell falsch.
Fix:Passen Sie die minimale/maximale Impulsbreite mit anmyServo.attach(pin, min, max)Dabei ist der Mindestwert standardmäßig 544 µs (0°) und der Höchstwert 2400 µs (180°). Einige Servos benötigen 500–2500 µs. Überprüfen Sie das Datenblatt Ihres Servos.
Zur präzisen Geschwindigkeitsregelung können Sie das PWM-Signal manuell erzeugen. Das Servo erwartet ein 50Hz-Signal (20ms-Periode). Ein 1-ms-Impuls = 0°, 1,5 ms = 90°, 2 ms = 180°. Dieser Code fegt reibungslos:
int servoPin = 9; int pulsWidth = 1500; // Mikrosekunden, Start bei 90° void setup() { pinMode(servoPin, OUTPUT); } void loop() { // Sweep von 1000µs bis 2000µs (0° bis 180°) for(pulseWidth = 1000; PulseWidth = 1000; PulseWidth -= 10) { digitalWrite(servoPin, HIGH); VerzögerungMikrosekunden(pulseWidth); digitalWrite(servoPin, LOW); Verzögerung(20 - Impulsbreite/1000); } Verzögerung(1000); }
1. Leistungscheck:Wenn nur das Servo angeschlossen ist (kein Code hochgeladen), sollte das Servo ruhig bleiben und nicht warm werden.
2. Signaltest:Laden Sie den Standardcode aus Abschnitt 3 hoch. Beobachten Sie, ob sich das Servo um 0° → 90° → 180° dreht → wiederholen Sie den Vorgang.
3. Belastungstest:Halten Sie das Servohorn vorsichtig fest, während es sich bewegt. Es sollte ein spürbares Drehmoment erzeugen, aber nicht abwürgen. Wenn es blockiert, erhöhen Sie den Stromversorgungsstrom.
Korrekte Verkabelungist nicht verhandelbar: Signal zum PWM-Pin, Strom zu ausreichender Versorgung, gemeinsame Masse.
Verwenden Sie immer die Servo-Bibliothekfür Einfachheit und Zuverlässigkeit. Wechseln Sie nur dann zur manuellen Impulssteuerung, wenn Sie eine Geschwindigkeitserhöhung benötigen.
Überschreiten Sie niemals die Nennspannung des Servos(typischerweise 5V–6V). Eine höhere Spannung führt zur Zerstörung des internen Steuerkreises.
Schützen Sie Ihr Arduinoindem Sie niemals mehr als 200 mA von seinem 5-V-Pin für ein Servo ziehen.
1. Bauen Sie die Grundschaltung aufauf einem Steckbrett mit einem 9g-Servo und einem Arduino Uno. Verwenden Sie den Code in Abschnitt 3, um die Bewegung zu überprüfen.
2. Fügen Sie ein Potentiometer hinzuSo steuern Sie den Winkel: Lesen Sie den Analogwert von einem Poti (Pin A0) ab, ordnen Sie ihn dann 0–180 zumyServo.write(mappedValue).
3. Integrieren Sie es in Ihr Projekt– Zu den gängigen Anwendungen gehören Roboterarme, Kameraaufhängungen, Lenkmechanismen und automatische Türöffner.
Wenn Sie dieser Anleitung folgen, verfügen Sie nun über eine verifizierte, wiederholbare Methode zur Steuerung jedes Standardservos mit einem Arduino. Die gleichen Prinzipien gelten für alle Arduino-kompatiblen Boards. Genaue Impulsbreitengrenzen und Stromanforderungen finden Sie immer im Datenblatt Ihres Servos.
Aktualisierungszeit: 03.04.2026
Wenden Sie sich an den Produktspezialisten von Kpower, um einen geeigneten Motor oder ein geeignetes Getriebe für Ihr Produkt zu empfehlen.