Heim > Brancheneinblicke >Servo
TECHNISCHE UNTERSTÜTZUNG

Produktunterstützung

Wie PWM den Winkel des Servomotors steuert – Vollständige Anleitung

Veröffentlicht 2026-04-13

Pulsweitenmodulation (PWM) ist die Standardmethode zur präzisen Steuerung der Winkelposition eines StandardhobbysServoMotor. Durch Variieren der Breite des an das Gerät gesendeten elektrischen ImpulsesServoAlle 20 Millisekunden können Sie das befehlenServoum sich in einen bestimmten Winkel zu bewegen, normalerweise zwischen 0 und 180 Grad. Dieser Leitfaden enthält die genauen Signalspezifikationen, eine Schritt-für-Schritt-Steuerungslogik, praktische Beispiele und Tipps zur Fehlerbehebung, damit Sie die PWM-Servosteuerung sofort implementieren können.

01Kernprinzip: Die Impulsbreite wird direkt dem Winkel zugeordnet

Ein Standard-Servomotor enthält einen kleinen Steuerkreis, der das eingehende PWM-Signal liest. Die Position der Abtriebswelle des Servos wird ausschließlich durch die bestimmtPulsbreite(Dauer des High-Signals) innerhalb eines festen 20 ms (50 Hz) Rahmens. Der Zusammenhang ist linear: Eine bestimmte Impulsbreite entspricht einem bestimmten Zielwinkel.

Standard-Puls-zu-Winkel-Zuordnung (für 0–180°-Servos):

0 Grad:0,5-ms-Impuls (500 Mikrosekunden)

90 Grad (neutral):1,5-ms-Impuls (1500 Mikrosekunden)

180 Grad:2,5-ms-Impuls (2500 Mikrosekunden)

Diese Werte entsprechen dem Industriestandard. Überprüfen Sie immer das Datenblatt Ihres Servos, aber über 95 % der Standardservos befolgen genau diese Zuordnung.

02Schritt für Schritt: Das richtige PWM-Signal erzeugen

Um den Servowinkel zu steuern, müssen Sie ein sich wiederholendes Signal mit zwei Schlüsselparametern erzeugen:

Schritt 1: Stellen Sie die PWM-Periode auf 20 ms (50 Hz) ein.

Das Servo erwartet alle 20 Millisekunden einen neuen Impuls. Das bedeutet, dass die PWM-Frequenz 1 / 0,02 s = 50 Hz beträgt. Ändern Sie diese Frequenz nicht; Andernfalls zittert das Servo oder reagiert nicht.

Schritt 2: Wählen Sie den gewünschten Winkel und berechnen Sie die Impulsbreite

Verwenden Sie diese lineare Interpolationsformel:

Impulsbreite (ms) = 0,5 + (Winkel / 180) 2.0

Zum Beispiel:

Winkel = 45° → Impuls = 0,5 + (45/180)2,0 = 0,5 + 0,5 =1,0 ms

Winkel = 135° → Impuls = 0,5 + (135/180)2.0 = 0.5 + 1.5 = 2,0 ms

Schritt 3: Legen Sie den hohen Impuls für die berechnete Dauer und dann den niedrigen Impuls für die restlichen 20 ms an

In der Praxis stellen Sie einen Timer ein: Geben Sie HIGH für die Impulsbreite aus (z. B. 1,5 ms) und geben Sie dann LOW für die verbleibende Zeit aus (20 ms – 1,5 ms = 18,5 ms). Kontinuierlich wiederholen.

03Beispiel aus der Praxis: Steuerung eines Servos von 0° auf 180°

Stellen Sie sich vor, Sie haben ein Servo, das an einen Roboterarm angeschlossen ist. Sie möchten, dass es sich schrittweise von ganz links (0°) nach ganz rechts (180°) bewegt.

Signalsequenz (jede Zeile ist ein 20-ms-Zyklus):

Zyklus 1: HIGH für 0,5 ms → Servo fährt auf 0°

Zyklus 2: HIGH für 1,0 ms → Servo fährt auf 45°

Zyklus 3: HIGH für 1,5 ms → Servo fährt auf 90°

Zyklus 4: HIGH für 2,0 ms → Servo bewegt sich auf 135°

Zyklus 5: HIGH für 2,5 ms → Servo fährt auf 180°

Beobachtetes Verhalten:Das Servo bewegt sich zu jedem Winkel und hält diese Position. Es driftet nicht, da die Steuerschaltung ständig die Zielimpulsbreite erhält.

04Gängige Implementierungsmethoden (keine Markennamen)

Sie können das erforderliche PWM-Signal erzeugen mit:

Mikrocontroller-Timer-/Zählermodule– Richten Sie eine 50-Hz-PWM mit variablem Arbeitszyklus ein. Arbeitszyklus = (Impulsbreite / 20 ms) 100 %. Für einen 1,5-ms-Impuls beträgt das Tastverhältnis 7,5 %.

Software-Bit-Banging– Steuern Sie einen GPIO-Pin direkt mit Verzögerungen. Weniger präzise, ​​eignet sich aber zum Lernen.

Dedizierte Servotreibermodule– Diese entlasten die Timing-Präzision, erfordern aber immer noch den gleichen Impulsbereich von 0,5–2,5 ms.

Kritische Präzisionsanforderung:Die Genauigkeit der Impulsbreite muss innerhalb von ±10 µs (Mikrosekunden) liegen. Jitter oder falsche Winkel treten auf, wenn Ihr Timing um mehr als 20 µs abweicht.

05Fehlerbehebung: Warum erreicht der Servo nicht den richtigen Winkel?

Symptom Höchstwahrscheinliche Ursache Fix
Servo bewegt sich nur zwischen 0° und 90° (nicht 180°) Der Impulsbreitenbereich beträgt 1,0–2,0 ms statt 0,5–2,5 ms Passen Sie Ihren Code so an, dass er mindestens 0,5 ms und maximal 2,5 ms ausgibt
Servo vibriert oder brummt im Extremfall Die Impulsbreite liegt leicht außerhalb der mechanischen Grenzen Impuls auf 0,5–2,5 ms begrenzen; Senden Sie niemals 2,6 ms
Servo reagiert überhaupt nicht Falsche Frequenz (nicht 50 Hz) Stellen Sie sicher, dass Ihre PWM-Periode genau 20 ms (50 Hz) beträgt.
Winkel ist versetzt (z. B. 1,5 ms ergibt 95° statt 90°) Servo hat einen nicht standardmäßigen Neutralpunkt Messen Sie den tatsächlichen Puls für 90° und kalibrieren Sie Ihr Mapping neu

Echter Fall:Ein häufiger Fehler ist die Verwendung eines Bereichs von 1,0–2,0 ms, da einige Mikrocontroller-Bibliotheken diesen standardmäßig verwenden. Ein Benutzer berichtete, sein Servo habe sich insgesamt nur um 90° gedreht. Nach Änderung des Pulsbereichs auf 0,5–2,5 ms wurde die volle 180°-Rotation wiederhergestellt.

06Wichtige Erkenntnisse – Wiederholen Sie diese Grundprinzipien

PWM steuert den Servowinkel anhand der Impulsbreite, nicht nur anhand des Arbeitszyklus.Für einen festen Zeitraum von 20 ms bestimmt die absolute High-Zeit (0,5 bis 2,5 ms) die Position.

Der Zusammenhang ist linear:Impulsbreite = 0,5 ms + (Winkel/180)*2,0 ms.

Verwenden Sie immer 50 Hz (20 ms Periode).Jede andere Frequenz führt zu unregelmäßigem Verhalten oder zu keiner Bewegung.

Überprüfen Sie Ihre minimale und maximale Impulsbreite.Die meisten Probleme sind auf einen falschen Impulsbereich und nicht auf einen Hardwarefehler zurückzuführen.

07Umsetzbare Empfehlungen für eine zuverlässige Servosteuerung

Befolgen Sie diese Schritte sofort, um konsistente Ergebnisse zu erhalten:

1. Messen Sie die tatsächliche Reaktion Ihres Servos.Senden Sie Impulse von 0,5 ms, 1,5 ms und 2,5 ms. Markieren Sie die physikalischen Winkel. Wenn sie nicht 0°, 90°, 180° sind, zeichnen Sie die tatsächliche Puls-Winkel-Zuordnung auf.

2. Fügen Sie einen Sicherheitsspielraum von 100–200 µs hinzuan beiden Enden (min. Impuls = 0,6 ms, max. = 2,4 ms), um mechanische Bindungen zu verhindern.

3. Verwenden Sie eine dedizierte Timer-Hardwarestatt Software-Verzögerungen, wenn möglich. Timerbasiertes PWM sorgt für Präzision, selbst wenn Ihr Hauptcode ausgelastet ist.

4. Testen Sie mit einem Logikanalysator oder Oszilloskopum die Pulsbreiten zu bestätigen. Viele Softwaresimulationen verbergen Timing-Fehler.

5. Für Multi-Servo-ProjekteHalten Sie die Stromversorgung von der Logikversorgung getrennt. Ein blockierter Servo kann 1–2 A verbrauchen, was zu Spannungsabfällen führt, die die PWM-Signale verfälschen.

Durch die strikte Einhaltung des Impulsbreitenbereichs von 0,5–2,5 ms innerhalb eines Zeitraums von 20 ms erreichen Sie eine präzise, ​​wiederholbare Winkelsteuerung bei jedem Standard-Servomotor. Implementieren Sie zuerst den Messschritt und optimieren Sie dann Ihren Code, und Ihr Servo bewegt sich genau dorthin, wo Sie es befehlen.

Aktualisierungszeit: 13.04.2026

Die Zukunft vorantreiben

Wenden Sie sich an den Produktspezialisten von Kpower, um einen geeigneten Motor oder ein geeignetes Getriebe für Ihr Produkt zu empfehlen.

Mail an Kpower
Anfrage senden
+86 0769 8399 3238
 
kpowerMap