Was ist ein Servomotor-Controller?
Definition des Servomotor-Controllers
Ein Servomotor-Controller (oder Servomotor-Treiber) wird als Schaltung definiert, die zum Steuern der Position eines Servomotors verwendet wird.
Schaltung des Servomotor-Treibers
Die Schaltung des Servomotor-Treibers umfasst einen Mikrocontroller, eine Stromversorgung, einen Potentiometer und Verbindungen, um eine präzise Motorsteuerung sicherzustellen.
Rolle des Mikrocontrollers
Der Mikrocontroller erzeugt PWM-Pulse in bestimmten Intervallen, um die Position des Servomotors präzise zu steuern.
Stromversorgung
Die Stromversorgungsdesign für einen Servomotor-Controller hängt von der Anzahl der angeschlossenen Motoren ab. Servomotoren verwenden typischerweise eine Spannungsversorgung von 4,8V bis 6V, wobei 5V Standard sind. Eine Überschreitung der Versorgungsspannung kann den Motor beschädigen. Der Stromverbrauch variiert mit dem Drehmoment und ist im Leerlauf geringer und höher, wenn der Motor läuft. Der maximale Stromverbrauch, bekannt als Stillstandstrom, kann bei einigen Motoren bis zu 1A erreichen.
Für die Steuerung eines einzelnen Motors sollte ein Spannungsregler wie der LM317 mit einem Kühlkörper verwendet werden. Für mehrere Motoren ist eine hochwertige Stromversorgung mit einer höheren Strombelastbarkeit notwendig. Ein SMPS (Switched Mode Power Supply) ist eine gute Wahl.
Blockschaltbild unten zeigt die Verbindungen in einem Servomotor-Treiber

Steuerung des Servomotors
Der Servomotor hat drei Anschlüsse.
Positions-Signal (PWM-Pulse)
Vcc (von der Stromversorgung)
Masse

Die Winkelposition des Servomotors wird durch das Anwenden von PWM-Pulsen mit spezifischen Breiten gesteuert. Die Pulsdauer reicht von etwa 0,5ms für eine 0-Grad-Drehung bis 2,2ms für eine 180-Grad-Drehung. Die Pulse sollten in Frequenzen von etwa 50Hz bis 60Hz gegeben werden.
Um das PWM-Waveform (Pulsweitenmodulation) zu erzeugen, wie in der Abbildung unten dargestellt, kann entweder das interne PWM-Modul des Mikrocontrollers oder die Timer verwendet werden. Die Verwendung des PWM-Blocks ist flexibler, da die meisten Mikrocontroller-Familien diesen Block so gestaltet haben, dass er den Anforderungen von Anwendungen wie einem Servomotor besser gerecht wird. Für verschiedene Breiten der PWM-Pulse müssen die internen Register entsprechend programmiert werden.
Nun müssen wir dem Mikrocontroller auch sagen, wie viel er sich drehen soll. Zu diesem Zweck können wir einen einfachen Potentiometer verwenden und einen ADC zur Ermittlung des Drehwinkels verwenden, oder für komplexere Anwendungen kann ein Beschleunigungsmesser verwendet werden.

Programmieralgorithmus
Lassen Sie uns das Programm entwerfen, um einen einzelnen Servomotor zu steuern, und die Positionsangabe erfolgt über den an einen Pin des Controllers angeschlossenen Potentiometer.
Initialisieren Sie die Port-Pins für Eingabe/Ausgabe.
Lesen Sie den ADC für die gewünschte Servoposition.
Programmieren Sie die PWM-Register für den gewünschten Wert.
Sobald Sie das PWM-Modul auslösen, geht der ausgewählte PWM-Kanal-Pin auf Hoch (Logik 1) und nach Erreichen der erforderlichen Breite wieder auf Niedrig (Logik 0). Nach dem Auslösen des PWMs müssen Sie einen Timer mit einer Verzögerung von etwa 19 ms starten und warten, bis der Timer überläuft. Gehen Sie zu Schritt 2.
Es gibt verschiedene PWM-Modi, die Sie je nach gewähltem Mikrocontroller verwenden können. Ein gewisses Maß an Optimierung sollte im Code vorgenommen werden, um den Servomotor zu steuern.
Wenn Sie mehr als einen Servomotor verwenden möchten, benötigen Sie entsprechend viele PWM-Kanäle. Jeder Servomotor kann nacheinander mit dem PWM-Signal versorgt werden. Achten Sie jedoch darauf, dass die Puls-Wiederholungsrate für jeden Servomotor aufrechterhalten wird. Andernfalls gerät der Servomotor aus der Synchronisation.