So erstellen Sie kreisenden Bewegungen mit dem Arduino

Sie können mit dem Arduino auf einem Servomotor enden Bewegungen erstellen. Ein Servomotor Sweeps von 0 # 186- bis 179 # 186- und dann wieder zurück, in ähnlicher Weise wie die Bewegung eines alten Drehtakt.

Die Sweep-Skizze

Du brauchst:

  • Ein Arduino Uno

  • Ein Servo

  • Jump Drähte

Die Verdrahtung für einen Servo ist extrem einfach, weil es mit einem ordentlichen kommt, drei-polige Buchse. Um es zu Ihrem Arduino verbinden, einfach springen Drähte zwischen den Arduino Pins verwenden und die Servoanschlüsse direkt oder einen Satz von Kopfstifte verwenden, um die Buchse mit Ihrem Steckbrett. Der Servo hat einen Satz von drei Steckdosen mit Drähten mit ihnen verbunden sind, in der Regel rot, schwarz und weiß.

bild0.jpg

Alle Berechnungen und Messungen, den Motor zu bewegen, sind auf der Schaltungsanordnung innerhalb des Servo selbst durchgeführt, so alles, was benötigt wird, ist Leistung und ein Signal von dem Arduino. Rot ist auf dem Arduino zu 5V verbunden, um den Motor und die Schaltung im Inneren it- schwarz an die Macht zu GND verbunden, die Servo- und weiß ist mit Masse an Pin 9 die Servos Bewegung zu steuern.

Die Farben dieser Drähte können variieren, so dass immer das Datenblatt überprüfen oder jede verfügbare Dokumentation für Ihren spezifischen Motor. Andere übliche Farben sind rot (5 V), braun (GND) und Gelb (Signal).

image1.jpg

Füllen Sie die Schaltung, wie beschrieben und öffnen Sie die Sweep-Skizze durch Datei-Beispiele-Servo-Sweep wählen. Die Sweep Skizze ist wie folgt:

// Sweep // von BARRAGAN // Dieses Beispiel-Code ist in der Public Domain. # Include lt;Servo.h>Servo myservo- // Servoobjekt erstellen, um eine Servo steuern // maximal acht Servo-Objekte erstellt werden könnenint pos = 0- // Variable den Servo positionvoid Setup zu speichern () {myservo.anfügen(9) - // legt den Servo auf Pin 9 auf das Objekt Servo} void loop () {für(Pos = 0- pos lt; 180- pos + = 1) // geht von 0 Grad bis 180 Grad {// in Schritten von 1 degreemyservo.schreiben(Pos) - // Servo sagen zu Position gehen in // Variable 'pos'verzögern(15) - // wartet 15ms für den Servo zu erreichen // die Position}für(Pos = 180- pos> = 1 Mög- = 1) // geht von 180 Grad auf 0 Grad {myservo.schreiben(Pos) - // Servo sagen zu Position gehen in // Variable 'pos'verzögern(15) - // wartet 15ms für den Servo zu erreichen // die Position}}

Nachdem Sie die Skizze gefunden haben, drücken Sie die Compile, um den Code zu überprüfen. Der Compiler sollte, wie immer, markieren Sie alle Grammatikfehler in rot im Nachrichtenbereich, wenn sie entdeckt werden.

Wenn die Skizze richtig kompiliert, klicken Sie auf Hochladen, um die Skizze zu dem Board hochzuladen. Wenn die Skizze fertig hochgeladen habe, sollte Ihr Motor starten rückwärts und vorwärts durch 180 Grad drehen, einen Tanz auf dem Tisch zu tun.

Wenn nichts geschieht, sollten Sie noch einmal überprüfen Sie Ihre Verkabelung:

  • Stellen Sie sicher, dass Sie mit Pin 9 für die Daten (weiß / gelb) Linie.

  • Überprüfen Sie, ob Sie die anderen Servo Drähte mit den richtigen Pins angeschlossen haben.

Der Sweep Skizze Zusammenbruch

Zu Beginn dieser Skizze wird eine Bibliothek enthalten. Dies ist die Servo-Bibliothek und wird Ihnen helfen, mit sehr wenig komplexen Code eine Menge aus Ihrem Servo zu bekommen.

#einschließen lt;Servo.h>

Die nächste Zeile macht ein Servo-Objekt. Die Bibliothek weiß, wie Servos zu benutzen, aber braucht man jede einen Namen zu geben, so dass es zu jedem Servo sprechen kann. In diesem Fall wird der neue Servo-Objekt aufgerufen myservo.

Verwenden Sie einen Namen zu benennen Sie die Variablen- ähnlich ist, das heißt, sie können einen beliebigen Namen sein, solange sie im gesamten Code konsistent sind und Sie keine Namen verwenden, die von der Arduino Sprache reserviert sind, wie zum Beispiel int oder verzögern.

Servo myservo- // Objekt Servo erstellen, um einen Servo- // maximal acht Servo-Objekte erstellt werden können

Die letzte Zeile in den Erklärungen ist eine Variable, die die Position des Servo zu speichern.

int pos = 0- // Variable die Servoposition zu speichern,

Im Setup-Programm zu setzen das einzige Element ist die PIN-Nummer des Arduino Pin, der mit dem Servo kommuniziert. In diesem Fall sind Sie mit Pin 9, aber es könnte jeder PWM-Pin sein.

Leere setup () {myservo.anfügen(9) - // legt den Servo auf Pin 9 auf das Objekt Servo}

Die Schleife führt zwei einfache Aktionen, und beide sind für Schleifen. Der Erste für Schleife steigt allmählich die pos Variable von 0 bis 180. Wegen der Bibliothek können Sie die Werte in Grad anstatt der normalen 0 bis 255 verwendet für die PWM-Steuerung schreiben. Mit jeder Schleife wird der Wert um 1 erhöht, und zu dem Servo gesendet eine Funktion spezifisch auf die Servo Bibliothek, .schreiben().

Nachdem die Schleife den Wert aktualisiert, tritt eine kurze Verzögerung von 15 Millisekunden, während die Servo seine neue Position erreicht. Im Gegensatz zu anderen Ausgängen, nachdem ein Servo aktualisiert wird es an seine neue Position zu bewegen beginnt statt der Notwendigkeit ständig gesagt werden.

Leere Schleife () {für(Pos = 0- pos lt; 180- pos + = 1) // geht von 0 Grad bis 180 Grad {// in Schritten von 1 degreemyservo.schreiben(Pos) - // Servo sagen zu Position gehen in // Variable 'pos'verzögern(15) - // wartet 15ms für den Servo zu erreichen // die Position}

Der Zweite für Schleife macht dasselbe in der entgegengesetzten Richtung, das Servo in seine Startposition zurückkehrt.

 für(Pos = 180- pos> = 1 Mög- = 1) // geht von 180 Grad auf 0 Grad {myservo.schreiben(Pos) - // Servo sagen zu Position gehen in // Variable 'pos'verzögern(15) - // wartet 15ms für den Servo zu erreichen // die Position}}

Dies ist die einfachste Servo Beispiel, und es ist eine gute Idee zu testen, ob die Servo richtig funktioniert.

Menü