Arduino-Bibliothek für 28BYJ-48-Schrittmotor und ULN2003-Treiber: 3 Schritte

Arduino-Bibliothek für 28BYJ-48-Schrittmotor und ULN2003-Treiber: 3 Schritte

Inhaltsverzeichnis:

Anonim

Der 28BYJ-48-Schrittmotor mit dem ULN2003-Treiber scheint nun eine recht alltägliche Konfiguration zu sein. Der Motor und der Fahrer sind leicht verfügbar und billig. Die Standard-Arduino-Schrittmotorbibliothek funktioniert jedoch mit dieser Konfiguration nicht! Anscheinend hat dies etwas mit der für die Drehung des 28BYJ-48 erforderlichen Sequenz zu tun.

Diese Anleitung zeigt Ihnen, wie Sie eine einfache Bibliothek schreiben, die das Leben für die zukünftige Verwendung des 28BYJ-48 vereinfacht. Ich habe ein paar mögliche Lösungen gesehen (sogar immer wieder die Pulssequenz ausschreiben), aber ich war nicht zufrieden, also habe ich beschlossen, meine eigene zu schreiben.

Wir gehen davon aus, dass Sie Grundkenntnisse in C ++ und der Schrittmotortheorie haben.

Den Code und eine Implementierung finden Sie im EngyFun-Blog unter:

http: //engyfun.blogspot.com.au/2015/02/here-is-sou …

Zubehör:

Schritt 1: StepperMotor.h

Beginnen wir mit dem Schreiben der StepperMotor-Klasse.

Erstellen Sie eine Datei mit dem Namen StepperMotor.h und kopieren Sie den Code in das Bild.

Wenn Sie C ++ verstehen, spricht die Klassendefinition für sich.

Schritt 2: StepperMotor.cpp

Nun schreiben wir die Klassenschnittstelle.

Erstellen Sie eine Datei mit dem Namen StepperMotor.cpp und kopieren Sie den Code in die Bilder.

Schauen wir uns den Konstruktor in Zeile 4 an. Zunächst weisen wir die vom Benutzer ausgewählten Pins dem Eingangs-Pins-Array in den Zeilen 6 bis 9 zu. Dies erleichtert den Zugriff auf die Pin-Nummern innerhalb des Ansteuerungsalgorithmus.

In Zeile 12 durchlaufen wir das Eingangs-Pin-Array und versetzen jeden Pin in den OUTPUT-Modus.

In Zeile 15 setzen wir die Schrittdauer auf 50 ms.

In Zeile 18 haben wir den Schrittdauersetzer. Das ist selbsterklärend.

Betrachten wir nun die Schrittmethode. Auf diese Weise kann der Schrittmotor die Anzahl der Schritte einstellen, die an die Methode übergeben wurden.

In Zeile 28 definieren wir die Rotationssequenz mit einem 2D-Array. Die Zeilen repräsentieren einen Schritt und die Spalten repräsentieren die Ausgangsstifte.

In Zeile 37 berechnen wir den Faktor, der je nach Vorzeichen der übergebenen Anzahl von Schritten +1 oder -1 beträgt. Dieser Wert wird im Algorithmus benötigt, um die Iterationsrichtung durch das Sequenzarray zu lenken, d. H. Um die Drehrichtung zu ändern.

In Zeile 38 machen wir noOfSteps positiv, was für das Design erforderlich ist.

In Zeile 44 beginnen wir eine Schleife, die für jeden Start einer Rotationssequenz ausgeführt wird, d. H. Zu Beginn aller 8 Schritte.

In Zeile 45 beginnen wir eine weitere Schleife, die die Zeilen des Sequenzarrays durchläuft.

In Zeile 46 verzögern wir, wie es die Dauer angibt.

In Zeile 47 durchlaufen wir die PIN-Nummern.

In Zeile 48 schreiben wir das digitale Signal an die aktuelle Pin-Nummer.

Wenn der Faktor negativ ist, wird auf die Zeilen des Sequenz-Arrays in der entgegengesetzten Richtung auf Zeile 48 zugegriffen, wenn wir auf die Pins schreiben. 8 wird von der Anzahl der Zeilen abgezogen … also greifen wir von unten nach oben zu.

Schritt 3: Zugriff auf die Bibliothek über die Arduino IDE

Jetzt müssen wir diese Dateien nur noch zum Bibliotheksverzeichnis der arduino IDE hinzufügen. Auf diese Weise können wir diese Bibliothek zur Verwendung in die IDE importieren.

Wechseln Sie in das folgende Verzeichnis:

C: Programme (x86) Arduino Bibliotheken

und erstellen Sie dann einen Ordner mit dem Namen StepperMotor.

Legen Sie nun die.h- und.cpp-Dateien in den erstellten Ordner.

Sie können die Bibliothek jetzt aus der IDE importieren. (Skizze> Bibliothek importieren …> StepperMotor)

2 Leute haben dieses Projekt gemacht!

  • johnnyfrx hat es geschafft!

  • brdavid hat es geschafft!

Hast du dieses Projekt gemacht? Teile es mit uns!

Empfehlungen

  • SKY CAM ist eine Lösung für Luftbildkameras

  • Arduino Air Bonsai Levitation

  • Klasse Internet der Dinge

  • Holzbearbeitungswettbewerb

  • Fandom Contest

  • Arduino-Wettbewerb 2019

8 Diskussionen

0

jplaiss

Vor 3 Jahren

… Arduino ULNStepper ULNStepper.ino: 2: 26: Schwerwiegender Fehler: StepperMotor.h: Keine solche Datei oder kein solches Verzeichnis

#umfassen

Kommt immer wieder hoch.

2 Antworten 0

DikaM2 jplaiss

Antworten vor 3 Monaten

Ich denke, die Bibliothek war nicht im Verzeichnis vorhanden

0

JeremieL8 jplaiss

Antworten vor 2 Jahren

hier gilt das gleiche..

0

Tahirulhaq

vor 1 Jahr

Tolle Arbeit !!!

0

Drumpeter

vor 2 Jahren

Funktioniert super! Gibt es eine Möglichkeit, es schneller als 1 Schritt pro Mikrosekunde drehen zu lassen? Wenn ich das richtig verstehe, versteht die Bibliothek nur ganze Zahlen. Wie kann ich das ändern?

0

jplaiss

Vor 3 Jahren

Mir fehlt hier etwas.

Was soll ich verwenden, um die.h- und.cpp-Dateien zu erstellen?

Wie sollte ich dies bündeln, um eine Bibliothek zu erstellen, die in der IDE installiert wird?

Ich habe bisher zwei Notepad-Dokumente erstellt, die mit den gleichen Suffixen gekennzeichnet sind wie alle anderen Bibliotheken, die ich besitze. Ich habe versucht, diese Dokumente in eine Hauptdatei einzufügen, sie in eine andere Datei innerhalb der Hauptdatei zu platzieren, sie auf derselben Ebene wie den Testcode zu haben und in einigen Iterationen Bits davon zu jonglieren.

Bitte helfen Sie.

0

funktionelles Design

Vor 3 Jahren

Sehr nette Information! Ich habe endlich diesen Schritt zum Laufen gebracht. Ich möchte Tasten verwenden, um die Geschwindigkeit / U / min zu steuern. Welcher Wert muss geändert werden, damit es schneller geht? Ich kann es langsamer machen, indem ich den Wert in motor.setStepDuration (1) ändere, aber was ist mit schneller?

0

Billdwp

Vor 3 Jahren auf Schritt 2

Genial, exzellent, hilfsbereit; Danke dir!