Veröffentlicht 2026-03-27
Haben Sie jemals eine solche Peinlichkeit erlebt: Sie möchten einen Roboterarm, ein intelligentes Auto oder einen coolen Roboter bauen, aber dasServoZittert immer stark oder bleibt mitten in der Rotation hängen? Tatsächlich kontrolliert dieServoist viel einfacher als Sie denken. Heute werden wir darüber sprechen, wie man dieses kraftvolle „Herz“ perfekt mit dem kleinen „Muskel“ koordinieren kannServo.
Viele Freunde benutzen das Servo zum ersten Mal und das größte Problem sind die Vibrationen des Servos. Dies liegt in der Regel nicht daran, dass das Servo kaputt ist, sondern daran, dass das Steuersignal instabil ist. Das Lenkgetriebe basiert auf einer PWM-Welle mit einer Periode von 20 ms, wobei die Hochpegelzeit zwischen 0,5 ms und 2,5 ms variiert, was 0 bis 180 Grad entspricht. Es verfügt über einen fortschrittlichen Timer, der äußerst präzise PWM-Wellen ausgeben kann, was viel stabiler ist als die Verwendung einer Verzögerungsfunktionssimulation. Sie können sich vorstellen, dass das Servo mit einem professionellen Dirigenten ausgestattet ist und jeder Schlag gleichmäßig ist.
Eine weitere häufige Ursache ist eine unzureichende Stromversorgung. Der momentane Anlaufstrom des Servos kann mehr als 1A erreichen. Wenn die Stromversorgung direkt von den 3,3 V der Entwicklungsplatine übernommen wird, wird das Signal durcheinander gebracht, wenn die Spannung abfällt. ️ Der richtige Ansatz besteht darin, eine externe unabhängige Stromversorgung bereitzustellen, die Stromversorgung der Entwicklungsplatine und des Servos zu trennen und nur die Masse zu teilen. Das ist so, als würde man zu Hause eine eigene Leitung für Hochleistungsgeräte nutzen, sonst blinkt die Glühbirne beim Einschalten der Klimaanlage zweimal.
Die Timer-Ressourcen sind sehr reichhaltig, TIM1 bis TIM14, aber nicht alle sind für die direkte Steuerung des Servos geeignet. Für gewöhnliche Winkelservos reicht es aus, die allgemeinen Timer TIM2, TIM3, TIM4 und TIM5 zu verwenden. Sie können problemlos eine PWM mit einer Periode von 20 ms erzeugen. Wenn Sie viele Servos gleichzeitig steuern, beispielsweise mehr als 8, sollten Sie die Verwendung der erweiterten Timer TIM1 oder TIM8 in Betracht ziehen. Sie verfügen über komplementäre Ausgangs- und Bremsfunktionen und eignen sich besser für die Mehrkanalsteuerung.
Wie wähle ich? Schauen Sie sich zuerst die Pins an und zweitens die Ressourcen. Verbinden Sie die Servosignalleitung mit dem Pin mit dem Timer-Ausgangskanal. Beispielsweise ist PA0 Kanal 1 von TIM2 und PB6 Kanal 1 von TIM4. Es wird empfohlen, die Pin-Definitionstabelle im Referenzhandbuch zu öffnen und die Pins wie auf einer Karte nachzuschlagen, um die Pins zu finden, die für die Verkabelung geeignet sind und nicht mit anderen Funktionen in Konflikt stehen. Denken Sie daran, dass die Verkabelung eines guten Ingenieurs mit der Auswahl der richtigen Pins beginnt.
Eigentlich gibt es drei Schritte zum Konfigurieren von PWM: Einschalten der Uhr, Einstellen der Parameter und Ausgabe der Wellenform. Nehmen wir als Beispiel TIM2: Wenn Sie möchten, dass die Periode 20 ms beträgt, was 50 Hz entspricht, stellen Sie den Auto-Reload-Wert ARR auf 2000 und den Prescaler PSC auf 839 ein. Auf diese Weise beträgt der Timer-Takt 84 MHz/(839+1)=, und 2000 Impulse entsprechen genau 20 ms. Hier kommt der Schlüssel, der Arbeitszyklus-Steuerwinkel: 0 Grad entsprechen einem Vergleichswert CCR von 50, 90 Grad sind 150 und 180 Grad sind 250. Diese Berechnungsformel ist nicht schwierig, oder?
Wenn Sie zum Entwickeln Bibliotheksfunktionen verwenden, wird die Wellenform ausgegeben, sobald () aufgerufen wird. Aber seien Sie vorsichtig, verwenden Sie niemals Delay, um die Drehung des Servos im Programm zu steuern, da dies dazu führt, dass die CPU einfriert und das Servo einfriert. ️ Der richtige Ansatz besteht darin, den CCR-Wert zu ändern und die Hardware automatisch eine neue Wellenform ausgeben zu lassen, genau wie ein Gangwechsel ohne Abstellen des Motors, seidig und sanft. Wenn Sie die Standardbibliotheks- oder Registeroperation verwenden, ist das Prinzip dasselbe. Wenn Sie dies gründlich verstehen, wissen Sie alles über andere Timer.
Die Steuerung eines Servos ist einfach, aber bei der Steuerung mehrerer Servos geraten viele Menschen in Missverständnisse. Ein Timer kann nur einen Zyklus verwenden, aber mehrere Kanäle ausgeben. Beispielsweise können CH1, CH2, CH3 und CH4 von TIM2 gleichzeitig PWM mit unterschiedlichen Arbeitszyklen ausgeben. Dies bedeutet, dass ein Timer 4 Servos antreiben kann, ohne sich gegenseitig zu stören. Sie müssen lediglich den CCR-Wert jedes Kanals separat einstellen, damit mehrere Servos gleichzeitig unterschiedliche Stellungen einnehmen können.
Wenn Sie einen Roboter mit 18 Freiheitsgraden bauen möchten, benötigen Sie mehrere Timer, die zusammenarbeiten. Gruppieren Sie die Servos in Gruppen, z. B. TIM2 für die Arme, TIM3 für den Körper und TIM4 für die Beine. Jeder Timer verwaltet mehrere eigene Servos. Dies macht nicht nur die Logik klar, sondern verhindert auch Verwirrung durch zu viele Interrupts von einem Timer. Es ist wie eine Produktionslinie in einer Fabrik. Jede Linie erfüllt ihre eigenen Aufgaben, sodass die Gesamteffizienz maximiert werden kann.
Viele Anfänger schreiben gerne direkt in die Hauptschleife, um die Drehzahl des Servos zu steuern. Dies hat zur Folge, dass die Reaktion anderer Tasten langsam ist, sobald sich das Servo dreht. Tatsächlich ist es sehr einfach, mithilfe der Idee einer „Zustandsmaschine“ eine gleichmäßige Rotation zu erreichen. Wenn Sie beispielsweise möchten, dass sich das Servo von 0 Grad auf 90 Grad dreht, anstatt den CCR auf einmal von 50 auf 150 zu ändern, sollten Sie ihn alle kurzen Zeiträume erhöhen und Schritte im Timer-Interrupt oder Interrupt vornehmen. Auf diese Weise kann die CPU mit anderen Dingen beschäftigt sein und das Servo kann sich gleichmäßig bewegen.
Sie können auch DMA zur Unterstützung nutzen. Wenn Sie über eine Reihe vordefinierter Aktionssequenzen verfügen, beispielsweise die kontinuierlichen Aktionen eines Roboterarms, der Gegenstände greift, können Sie diese CCR-Werte in einem Array speichern und den DMA automatisch zum Vergleichsregister des Timers bewegen lassen. Auf diese Weise wird die CPU nahezu nicht belastet und die Servobewegung kann im Mikrosekundenbereich präzise sein. Obwohl es kompliziert erscheint, ist die DMA-Konfiguration tatsächlich sehr einfach. Sobald Sie es einmal ausprobiert haben, werden Sie seine Kraft erkennen.
Egal wie perfekt das Programm geschrieben ist, Hardwareprobleme können Menschen leicht in den Wahnsinn treiben. Das erste Problem ist das Common-Ground-Problem. Der GND des Entwicklungsboards und der GND der Servostromversorgung müssen miteinander verbunden werden. Andernfalls wird das Steuersignal ausgesetzt und das Servo bewegt sich entweder nicht oder dreht sich zufällig. Viele Menschen verwenden ein Multimeter, um die Spannung richtig zu messen, aber das Signal ist einfach falsch. In neun von zehn Fällen ist das Erdungskabel nicht richtig angeschlossen. Zweitens ist eine zu lange Servosignalleitung anfällig für Störungen. Am besten verwenden Sie ein verdrilltes Paar oder einen kleinen 100-Ohm-Widerstand in Reihe.
Ein weiteres Artefakt ist der Logikanalysator. Ein kleines Gerät, das mehrere zehn Dollar kostet. Befestigen Sie es einfach an der Signalleitung und Sie können mit eigenen Augen sehen, ob die PWM-Wellenform korrekt ist und ob die High-Level-Zeit Ihren Wünschen entspricht. Im Vergleich zum blinden Debuggen können Sie mit dieser Art des visuellen Debuggens schnell feststellen, ob es sich um ein Codeproblem oder ein Hardwareproblem handelt. Machen Sie sich keine Sorgen, nehmen Sie sich 10 Minuten Zeit, um es sich anzusehen, das erspart Ihnen einen Nachmittag voller Rätselraten.
Denken Sie nach der Lektüre, dass die Steuerung des Lenkgetriebes tatsächlich recht systematisch erfolgt? Wenn Sie das nächste Mal ein Roboterprojekt entwickeln, sollten Sie auch über die Punkte nachdenken, über die wir heute gesprochen haben: Von der Stromversorgung bis zur Timer-Auswahl, vom Einzelservo bis zur Mehrkanalverknüpfung ist jeder Schritt wichtig. Welche interessanten Werke planen Sie mit dieser Technik zu schaffen? Ist es eine bionische Hand, ein sechsbeiniger Roboter oder ein omnidirektionales Auto? Teilen Sie Ihre Kreativität gerne im Kommentarbereich mit und vergessen Sie nicht, sie zu liken und zu speichern, damit mehr Partner mit der Servosteuerung spielen können!
Aktualisierungszeit: 27.03.2026
Wenden Sie sich an den Produktspezialisten von Kpower, um einen geeigneten Motor oder ein geeignetes Getriebe für Ihr Produkt zu empfehlen.