Veröffentlicht 2026-04-07
Diese Anleitung bietet alles, was Sie zur präzisen Steuerung des Drehwinkels eines Standardmikros benötigenServounter Verwendung eines Mikrocontrollers. Das Grundprinzip ist einfach: dasServoDie Position der Abtriebswelle wird durch die Breite eines Impulssignals bestimmt. Für die gängigsten MikrosServos, eine Impulsbreite von 1,5 Millisekunden (ms) zentriert die Welle auf 90°, 1,0 ms bewegt sie auf 0° und 2,0 ms bewegt sie auf 180°. Die realen Servos variieren jedoch. In diesem Artikel finden Sie verifizierte Methoden, Codebeispiele und Kalibrierungsschritte, um eine genaue Grad-für-Grad-Steuerung zu erreichen, ohne auf eine bestimmte Marke angewiesen zu sein.
AMikroservoenthält einen kleinen Gleichstrommotor, ein Rückkopplungspotentiometer und einen Steuerkreis. Die Schaltung vergleicht die Breite des eingehenden Impulses mit der Position des Potentiometers. Wenn die Impulsbreite mit der gewünschten Position übereinstimmt, stoppt der Motor. Die Beziehung zwischen Impulsbreite und Winkel ist innerhalb der mechanischen Grenzen des Servos linear.
Standardsignalspezifikationen:
Pulswiederholungsrate:50 Hz (Periode = 20 ms)
Nutzbarer Pulsweitenbereich:Typischerweise 1,0 ms bis 2,0 ms
Entsprechender Winkelbereich:0° bis 180°
Das bedeutet, dass das Servo alle 20 ms einen Impuls erwartet. Durch Ändern der Impulsbreite von 1,0 ms auf 2,0 ms steuern Sie die Welle von 0° auf 180°.
Sie kaufen zweiMikroservos aus der gleichen Charge. Wenn Sie einen 1,5-ms-Impuls senden, zentriert man sich perfekt im 90°-Winkel. Der andere stoppt bei 85°. Dies geschieht aufgrund von Fertigungstoleranzen im Feedback-Potentiometer und in der mechanischen Montage. Kalibrieren Sie daher immer jedes Servo einzeln.
Die meisten Mikrocontroller-Plattformen verfügen über eine integrierte Servobibliothek, die stabile 50-Hz-Impulse erzeugt. Unten finden Sie ein generisches Codebeispiel, das mit jedem Mikrocontroller funktioniert, der PWM-Ausgang und Servosteuerungsbibliotheken unterstützt.
Schließen Sie das Stromkabel (rot) des Servos an eine 5-V-Versorgung an, die mindestens 500 mA liefern kann.
Verbinden Sie das Erdungskabel (braun oder schwarz) mit dem GND des Mikrocontrollers.
Verbinden Sie das Signalkabel (orange, gelb oder weiß) mit einem PWM-fähigen Pin (z. B. Pin 9).
#enthaltenServo myServo; void setup() { myServo.attach(9); // Servo an Pin 9 anbringen } void loop() { myServo.write(0); // Befehl 0 Grad Verzögerung (1000); myServo.write(90); // Befehl 90 Grad Verzögerung (1000); myServo.write(180); // Befehl 180 Grad Verzögerung (1000); }
Derschreiben (Winkel)Die Funktion wandelt den Winkel mithilfe der Standardzuordnung (0°→1,0 ms, 180°→2,0 ms) automatisch in die entsprechende Impulsbreite um. Allerdings stimmt diese Standardeinstellung möglicherweise nicht mit Ihrem spezifischen Servo überein.
Um genaue Winkel zu erreichen, müssen Sie die genauen Impulsbreiten bestimmen, die an IHREM Servo 0° und 180° erzeugen.
1. Bringen Sie einen Zeiger an oder markieren Sie die neutrale Position der Welle.
![]()
2. Senden Sie einen 1,5-ms-Impuls. Der Schaft sollte in der Nähe von 90° stehen. Beachten Sie den eventuellen Versatz.
3. Verringern Sie die Impulsbreite in Schritten von 10 µs, bis sich die Welle nicht mehr bewegt. Das ist Ihre wahre 0°-Pulsbreite.
4. Erhöhen Sie die Impulsbreite von 1,5 ms in Schritten von 10 µs, bis sich die Welle nicht mehr bewegt. Das ist Ihre wahre 180°-Pulsbreite.
Typische Messergebnisse von drei gängigen Servos:
Diese Werte zeigen, dass bei der Annahme von 1000 µs bis 2000 µs Fehler von bis zu 15° auftreten können. Verwenden Sie immer kalibrierte Werte.
In den meisten Servobibliotheken können Sie mit einem benutzerdefinierte Impulsbreitenbereiche festlegenbefestigen()Überlastung oder eine separate Funktion. Beispiel:
myServo.attach(9, 540, 2420); // Pin, minimale Impulsbreite (µs), maximale Impulsbreite (µs)
Nach dem Anbringen mit kalibrierten GrenzwertenmyServo.write(90)sendet den genauen Mittelimpuls (in diesem Fall 1480 µs), was echte 90° ergibt.
Schritt 1: Kalibrieren Sie jedes Servo immer einzeln– Gehen Sie nicht von Werksangaben aus. Verbringen Sie 5 Minuten damit, die wahren Impulsbreiten von 0° und 180° zu messen.
Schritt 2: Verwenden Sie ein spezielles Netzteil– Versorgen Sie Mikroservos nicht direkt über den 5-V-Pin des Mikrocontrollers. Eine plötzliche Stromaufnahme kann den Controller zurücksetzen. Verwenden Sie einen 5V 1A UBEC oder eine geregelte externe Stromversorgung.
Schritt 3: Speichern Sie die Kalibrierungswerte in Ihrem Code– Codieren Sie nach der Kalibrierung die minimale und maximale Impulsbreite fest. Beispiel:
#define SERVO_PIN 9 #define SERVO_0_PULSE 540 // gemessene µs für 0° #define SERVO_180_PULSE 2420 // gemessene µs für 180° Servo myServo; myServo.attach(SERVO_PIN, SERVO_0_PULSE, SERVO_180_PULSE);
Schritt 4: Überprüfen Sie mit einem einfachen Test– Befehl 0°, 45°, 90°, 135°, 180°. Verwenden Sie einen Winkelmesser, um die Genauigkeit zu überprüfen. Wenn ein Winkel um mehr als 2° abweicht, wiederholen Sie die Kalibrierung.
Schritt 5: Dokumentieren Sie Ihre Einstellungen– Notieren Sie sich die kalibrierten Impulsbreiten für jedes Servo. Wenn Sie ein Servo ersetzen, kalibrieren Sie es sofort neu.
Der Winkel des Mikroservos wird direkt durch die Impulsbreite gesteuert. Als Ausgangspunkt dient die Standardzuordnung (1,0 ms = 0°, 1,5 ms = 90°, 2,0 ms = 180°). Echte Servos erfordern eine individuelle Kalibrierung der minimalen und maximalen Impulsbreiten, um eine echte Genauigkeit von 0° bis 180° zu erreichen. Ohne Kalibrierung kann es zu Abweichungen von 10° bis 20° kommen.
Indem Sie das Kalibrierungsverfahren befolgen und den Impulsbreitenbereich in Ihrem Code anpassen, erreichen Sie eine wiederholbare, genaue Servopositionierung für jede Anwendung – von Roboterarmen bis hin zu Kamerakardanringen. Testen Sie immer die tatsächlichen Grenzen jedes Servos und passen Sie Ihren Code entsprechend an. Diese Vorgehensweise eliminiert Rätselraten und stellt sicher, dass Ihr Projekt jederzeit zuverlässig funktioniert.
Aktualisierungszeit: 07.04.2026
Wenden Sie sich an den Produktspezialisten von Kpower, um einen geeigneten Motor oder ein geeignetes Getriebe für Ihr Produkt zu empfehlen.