In diesem Tutorial steuern wir einen Servomotor von ARDUINO UNO. Servomotoren werden dort eingesetzt, wo eine genaue Bewegung oder Position der Welle erforderlich ist. Diese werden für Hochgeschwindigkeitsanwendungen nicht vorgeschlagen. Diese werden für niedrige Drehzahlen, mittleres Drehmoment und genaue Positionsanwendung vorgeschlagen. Diese Motoren werden in Roboterarmmaschinen, Flugsteuerungen und Steuerungssystemen eingesetzt.
Servomotoren sind in verschiedenen Formen und Größen erhältlich. Ein Servomotor hat hauptsächlich dort Drähte, einer für positive Spannung, ein anderer für Masse und der letzte für die Positionseinstellung. Das ROTE Kabel ist an die Stromversorgung angeschlossen, das schwarze Kabel ist an Masse angeschlossen und das GELBE Kabel ist an das Signal angeschlossen.
Ein Servomotor ist eine Kombination aus Gleichstrommotor, Lageregelungssystem und Zahnrädern. Die Position der Welle des Gleichstrommotors wird von der Steuerelektronik im Servo basierend auf dem Tastverhältnis des PWM-Signals des SIGNAL-Pins eingestellt.
Einfach gesagt, die Steuerelektronik passt die Wellenposition durch Steuern des Gleichstrommotors an. Diese Daten bezüglich der Position der Welle werden über den SIGNAL-Stift gesendet. Die Positionsdaten an die Steuerung sollten in Form eines PWM-Signals über den Signalstift des Servomotors gesendet werden.
Die Frequenz des PWM-Signals (Pulse Width Modulated) kann je nach Typ des Servomotors variieren. Wichtig hierbei ist das PFLICHTVERHÄLTNIS des PWM-Signals. Basierend auf dieser PFLICHTRATION stellt die Steuerelektronik die Welle ein.
Wie in der folgenden Abbildung gezeigt, muss die Einschaltration 1 / 18.ie betragen, damit die Welle auf 9 Uhr bewegt werden kann. 1 ms EIN-Zeit und 17 ms AUS-Zeit in einem 18 ms-Signal.
Damit die Welle auf 12 Uhr gestellt werden kann, muss die EIN-Zeit des Signals 1,5 ms und die AUS-Zeit 16,5 ms betragen. Dieses Verhältnis wird von der Steuerung im Servo dekodiert und passt die Position basierend darauf an. Diese PWM hier wird mit ARDUINO UNO generiert.
Schaltungskomponenten
Hardware: ARDUINO UNO, Stromversorgung (5 V), 100 uF Kondensator, Tasten (zweiteilig), 1 kΩ Widerstand (zweiteilig), Servomotor (der getestet werden musste).
Software: Arduino IDE (Arduino Nightly).
Schaltplan und Erklärung des Arduino-Servomotors
In normalen Fällen müssen wir zu den Registern der Steuerung gehen, um die Frequenz einzustellen und das erforderliche Tastverhältnis für eine genaue Positionssteuerung des Servos zu erhalten. In ARDUINO müssen wir diese Dinge nicht tun.
In ARDUINO haben wir vordefinierte Bibliotheken, die die Frequenzen und Tastverhältnisse entsprechend einstellen, sobald die Header-Datei aufgerufen oder eingeschlossen wird. In ARDUINO müssen wir lediglich die Position des benötigten Servos angeben, und die PWM wird von UNO automatisch angepasst.
Die Dinge, die wir tun müssen, um die genaue Position des Servos zu erhalten, sind:
|
Zuerst müssen wir die Frequenz des PWM-Signals einstellen und dafür sollten wir „#include
Jetzt müssen wir einen Namen für das Servo "Servo sg90sevo" definieren. Hier ist "sg90servo" der gewählte Name. Wenn wir also für Trank schreiben, werden wir diesen Namen verwenden. Diese Funktion ist nützlich, wenn wir viele Servos steuern müssen. Auf diese Weise können wir bis zu acht Servos steuern.
Jetzt teilen wir der UNO mit, wo der Signalstift des Servos angeschlossen ist oder wo er das PWM-Signal erzeugen muss. Dazu haben wir "Sg90.attach (3);", hier teilen wir der UNO mit, dass wir den Signalstift des Servos an PIN3 angeschlossen haben.
Alles was übrig bleibt ist, die Position einzustellen. Wir werden die Position des Servos mit „Sg90.write (30);“ einstellen. Mit diesem Befehl bewegt sich die Servohand um 30 Grad, das war's. Wenn wir danach die Position des Servos ändern müssen, müssen wir danach den Befehl "Sg90.write (required_position_ angle);" aufrufen. In dieser Schaltung haben wir zwei Tasten, eine Taste erhöht die Position des Servos und die andere dient zum Verringern der Position des Servos.
Das Tutorial zur Steuerung des Arduino-Servomotors wird Schritt für Schritt anhand des unten angegebenen C-Codes erläutert.