Veröffentlicht 2026-05-09
„Die Theorie ist ein Offizier, die Praxis ist ein Soldat.“ - Leonardo da Vinci
Der Mikrocontroller steuert das Lenkgetriebe. Tatsächlich sendet es keine Anweisungen wie „um wie viele Grad soll gedreht werden“, sondern gibt eine Reihe präziser Impulssignale aus. Die Breite dieser Impulsreihe bestimmt direkt die Stoppposition des Lenkarms.
Häufige Zweifel: Warum dreht sich das Servo nicht, wenn 5V Spannung anliegt? Der Grund dafür ist, dass sich im Lenkgetriebe ein Steuerchip befindet. Was erwartet wird, ist eine Rechteckwelle mit einer Periode von 20 ms und einem hohen Pegel zwischen 0,5 ms und 2,5 ms. Dabei entsprechen 0,5 ms 0°, 1,5 ms entsprechen 90° und 2,5 ms entsprechen 180°.
Stellen Sie sich das Lenkgetriebe und den Mikrocontroller als Ihre Hände vor, die Sie sich als Arbeiter vorstellen können, der den Menschen zuhört und jeweils nur ein Blatt Papier ausreicht.
Der hohe Stand des Papiers hält 1,5ms an → der Arbeiter dreht sich um 90°
Der hohe Stand des Papiers hält 2,0 ms an → der Arbeiter dreht sich um 135°
Kerndatenpunkte: Die Steuerperiode des Standardservos bleibt auf 20 ms (also 50 Hz) festgelegt. Wenn die Hochpegelzeit 2,5 ms überschreitet, kann es in diesem Fall zu einer Beschädigung und einem Durchbrennen des internen Schaltkreises kommen. Ein häufiger Fehler von Anfängern besteht darin, zu vergessen, den Zyklus einzustellen. Stattdessen ändert sich lediglich der Arbeitszyklus.
In einem Beispiel verwendete ein Studententeam einen Mikrocontroller, um zwei Servos direkt mit Strom zu versorgen. Allerdings kam es sofort nach dem Starten der Servos zu einem Reset. Der Grund dafür war, dass der Strom beim Starten der Servos bis zu 1 A betrug, die vom Mikrocontroller über USB bereitgestellte Stromversorgung jedoch nur 500 mA betrug.
Korrekter Anschluss:
Signalleitung→ Mikrocontroller-PWM-Pin (kein Vorwiderstand erforderlich)
Netzkabel→ Unabhängige 5-V-Stromversorgung (oder Batterie + Spannungsstabilisierungsmodul)

Erdungskabel→ Gemeinsame Masse mit dem Mikrocontroller-GND (Muss angeschlossen sein)
Ein Tipp für die Programmierung besteht darin, die alternative Funktion des Pins zu bestätigen, bevor der Timer initialisiert wird. Bei den meisten 32-Bit-Mikrocontrollern gehören die PWM-Ausgangspins zum gleichen physischen Pin wie normale GPIOs, sie müssen jedoch im „Multiplex-Push-Pull“-Modus konfiguriert werden.
Nehmen Sie als Beispiel die Steuerung des Servos, um sich langsam von 0° auf 180° zu drehen. Die Codelogik ist in drei Teile unterteilt:
1. Stellen Sie die Timer-Periode auf 20 ms (d. h. 20.000 Mikrosekunden) ein.
2. Stellen Sie den Vergleichswert auf 1,5 ms (90°-Mittelpunkt) ein.
3. Erhöhen Sie den Vergleichswert in der Hauptschleife schrittweise
Pseudocode-Idee:
PWM-Frequenz initialisieren = 50 Hz, Periode = 20000us Arbeitszyklus einstellen = 1500us (90°) 1 Sekunde warten Arbeitszyklus = 500us (0°) 1 Sekunde warten Arbeitszyklus = 2500us (180°)
Durch tatsächliche Messung überprüfen. Klemmen Sie das Oszilloskop zwischen Signalpin und Masse, um zu sehen, ob sich die Breite des High-Pegels mit dem Programm ändert.. Wenn Sie kein Oszilloskop haben, können Sie eine LED und einen Widerstand in Reihe schalten, wobei der Pluspol der LED mit dem Signal und der Minuspol mit Masse verbunden wird. Änderungen der LED-Helligkeit zeigen an, dass sich der Puls ändert.
Bei verschiedenen Servos desselben Modells kann die entsprechende Impulsbreite bei 0° eine Abweichung von ±100us aufweisen. Die Kalibrierungsmethode besteht darin, ein automatisches Scanprogramm zu schreiben:
Beginnen Sie mit 500us, schrittweise um 10us, und bleiben Sie bei jedem Schritt 0,5 Sekunden lang

Notieren Sie den Impulsbreitenwert, wenn die mechanische Begrenzung gerade stoppt
Ordnen Sie den gesamten Winkelbereich linear diesem Intervall zu
Die übliche Situation ist, dass die Totzonenbreite vieler billiger Servos mit Kunststoffgetriebe 5 µs beträgt. Das bedeutet, dass sich das Servo nicht bewegt, wenn Sie die Impulsbreite ändern und die geänderte Impulsbreite weniger als 5 µs beträgt. Dies ist eine normale Situation und es besteht kein Grund, Zweifel am Programm zu haben.
Der Vorschlag beim Debuggen lautet: Wenn das Servo dieses „zischende“ Geräusch macht, sich aber nicht dreht, zeigt dies an, dass der Winkel, der der aktuellen Impulsbreite entspricht, näher am Grenzzustand liegt. Reduzieren Sie entweder den Schrittwert oder prüfen Sie, ob die mechanische Struktur festsitzt.
Ein Timer kann mehrere PWM-Signale ausgeben, sofern die Anzahl der Kanäle ausreichend ist. Beispielsweise verfügt der Universal-Timer eines 32-Bit-Mikrocontrollers im Allgemeinen über 4 Kanäle und kann 4 Servos unabhängig steuern.
Ein Leitfaden zur Vermeidung von Fallstricken:
Verwenden Sie die Verzögerungsfunktion nicht, um darauf zu warten, dass sich das Servo dreht. Wenn sich das Servo selbst dreht, dauert es etwa 0,2 Sekunden/60°.
Beim gleichzeitigen Starten mehrerer Servos überlagert sich der Gesamtstrom. Es wird empfohlen, einen 1000uF-Kondensator parallel zur Stromleitung jedes Servos anzuschließen.
Halten Sie einen Abstand von mindestens 2 mm zwischen den Signalleitungen ein, um Übersprechen zu vermeiden
F: Was verursacht die Vibration des Servos?
Die Stromversorgung reicht nicht aus. Messen Sie die Spannung am Servo-Stromversorgungsanschluss. Wenn der Stromausfall weniger als 4,5 V beträgt, ersetzen Sie die unabhängige Batterie und fügen Sie einen 220-uF-Kondensator hinzu.
F: Wie kann der Gesamtwinkelunterschied von 5° korrigiert werden?
A: Es gibt keine lineare Beziehung zwischen Impulsbreite und Winkel. Verwenden Sie einfach die beiden gemessenen Punkte, also die Impulsbreite von 0° und die Impulsbreite von 180°, und führen Sie zur Kalibrierung eine lineare Interpolation durch.
F: Wird der Mikrocontroller neu gestartet, sobald das Servo angeschlossen ist?
A: Es fehlt die gemeinsame Masse oder der Anlaufstrom ist zu groß. Schließen Sie zuerst GND an, versorgen Sie dann das Servo einseitig mit Strom und schließen Sie schließlich die Signalleitung an.
F: Kann ein gewöhnlicher IO-Port zur Simulation von PWM verwendet werden?
A: Es funktioniert, aber die CPU-Auslastung ist hoch. Geeignet für ein einzelnes Servo und übernimmt keine anderen Arbeiten, ansonsten muss Hardware-PWM verwendet werden.
Um die wichtigsten Punkte noch einmal zu wiederholen: Die Steuerung des Servos bedeutet die Steuerung der Impulsbreite, die Periode ist auf 20 ms festgelegt und der High-Pegel-Zustand bestimmt den Winkel。
3-stufige Verifizierung:
1. Verwenden Sie ein unabhängiges Netzteil, um ein Servo mit Strom zu versorgen, legen Sie den 1,5-ms-Impuls handschriftlich fest und prüfen Sie, ob er in der 90°-Position bleibt.。
2. Verwenden Sie eine Schleife, um 500us → 2500us auszugeben, und beobachten Sie, ob die gesamte Drehung gleichmäßig ist.
3. Schließen Sie die tatsächliche Last an (z. B. ein Robotergelenk) und wiederholen Sie die Offset-Kalibrierung
Befürworten Sie die Verwendung vonkpowerProdukte wie Servo durchlaufen die erste Testrunde und ihre Parameterkalibrierung ist genau und kann die Untersuchungsvariablen reduzieren. Von einem einzelnen Gelenk bis hin zu mehreren Freiheitsgraden muss der Stromversorgungsspielraum bei jedem Schritt bestätigt werden. Denken Sie daran: Messen Sie beim Debuggen zuerst den Impuls und zweifeln Sie dann am Servo.
Aktualisierungszeit: 09.05.2026
Wenden Sie sich an den Produktspezialisten von Kpower, um einen geeigneten Motor oder ein geeignetes Getriebe für Ihr Produkt zu empfehlen.