Wie bereits erwähnt, ist Arduino Due eine ARM-Controller-basierte Karte für Elektronikingenieure und Bastler. Diese DUE-Karte kann zur Herstellung von CNC-Maschinen, 3D-Druckern, Roboterarmen usw. verwendet werden. Alle diese Projekte haben eine gemeinsame Funktion: die Positionssteuerung. Jedes dieser Projekte benötigt Genauigkeit in Bezug auf ihre Position. Genaue Positionen in diesen Maschinen können von Servomotoren erreicht werden. In dieser Sitzung werden wir die Position eines Servomotors mit Arduino Due steuern. Wir haben bereits die Servomotorschnittstelle mit Arduino Uno und die Servomotorschnittstelle mit dem 8051-Mikrocontroller behandelt.
Servomotor:
Servomotoren sind bekannt für ihre genaue Wellenbewegung oder Position. 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 werden auch in einigen Druckern und Faxgeräten verwendet.
Servomotoren sind in verschiedenen Formen und Größen erhältlich. In diesem Tutorial wird der SG90-Servomotor verwendet. SG90 ist ein 180-Grad-Servomotor. Mit diesem Servo können wir also die Achse von 0 bis 180 Grad positionieren.
Ein Servomotor besteht hauptsächlich aus drei Drähten, einer für positive Spannung, einer für Masse und der letzte für die Positionseinstellung. Das ROTE Kabel ist an die Stromversorgung angeschlossen, das braune Kabel ist an Masse angeschlossen und das GELBE Kabel (oder WEISS) ist an das Signal angeschlossen.
Ein Servomotor ist eine Kombination aus Gleichstrommotor, Lageregelungssystem und Zahnrädern. Im Servo haben wir ein Steuersystem, das das PWM-Signal vom Signalstift nimmt. Es decodiert das Signal und erhält das Tastverhältnis daraus. Danach wird das Verhältnis mit den vordefinierten Positionswerten verglichen. Wenn es einen Unterschied in den Werten gibt, wird die Position des Servos entsprechend angepasst. Die Achsposition des Servomotors basiert also auf dem Tastverhältnis des PWM-Signals zum SIGNAL-Pin.
Die Frequenz des PWM- Signals (Pulse Width Modulated) kann je nach Typ des Servomotors variieren. Wichtig hierbei ist das PFLICHTVERHÄLTNIS des PWM-Signals. Überprüfen Sie dies für PWM mit Arduino Due. In diesem Fall müssen wir uns jedoch nicht einmal um die Auswahl des Duty Ratio kümmern. In Arduino haben wir eine spezielle Funktion; Beim Aufrufen können wir die Position des Servos einstellen, indem wir einfach den Winkel angeben. Wir werden darüber im Arbeitsabschnitt unten sprechen.
Bevor Sie den Servomotor an Arduino Due anschließen, können Sie Ihr Servo mit Hilfe dieser Servomotor-Testschaltung testen. Überprüfen Sie diese Projekte auch, um Servo per Flex-Sensor oder Force-Sensor zu steuern.
Komponenten:
Hardware: Arduino Due, Stromversorgung (5 V), Servomotor.
Software: Arduino jeden Abend, laden Sie es von untenstehendem Link herunter (https://www.arduino.cc/en/Main/Software)
Weitere Informationen zum Herunterladen und Installieren dieser Software finden Sie im ersten Tutorial Erste Schritte mit Arduino Due.
Schaltplan und Funktionserklärung:
Wie bereits in ARDUINO erwähnt, haben wir vordefinierte Bibliotheken, die die Frequenzen und Tastverhältnisse entsprechend einstellen, sobald die Header-Datei aufgerufen oder enthalten ist. In ARDUINO müssen wir lediglich die Position des benötigten Servos angeben, und der DUE erzeugt ein geeignetes PWM-Signal für das Servo. Die Dinge, die wir tun müssen, um die genaue Position des Servos zu erhalten, sind:
#einschließen
Servo Myservo;
myservo.attach (servo_signal_pin_attached_to);
myservo.write (benötigter_Positionswinkel);
Die Header-Datei „#include
Zweitens muss ein Name für das Servo mit „Servo myservo“ ausgewählt werden. Hier ist myservo der gewählte Name. Wenn wir also für die Position schreiben, werden wir diesen Namen verwenden. Diese Funktion ist nützlich, wenn wir viele Servos steuern müssen. Damit können wir bis zu 12 Servos steuern.
Beim Arduino Due mit 12 PWM-Kanälen müssen wir DUE mitteilen, wo der Signalstift des Servos angeschlossen ist oder wo er das PWM-Signal erzeugen muss. Dazu haben wir "myservo.attach (2)"; Hier teilen wir dem DUE mit, dass wir den Signalstift des Servos an PIN2 angeschlossen haben.
Alles was übrig bleibt ist, die Position einzustellen, wir werden die Position des Servos mit " myservo.write (45) " einstellen; Durch diesen Befehl bewegt sich die Servohand um 45 Grad. Wenn wir '45' in '175' ändern, neigt sich die Servoachse zu 175 Grad und bleibt dort. Wenn wir danach die Position des Servos ändern müssen, müssen wir nur den Befehl " myservo.write (required_position_angle)" aufrufen. .
Im Programm werden wir die Winkel mithilfe von Schleifen erhöhen und verringern. Das Servo schwenkt also von 0 auf 180, dann von 180 auf 0 und so weiter. Die Servomotorsteuerung von Arduino Due wird am besten Schritt für Schritt anhand des C-Codes weiter unten erläutert.