Heim > Brancheneinblicke >Getriebemotor
TECHNISCHE UNTERSTÜTZUNG

Produktunterstützung

Zittert das Lenkgetriebe im falschen Winkel? Geheimnisse der Pulsweitenmodulation-PWM-Signalanpassung

Veröffentlicht 2026-03-03

Kommt diese Situation beim Spielen oft vor?Servos: Du hast das gleiche Modell gekauft, aber wenn es sich dreht, wackelt es wie ein Sieb, oder ist der Winkel falsch? Nachdem ich lange gekämpft hatte, entdeckte ich, dass das Problem im mysteriösen Pulsweitenmodulationssignal (PWM) liegt. Machen Sie sich keine Sorgen, heute werden wir es gründlich verstehen und dafür sorgen, dass sich Ihr Produkt stabil und präzise bewegt.

Was genau ist ein PWM-Signal?

Einfach ausgedrückt ist PWM wie eine Lampe, die gedimmt werden kann. Für dieServoEs steuert die Rotation durch Impulse mit hohem und niedrigem Pegel. Sie können es sich so vorstellen, als würden Sie einer Person befehlen, zu rennen: Ein hoher Pegel steht für „Laufen“, ein niedriger Pegel für „Stopp“ und die Dauer des „Laufens“ bestimmt die Position der PersonServo.

Diese „Laufzeit“ wird in der Fachsprache Pulsbreite genannt. Ein Standardservo erhält normalerweise alle 20 Millisekunden einen Befehl, und die Dauer des High-Pegels variiert zwischen 0,5 Millisekunden und 2,5 Millisekunden. Die Länge dieser Zeit entspricht direkt dem Drehwinkel des Servos von 0 Grad bis 180 Grad.

Wenn Sie also feststellen, dass das Servo dem Befehl nicht gehorcht, liegt das wahrscheinlich daran, dass die ihm zugewiesene „Laufzeit“ nicht genau berechnet wurde.

Warum ist der Servowinkel immer falsch?

Viele Freunde verwenden direkt den PWM-Ausgang des Entwicklungsboards, stellen jedoch fest, dass es immer einen Unterschied gibt, wenn das Servo um 90 Grad gedreht wird. Der Grund dafür ist eigentlich ziemlich unfair: Ihr Code schreibt möglicherweise direkt „1500 Mikrosekunden“, um 90 Grad darzustellen, aber der Steuerchip in jedem Servo ist etwas anders.

Es ist, als würde man zwei Menschen die Anweisung geben, „schnell zu gehen“. Der eine interpretiert es als Joggen, der andere als Gehen. Das Servo selbst verfügt über keinen Feedback-Mechanismus, um dem Controller mitzuteilen, dass ich in der richtigen Position bin. Es führt die Aktion einfach blind aus.

Der erste Schritt zur Lösung dieses Problems besteht darin, zu überprüfen, ob Ihre Signalquelle stabil ist. Verwenden Sie ein Oszilloskop, um festzustellen, ob die tatsächliche High-Level-Ausgangszeit genau mit der im Code geschriebenen übereinstimmt. Oftmals können bereits wenige zehn Mikrosekunden einen großen Unterschied in der Leistung des Servos ausmachen.

So bestimmen Sie schnell den Pulsbereich

Beginnen Sie nicht einfach mit dem Schreiben von Code, sondern führen Sie zunächst ein kleines Experiment durch. Schließen Sie Ihr Servo an, beginnen Sie mit der minimalen Impulsbreite (z. B. 500 Mikrosekunden) und erhöhen Sie diese schrittweise, während Sie die Rotationsgrenzposition des Servos beobachten.

Sie werden feststellen, dass sich das Servo innerhalb eines bestimmten Bereichs überhaupt nicht bewegt. Dies ist seine mechanische Grenze. Steigern Sie weiter, bis Sie anfangen zu drehen, notieren Sie sich diesen Startwert. Dann weiter erhöhen, bis sich das Servo nicht mehr dreht, und den Endwert notieren. Dieser Bereich ist der tatsächliche Arbeitsbereich Ihres Lenkgetriebes.

Der Nennwert vieler Servos beträgt 0,5 ms bis 2,5 ms entsprechend 0 bis 180 Grad, die tatsächliche Messung beträgt jedoch möglicherweise nur 0,6 ms bis 2,4 ms. Verwenden Sie zum Programmieren tatsächlich gemessene Daten, damit Ihr Servo dort anschlagen kann, wo Sie es möchten.

Welche Auswirkungen hat die Frequenzauswahl?

Neben der Pulsweite ist auch die Frequenz von PWM entscheidend. Bei gewöhnlichen Hobby-Servos sind 50 Hz (also 20 Millisekunden Takt) Standard. Aber einige Freunde verwenden aus Bequemlichkeitsgründen höhere Frequenzen.

Sobald die Frequenz höher wird, verkürzt sich die Periode. Der Befehl wurde ursprünglich alle 20 Millisekunden gesendet, jetzt wird er jedoch alle 10 Millisekunden gesendet. Der Schaltkreis im Servo hatte möglicherweise keine Zeit, auf den letzten Befehl zu reagieren, und der nächste Befehl kommt erneut. Das Ergebnis ist, dass das Servo ständig versucht, aufzuholen, was sich in Hitze und Zittern bemerkbar macht.

️ Denken Sie an diesen Grundsatz: Sofern Ihr Servo nicht eindeutig die Breitbandsteuerung unterstützt, bleiben Sie einfach bei 50 Hz. Für digitale Servos in Industriequalität gelten möglicherweise höhere Anforderungen an die Bildwiederholfrequenz. Dies hängt jedoch vom jeweiligen Datenblatt ab und kann nicht als selbstverständlich angesehen werden.

So optimieren Sie den Code, um ihn reibungslos zu gestalten

Nach der Bestimmung des Pulsbereichs und der Frequenz erfolgt als nächster Schritt die Programmierung. Schreiben Sie nicht die lineare Beziehung zwischen Winkel und Impulsbreite auf, sondern wenden Sie sie direkt an. Denn einige Servos reagieren in der Nähe des Neutralpunkts besonders empfindlich, reagieren aber auf beiden Seiten nur langsam.

Sie können eine Mapping-Funktion einführen, um eine Tabelle aus den gemessenen Winkelpunkten und der Impulsbreite zu erstellen. Beispielsweise entsprechen gemessene 0 Grad 600 Mikrosekunden, 45 Grad entsprechen 1200 Mikrosekunden und 90 Grad entsprechen 1500 Mikrosekunden. Schlagen Sie dann im Code basierend auf dem Zielwinkel die Tabelle nach und interpolieren Sie, um die tatsächliche Impulsbreite zu berechnen.

Wenn Sie möchten, dass der Roboterarm auf diese Weise einen Kreis zeichnet, sind die winzigen Drehungen jedes Gelenks sehr gleichmäßig und es entsteht nicht das Gefühl, dass Sie nacheinander vorwärts rasen. Obwohl der Code ein paar Zeilen mehr enthält, ist die Textur des Produkts völlig anders.

So beheben Sie Jitter- und Rauschprobleme

Wenn Sie alle oben genannten Schritte korrekt ausgeführt haben und das Servo immer noch zittert, müssen Sie die Stromversorgung überprüfen. Der Strom beim Starten des Servos ist sehr groß. Wenn Ihre Steuerplatine und Ihr Servo die gleiche Stromversorgung nutzen, beeinträchtigen Spannungsschwankungen die PWM-Erzeugung des Mikrocontrollers.

1. Stellen Sie eine separate Stromversorgung für das Servo bereit und verbinden Sie das Steuersignal-Erdungskabel und das Stromversorgungs-Erdungskabel miteinander.

2. Schließen Sie einen großen Kondensator (über 470 uF) parallel an beide Enden der Stromversorgung des Servos an, um den Anlaufstoß zu absorbieren.

3. Überprüfen Sie die Länge des PWM-Steuerkabels. Wenn die Länge 30 cm überschreitet, wird empfohlen, ein abgeschirmtes Kabel zu verwenden oder einen Magnetring hinzuzufügen, um Störungen zu vermeiden.

Darüber hinaus muss die Aktualisierung des Steuersignals stabil sein und darf keine Verzögerung zur Erzeugung von PWM in der Schleife verwenden, die leicht durch andere Interrupts unterbrochen werden kann, was dazu führt, dass die Impulsbreite lang und kurz ist. Die Verwendung von Hardware-PWM ist die sorgenfreiste Option.

Nachdem Sie dies gesehen haben, sollten Sie eine gute Vorstellung davon haben, wie Sie das Servo verwenden. Wenn Sie kühlere Produkte herstellen möchten, besteht der Schlüssel darin, jedes Detail des PWM-Signals so anzupassen, dass es fügsam ist. Was ist das größte Problem, auf das Sie beim Debuggen des Servos gestoßen sind? Hinterlassen Sie gerne eine Nachricht im Kommentarbereich. Wir werden das Problem dann gemeinsam besprechen und lösen. Wenn Sie es nützlich finden, vergessen Sie nicht, es zu liken und zu teilen, damit mehr Freunde sich von den Problemen mit Lenkgetrieben verabschieden können.

Aktualisierungszeit: 03.03.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
WhatsApp-Nachricht
+86 0769 8399 3238
 
kpowerMap