So verbinden Sie Stepper -Motor mit Arduino

So verbinden Sie Stepper -Motor mit Arduino
Steppermotoren werden üblicherweise in Geräten verwendet, die von CNC -Maschinen über analoge Uhren bis hin zu 3D -Druckern und sogar in Heizkanälen reichen. Aufgrund ihres präzisen Haltedrehmoments und ihrer hohen Genauigkeit werden Schrittmotoren meist verwendet, wenn eine hohe Präzision erforderlich ist. Bevor Sie diskutieren, wie Stepper -Motor mit Arduino gesteuert wird, finden wir heraus, welche Stepper -Motoren sind:

Was sind Steppermotoren??

Stepper -Motoren sind bürstenlose und synchrone Motoren, die seinen vollständigen Rotationszyklus in eine Reihe diskreter Schritte unterteilen können. Im Gegensatz zu anderen bürstenlosen DC -Motoren, die kontinuierlich laufen, wenn eine feste DC -Spannung auf sie aufgetragen wird, können Schrittmotoren ihre rotatorische Bewegung gemäß a in eine Reihe von Schritten unterteilen Digitalpuls.

Schrittmotortypen

Im Allgemeinen werden zwei Arten von Schrittmotoren verwendet:

  • Bipolar
  • Unipolar

Die meiste Zeit können wir zwischen diesen beiden Motoren unterscheiden, indem wir uns die Anzahl der Drähte ansehen. Ein Schrittmotor mit 6 Drähte kann als klassifiziert als Unipolar und ein 4 Drähte Motor kann als klassifiziert werden als Bipolar. Der Hauptunterschied zwischen ihnen ist der mittlere Kabeldraht, der die volle Spulenwicklung in die halbe Wicklung aufteilt.

Die Kontrolle dieser Steppermotoren erfordert Motorfahrer. Am häufigsten verwendeten Treiber umfassen ULN2003, L298N und A4988. In diesem Artikel werden wir mit einem bipolaren, von Motor kontrollierten Treiber fortfahren A4988 Kraftfahrer.

Komponenten erforderlich

Die folgenden Komponenten sind erforderlich, um den Schrittmotor mit Arduino zu steuern:

  • Arduino uno
  • USB B -Kabel
  • Schrittmotor (bipolar)
  • Jumperdrähte
  • Motorfahrer (A4988)
  • 100UF -Kondensator
  • Stromversorgung (8-35 V)
  • Brotbrett

Warum Motor Treiber verwenden?

Im Allgemeinen sind Schrittmotoren mit Arduino -Pins schwer zu kontrollieren. Sie ziehen Strom an 20 mA Aufgrund des elektromagnetischen Verhaltens von Motoren, was die Stromgrenze von Arduino -Stiften übersteigt. Ein weiteres Problem ist die Kickback -Spannung, da die Motoren aufgrund der elektromagnetischen Natur auch nach den Stromausfällen weiterhin Strom erzeugen. Dies erzeugt eine ausreichende negative Spannung, als Ihr Arduino braten kann.

Lösung dafür ist die Verwendung von Motor -Treiber -Chips oder -schildern. Motorfahrer haben Dioden, die verhindern.

A4988 Treibermodul
A4988 ist einer der besten dedizierten Motorcontroller, die verfügbar sind. Mit diesem integrierten Motorcontroller können Sie sich mit einem Mikrocontroller super einfach unterziehen, da nur zwei Stifte ausreichen, um die Geschwindigkeit und Richtung des Schrittmotors zu steuern. Die Verwendung dedizierter Motorcontroller hat viele Vorteile:

  • Motorfahrer steuerte die Schrittlogik selbst und befreit den Arduino, um andere Dinge zu tun.
  • Die Anzahl der Verbindungen wird reduziert, was bei der Kontrolle mehrerer Motoren mit einer einzelnen Platine hilft.
  • Möglich.

A4988 Pinout
Insgesamt 16 Stifte sind wie folgt in A4988 Treiber da:

Schaltplan: A4988 mit Arduino Uno und Stepper Motor anschließen

Schließen Sie den Schrittmotor mit Arduino an, indem Sie dem unten erwähnten Schaltkreis folgen:

Notiz: A4988 Motorfahrer ist mit einem Low-ESR-Keramikkondensator ausgestattet, der keine LC-Spannungsspitzen verarbeiten kann. Es ist besser, eine zu verwenden Elektrolytkondensator Zwischen den VMOT- und GND -Stiften haben wir hier einen 100UF -Kondensator nach der Stromversorgung verwendet.

A4988 Verbindungen

A4988 Verbindung
Vmot 8-35V
GND Motor GND
Slp ZURÜCKSETZEN
RST Slp
VDD 5v
GND Logik GND
STP Pin 3
Dir Pin 2
1a, 1b, 2a, 2b Schrittmotor

So setzen Sie die aktuelle Grenze für Schrittmotor ein
Bevor Sie den Arduino mit dem Schrittmotor anschließen derzeitige Begrenzung des Motorfahrers, der niedriger als der Schrittmotorstrom von Stepper.

Ein kleines Potentiometer auf dem A4988 -Treiber kann die aktuelle Grenze festlegen, wie in Bild gezeigt. Bei der Rotationsstromgrenze im Uhrzeigersinn steigt und bei der Rotationsstromgrenze gegen den Uhrzeigersinn nimmt ab.

So codieren Sie Stepper -Motor mit Arduino

Nachdem wir unsere Schaltung abgeschlossen haben und die aktuelle Grenze für Motorfahrer festgelegt haben, ist es an der Zeit, Schrittmotoren mit Hilfe von Arduino zu steuern. Laden Sie den folgenden Code mit IDE in die Arduino -Karte hoch, da dieser Code keine Standardbibliothek benötigt.

// Deklarierte Stepper -Motorstifte und Schritte pro Revolution
#define Richtung 2
#define Schritt 3
#define stepingInonerevolution 200
void setup ()
// Stifte als Ausgabe deklarieren:
PinMode (Schritt, Ausgabe);
PinMode (Richtung, Ausgabe);

void Loop ()
DigitalWrite (Richtung, hoch); // Motor dreht sich im Uhrzeigersinn
// Motor wird eine Revolution langsam abschließen
für (int i = 0; i < stepsinOneRevolution; i++)
DigitalWrite (Schritt, hoch);
DelayMicroseconds (2000);
DigitalWrite (Schritt, niedrig);
DelayMicroseconds (2000);

Verzögerung (1000);
DigitalWrite (Richtung, niedrig); // Motor dreht sich gegen den Uhrzeigersinn
// Motor wird eine Revolution schnell abschließen
für (int i = 0; i < stepsinOneRevolution; i++)
DigitalWrite (Schritt, hoch);
DelayMicrosekunden (1000);
DigitalWrite (Schritt, niedrig);
DelayMicrosekunden (1000);

Verzögerung (1000);

Code Erläuterung
Wir werden unsere Skizze beginnen, indem wir definieren Schritt Und Richtung Stifte. Hier habe ich sie mit Arduino Pins 2 und 3 verwendet. Die Konstante stufenenerevolution ist zusammen mit seinem Wert 200 definiert. Ich habe den Motor -Treiber in den vollständigen Stufenmodus 200 Schritte pro Revolution gesetzt.

#define Richtung 2
#define Schritt 3
#define stepingInonerevolution 200

Im aufstellen() Abschnitt durch Verwendung PinMode () Funktionsmotor -Steuerungsstifte werden als digitale Ausgabe eingestellt.

void setup ()
PinMode (Schritt, Ausgabe);
PinMode (Richtung, Ausgabe);

Im Schleife() Abschnitt, der Motor wird eine Revolution im Uhrzeigersinn und eine Revolution im Gegensatz dazu schnell abschließen. Das liegt daran, dass wir gesetzt haben DigitalWrite () Alternativ so hoch und niedrig und abnehmen DelayMicrosekunden () von 2 Millisekunden bis 1 Millisekunden.

Schauen Sie sich den unten gezeigten Code an, Digitalwrite (Richtung, hoch); ist eingestellt auf HOCH Wert, der Motor dreht sich im Uhrzeigersinn.

Der DelayMicrosekunden () ist auf 2 Millisekunden eingestellt, der Motor dreht sich langsam.

\
void Loop ()
DigitalWrite (Richtung, hoch); // Motor dreht sich im Uhrzeigersinn
// Motor wird eine Revolution langsam abschließen
für (int i = 0; i < stepsinOneRevolution; i++)
DigitalWrite (Schritt, hoch);
DelayMicroseconds (2000);
DigitalWrite (Schritt, niedrig);
DelayMicroseconds (2000);

In ähnlicher Weise wird sich der Motor in diesem Abschnitt aufgrund der geringeren Verzögerung in Millisekunden schneller, jedoch in entgegengesetzter Richtung (gegen den Verschlüsselungszusehen) aufgrund des niedrigen Wertes von schneller an Digitalwrite (Richtung, niedrig):

DigitalWrite (Richtung, niedrig); // Motor dreht sich gegen den Uhrzeigersinn
// Motor wird eine Revolution schnell abschließen
für (int i = 0; i < stepsinOneRevolution; i++)
DigitalWrite (Schritt, hoch);
DelayMicrosekunden (1000);
DigitalWrite (Schritt, niedrig);
DelayMicrosekunden (1000);

Motordrehzahl steuern
Die Geschwindigkeit wird durch Frequenz des bei Impulses erzeugten bei bestimmt Schritt Stift; Wir können die Häufigkeit des Impulses steuern, indem wir uns ändern:

DelayMicroseconds ();

Kürzere Verzögerung bedeutet eine höhere Frequenz und schneller der Motor läuft.

Kontroll -Spinnrichtung
Die Drehrichtung des Motors wird gesteuert, indem der Richtungsstift entweder hoch oder niedrig eingestellt wird. Wir verwenden die folgende Funktion, um dies zu tun:

DigitalWrite (Richtung, hoch); //Im Uhrzeigersinn
DigitalWrite (Richtung, niedrig); //Gegen den Uhrzeigersinn

Wie im obigen Beispiel haben wir keine Arduino -Bibliothek verwendet, aber Sie können die Schrittmotorbibliothek in Arduino IDE verwenden. Eine weitere sehr berühmte Bibliothek in IDE, die hauptsächlich für Schrittmotoren verwendet wird, ist Accelstepper.H. Sie können diese Bibliothek einfügen, indem Sie diesen Weg befolgen:

Gehen Sie zu Sketch> Bibliothek einschließen> Bibliotheken verwalten> Suche> Accelstepper> Installation:

Abschluss

Dieses Tutorial hat Ihnen gezeigt, dass Steppers -Motoren nicht so schwer zu arbeiten sind. Wir haben die Hauptaspekte der Steuerung eines Schrittmotors mit Hilfe von Arduino und Motor Triver behandelt. Wenn Sie also ein Projekt planen, bei dem Sie etwas genau positionieren müssen, dann a Schrittmotor wird eine ideale Wahl sein.