- Schrittmotoren:
- Berechnung der Schritte pro Umdrehung für Schrittmotor:
- Warum brauchen wir so Treibermodule für Schrittmotoren?
- Schaltplan für rotierenden Schrittmotor mit Potentiometer:
- Code für Arduino Board:
- Arbeiten:
Schrittmotoren nehmen zunehmend ihre Position in der Welt der Elektronik ein. Angefangen von einer normalen Überwachungskamera bis hin zu komplizierten CNC-Maschinen / Robotern werden diese Schrittmotoren überall als Aktuatoren eingesetzt, da sie eine genaue Steuerung ermöglichen. In diesem Tutorial werden wir über den am häufigsten / billig verfügbar Schrittmotor lernen 28-BYJ48 und wie es als Schnittstelle mit Arduino mit ULN2003 Schrittmodul.
Im letzten Projekt haben wir einfach einen Schrittmotor mit Arduino verbunden, bei dem Sie den Schrittmotor drehen können, indem Sie den Drehwinkel in Serial Monitor of Arduino eingeben. Hier in diesem Projekt drehen wir den Schrittmotor mit Potentiometer und Arduino. Wenn Sie beispielsweise das Potentiometer im Uhrzeigersinn drehen, dreht sich der Stepper im Uhrzeigersinn, und wenn Sie das Potentiometer gegen den Uhrzeigersinn drehen, dreht es sich gegen den Uhrzeigersinn.
Schrittmotoren:
Werfen wir einen Blick auf diesen 28-BYJ48-Schrittmotor.
Okay, im Gegensatz zu einem normalen Gleichstrommotor hat dieser fünf Drähte in allen ausgefallenen Farben und warum ist das so? Um dies zu verstehen, sollten wir zuerst wissen, wie ein Stepper funktioniert und was seine Spezialität ist. Erstens drehen sich Schrittmotoren nicht, sie treten und werden daher auch als Schrittmotoren bezeichnet. Das heißt, sie bewegen sich jeweils nur einen Schritt. Diese Motoren haben eine Folge von Spulen, und diese Spulen müssen auf eine bestimmte Weise erregt werden, damit sich der Motor dreht. Wenn jede Spule erregt wird, macht der Motor einen Schritt und eine Folge von Erregung bewirkt, dass der Motor kontinuierliche Schritte unternimmt, wodurch er sich dreht. Schauen wir uns die im Motor vorhandenen Spulen an, um genau zu wissen, woher diese Drähte stammen.
Wie Sie sehen können, verfügt der Motor über eine unipolare 5-adrige Spulenanordnung. Es gibt vier Spulen, die in einer bestimmten Reihenfolge erregt werden müssen. Die roten Drähte werden mit +5 V versorgt und die verbleibenden vier Drähte werden zur Auslösung der jeweiligen Spule auf Masse gezogen. Wir verwenden einen Mikrocontroller wie Arduino, der diese Spulen in einer bestimmten Reihenfolge erregt und den Motor die erforderliche Anzahl von Schritten ausführen lässt.
Warum heißt dieser Motor nun 28-BYJ48 ? Ernsthaft!!! Ich weiß es nicht. Es gibt keinen technischen Grund für diesen Motor, so benannt zu werden. Vielleicht sollten wir viel tiefer eintauchen. Schauen wir uns einige wichtige technische Daten an, die aus dem Datenblatt dieses Motors im Bild unten stammen.
Das ist ein Kopf voller Informationen, aber wir müssen uns einige wichtige ansehen, um zu wissen, welchen Steppertyp wir verwenden, damit wir ihn effizient programmieren können. Zuerst wissen wir, dass es sich um einen 5-V-Schrittmotor handelt, da wir das rote Kabel mit 5 V versorgen. Dann wissen wir auch, dass es sich um einen Vierphasen-Schrittmotor handelt, da er vier Spulen enthält. Das Übersetzungsverhältnis beträgt nun 1:64. Dies bedeutet, dass die Welle, die Sie außen sehen, nur dann eine vollständige Umdrehung ausführt, wenn sich der Motor innen 64 Mal dreht. Dies liegt an den Zahnrädern, die zwischen Motor und Abtriebswelle angeschlossen sind. Diese Zahnräder tragen zur Erhöhung des Drehmoments bei.
Ein weiteres wichtiges Datenelement ist der Schrittwinkel: 5,625 ° / 64. Dies bedeutet, dass sich der Motor, wenn er in einer 8-Schritt-Sequenz arbeitet, für jeden Schritt um 5,625 Grad bewegt und 64 Schritte (5,625 * 64 = 360) benötigt, um eine volle Umdrehung durchzuführen.
Berechnung der Schritte pro Umdrehung für Schrittmotor:
Es ist wichtig zu wissen, wie die Schritte pro Umdrehung für Ihren Schrittmotor berechnet werden, da Sie ihn nur dann effektiv programmieren können.
In Arduino werden wir den Motor in 4-Schritt-Reihenfolge betreiben, sodass der Schrittwinkel 11,25 ° beträgt, da er 5,625 ° (im Datenblatt angegeben) für 8-Schritt-Sequenz 11,25 ° (5,625 * 2 = 11,25) beträgt.
Schritte pro Umdrehung = 360 / Schrittwinkel
Hier ist 360 / 11,25 = 32 Schritte pro Umdrehung.
Warum brauchen wir so Treibermodule für Schrittmotoren?
Die meisten Schrittmotoren arbeiten nur mit Hilfe eines Treibermoduls. Dies liegt daran, dass das Controller-Modul (in unserem Fall Arduino) nicht genügend Strom von seinen E / A-Pins liefern kann, damit der Motor funktioniert. Wir werden also ein externes Modul wie das ULN2003- Modul als Schrittmotortreiber verwenden. Es gibt viele Arten von Treibermodulen, und die Bewertung eines Moduls ändert sich je nach verwendetem Motortyp. Das Hauptprinzip für alle Treibermodule besteht darin, genügend Strom zu liefern, damit der Motor funktioniert.
Schaltplan für rotierenden Schrittmotor mit Potentiometer:
Das Schaltbild für den steuernden Schrittmotor mit Potentiometer und Arduino ist oben dargestellt. Wir haben den Schrittmotor 28BYJ-48 und das Treibermodul ULN2003 verwendet. Um die vier Spulen des Schrittmotors mit Strom zu versorgen, verwenden wir die digitalen Pins 8, 9, 10 und 11. Das Treibermodul wird über den 5-V-Pin der Arduino-Platine mit Strom versorgt. Ein Potentiometer ist an A0 angeschlossen, basierend auf dessen Werten wir den Schrittmotor drehen.
Schalten Sie den Treiber jedoch mit einer externen Stromversorgung ein, wenn Sie eine Last an den Steppenmotor anschließen. Da ich den Motor nur zu Demonstrationszwecken benutze, habe ich die + 5V-Schiene des Arduino-Boards verwendet. Denken Sie auch daran, die Erdung des Arduino mit der Erdung des Treibermoduls zu verbinden.
Code für Arduino Board:
Bevor wir mit dem Programmieren mit unserem Arduino beginnen, lassen Sie uns verstehen, was eigentlich im Programm passieren sollte. Wie bereits erwähnt, verwenden wir die 4-Schritt-Sequenzmethode, sodass wir vier Schritte ausführen müssen, um eine vollständige Umdrehung durchzuführen.
Schritt |
Pin aktiviert |
Spulen erregt |
Schritt 1 |
8 und 9 |
A und B |
Schritt 2 |
9 und 10 |
B und C. |
Schritt 3 |
10 und 11 |
C und D. |
Schritt 4 |
11 und 8 |
D und A. |
Das Treibermodul verfügt über vier LEDs, mit denen wir überprüfen können, welche Spule zu einem bestimmten Zeitpunkt mit Strom versorgt wird. Das vollständige Demonstrationsvideo finden Sie am Ende dieses Tutorials.
In diesem Tutorial werden wir den Arduino so programmieren, dass wir das an Pin A0 angeschlossene Potentiometer drehen und die Richtung des Schrittmotors steuern können. Das vollständige Programm finden Sie am Ende des Tutorials. Einige wichtige Zeilen werden unten erläutert.
Die Anzahl der Schritte pro Umdrehung für unseren Schrittmotor wurde mit 32 berechnet; daher geben wir das wie in der Zeile unten gezeigt ein
# SCHRITTE definieren 32
Als nächstes müssen Sie Instanzen erstellen, in denen wir die Pins angeben, an die wir den Schrittmotor angeschlossen haben.
Schrittschritt (SCHRITTE, 8, 10, 9, 11);
Hinweis: Die Pin-Nummer ist absichtlich als 8,10,9,11 ungeordnet. Sie müssen dem gleichen Muster folgen, auch wenn Sie die Stifte wechseln, an die Ihr Motor angeschlossen ist.
Da wir die Arduino-Schrittbibliothek verwenden, können wir die Drehzahl des Motors über die folgende Zeile einstellen. Die Drehzahl kann bei 28-BYJ48-Schrittmotoren zwischen 0 und 200 liegen.
stepper.setSpeed (200);
Um den Motor einen Schritt im Uhrzeigersinn zu bewegen, können wir die folgende Zeile verwenden.
Schrittschritt (1);
Um den Motor einen Schritt gegen den Uhrzeigersinn zu bewegen, können wir die folgende Zeile verwenden.
stepper.step (-1);
In unserem Programm lesen wir den Wert des analogen Pins A0 und vergleichen ihn mit dem vorherigen Wert (Pval). Wenn es zugenommen hat, bewegen wir uns 5 Schritte im Uhrzeigersinn und wenn es verringert ist, bewegen wir uns 5 Schritte gegen den Uhrzeigersinn.
potVal = map (analogRead (A0), 0,1024,0,500); if (potVal> Pval) stepper.step (5); if (potVal
Arbeiten:
Sobald die Verbindung hergestellt ist, sollte die Hardware in der folgenden Abbildung ungefähr so aussehen.
Laden Sie nun das folgende Programm in Ihr Arduino UNO hoch und öffnen Sie den seriellen Monitor. Wie bereits erwähnt, müssen Sie das Potentiometer drehen, um die Drehung des Schrittmotors zu steuern. Durch Drehen im Uhrzeigersinn wird der Schrittmotor im Uhrzeigersinn gedreht und umgekehrt.
Ich hoffe, Sie haben das Projekt verstanden und es genossen, es zu bauen. Die vollständige Arbeitsweise des Projekts ist im folgenden Video dargestellt. Wenn Sie irgendwelche Zweifel haben, posten Sie sie im Kommentarbereich unten oder in unseren Foren.