ESP8266 - 28BYJ-48 Schrittmotor ULN2003-Treiber

Dieses Tutorial zeigt Ihnen, wie Sie den ESP8266 verwenden, um den 28BYJ-48-Schrittmotor mit dem ULN2003-Treiber zu steuern. Im Detail werden wir lernen:

ESP8266 NodeMCU ULN2003 28BYJ-48 Schrittmotor

Erforderliche Hardware

1×ESP8266 NodeMCU
1×USB-Kabel Typ-A zu Typ-C (für USB-A PC)
1×USB-Kabel Typ-C zu Typ-C (für USB-C PC)
1×28BYJ-48 stepper motor + ULN2003 Driver Module
1×5V Netzteil
1×DC-Stromanschluss
1×Verbindungskabel
1×(Empfohlen) Schraubklemmen-Erweiterungsboard für ESP8266
1×(Empfohlen) Stromverteiler für ESP8266 Typ-C

Oder Sie können die folgenden Kits kaufen:

1×DIYables Sensor-Kit (30 Sensoren/Displays)
1×DIYables Sensor-Kit (18 Sensoren/Displays)
Offenlegung: Einige der in diesem Abschnitt bereitgestellten Links sind Amazon-Affiliate-Links. Wir können eine Provision für Käufe erhalten, die über diese Links getätigt werden, ohne zusätzliche Kosten für Sie. Wir schätzen Ihre Unterstützung.

Über den 28BYJ-48-Schrittmotor

Schrittmotoren sind ideal für die Positionsregelung. Sie zerlegen eine vollständige Umdrehung in eine Folge gleicher Schritte. Diese Motoren finden Anwendung in einer Vielzahl von Geräten, darunter Drucker, 3D-Drucker, CNC-Maschinen und in der industriellen Automatisierung.

Eine der kostengünstigsten Methoden, um Kenntnisse über Schrittmotoren zu erlangen, besteht darin, 28BYJ-48-Schrittmotoren zu verwenden. Diese werden in der Regel mit einer ULN2003-basierten Treiberplatine geliefert, was ihre Nutzung erleichtert.

Wie im Datenblatt angegeben, arbeitet der 28BYJ-48-Motor im Vollschrittbetrieb, wobei jeder Schritt einer 11,25°-Drehung entspricht. Daher gibt es 32 Schritte pro Umdrehung (360°/11,25° = 32).

Darüber hinaus verfügt der Motor über ein 1/64-Untersetzungsgetriebe. Das ergibt 32 × 64 = 2048 Schritte. Jeder Schritt entspricht 360°/2048 = 0,1758°.

Fazit: Wenn der Motor im Vollschrittmodus betrieben wird, benötigt er 2048 Schritte, um eine Umdrehung abzuschließen.

Der 28BYJ-48-Schrittmotor mit ULN2003-Treiber-Pinbelegung

Der 28BYJ-48-Schrittmotor hat fünf Anschlüsse. Wir müssen uns nicht mit den Einzelheiten dieser Anschlüsse beschäftigen. Alles, was wir tun müssen, ist, ihn an den ULN2003-Motortreiber-Stecker anzuschließen.

28BYJ-48-Schrittmotor

Über ULN2003-Schrittmotor-Treiber-Modul

Der ULN2003 ist ein weit verbreitetes Motortreiber-Modul für Schrittmotoren.

  • Es verfügt über vier LEDs, die die Aktivität von vier Steuereingangslinien anzeigen, was einen beeindruckenden Effekt erzeugt, wenn der Motor in Bewegung ist.
  • Zusätzlich enthält es einen Ein/Aus-Jumper, um die Stromversorgung des Schrittmotors zu trennen.

ULN2003 Pinbelegung

ULN2003 Pinbelegung des Schrittmotor-Treibers

Das ULN2003-Modul hat 6 Pins und einen weiblichen Stecker:

  • IN1: Dieser Pin wird verwendet, um den Motor anzusteuern, und sollte mit einem Ausgangspin am ESP8266 verbunden werden.
  • IN2: Dieser Pin wird verwendet, um den Motor anzusteuern, und sollte mit einem Ausgangspin am ESP8266 verbunden werden.
  • IN3: Dieser Pin wird verwendet, um den Motor anzusteuern, und sollte mit einem Ausgangspin am ESP8266 verbunden werden.
  • IN4: Dieser Pin wird verwendet, um den Motor anzusteuern, und sollte mit einem Ausgangspin am ESP8266 verbunden werden.
  • GND: Dies ist ein gemeinsamer Masse-Pin und muss sowohl mit dem GND des ESP8266 als auch mit dem GND des externen Netzteils verbunden werden.
  • VDD: Dieser Pin versorgt den Motor mit Strom und sollte mit dem externen Netzteil verbunden werden.
  • Motoranschluss: Hier wird der Motor eingesteckt.

※ Notiz:

  • Die Spannung des externen Netzteils muss der Spannung des Schrittmotors entsprechen. Zum Beispiel, wenn ein Schrittmotor mit 12 V Gleichspannung betrieben wird, sollte ein 12-V-Netzteil verwendet werden. Im Fall eines 28BYJ-48-Schrittmotors, der mit 5 V Gleichspannung arbeitet, sollte ein 5-V-Netzteil verwendet werden.
  • Wenn der Schrittmotor jedoch eine 5-V-Stromversorgung benötigt, sollte der VDD-Pin NICHT mit dem 5-V-Pin des ESP8266 verbunden werden. Stattdessen sollte er mit einer externen 5-V-Stromversorgung verbunden werden, da der Schrittmotor zu viel Strom zieht.

Verdrahtungsdiagramm

ESP8266 NodeMCU-Schrittmotor ULN2003 Treiber-Schaltplan

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.

Weitere Informationen finden Sie unter ESP8266-Pinbelegung und wie man ESP8266 und andere Komponenten mit Strom versorgt.

Es ist nicht notwendig, die Farbe der Drähte des Schrittmotors zu berücksichtigen. Wir müssen lediglich den männlichen Stecker des 28BYJ-48-Schrittmotors in den weiblichen Stecker des ULN2003-Treibers stecken.

So programmiert man, um einen Schrittmotor zu steuern

Es gibt drei Möglichkeiten, einen Schrittmotor zu steuern:

  • Vollschritt
  • Halbschritt
  • Mikroschritt

Für grundlegende Anwendungen können wir die Vollschritt-Methode verwenden. Die Einzelheiten der drei Methoden werden im späteren Teil dieses Tutorials erläutert. Das Programmieren dieser Methoden kann komplex sein. Glücklicherweise gibt es viele Bibliotheken, die die Arbeit bereits für uns erledigt haben, sodass wir lediglich die Bibliothek nutzen müssen.

Die Arduino-IDE enthält eine Stepper-Bibliothek. Wir empfehlen jedoch nicht, diese Bibliothek aus den folgenden Gründen zu verwenden:

  • Die Bibliothek blockiert, was bedeutet, dass sie den ESP8266 daran hindert, während der Steuerung des Schrittmotors andere Aufgaben auszuführen.
  • Sie bietet nicht genügend Funktionen.

Stattdessen empfehlen wir Ihnen, die AccelStepper Bibliothek zu verwenden. Diese Bibliothek bietet:

  • Beschleunigung
  • Verzögerung
  • Vollschritt- und Halbschrittbetrieb
  • Die Fähigkeit, mehrere Schrittmotoren unabhängig voneinander zu steuern
  • Nachteil: Unterstützt keinen Mikroschrittbetrieb.

ESP8266-Code

/* * Dieser ESP8266 NodeMCU Code wurde von newbiely.de entwickelt * Dieser ESP8266 NodeMCU Code wird der Öffentlichkeit ohne jegliche Einschränkung zur Verfügung gestellt. * Für vollständige Anleitungen und Schaltpläne besuchen Sie bitte: * https://newbiely.de/tutorials/esp8266/esp8266-28byj-48-stepper-motor-uln2003-driver */ // Include the AccelStepper Library #include <AccelStepper.h> // define step constant #define FULLSTEP 4 #define STEP_PER_REVOLUTION 2048 // this value is from datasheet // The ESP8266 pins entered in sequence IN1-IN3-IN2-IN4 for proper step sequence AccelStepper stepper(FULLSTEP, D1, D5, D2, D6); void setup() { Serial.begin(9600); stepper.setMaxSpeed(1000.0); // set the maximum speed stepper.setAcceleration(50.0); // set acceleration stepper.setSpeed(200); // set initial speed stepper.setCurrentPosition(0); // set position stepper.moveTo(STEP_PER_REVOLUTION); // set target position: 64 steps <=> one revolution } void loop() { // change direction once the motor reaches target position if (stepper.distanceToGo() == 0) stepper.moveTo(-stepper.currentPosition()); stepper.run(); // MUST be called in loop() function Serial.print(F("Current Position: ")); Serial.println(stepper.currentPosition()); }

Schnelle Schritte

Um mit dem ESP8266 in der Arduino-IDE zu beginnen, befolgen Sie diese Schritte:

  • Schau dir das Tutorial zur Einrichtung der Umgebung für ESP8266 in der Arduino-IDE an, falls dies dein erster Einsatz von ESP8266 ist.
  • Verbinde die Bauteile gemäß dem Diagramm.
  • Schließe das ESP8266-Board mit einem USB-Kabel an deinen Computer an.
  • Öffne die Arduino-IDE auf deinem Computer.
  • Wähle das richtige ESP8266-Board, z. B. NodeMCU 1.0 (ESP-12E-Modul), und seinen jeweiligen COM-Port.
  • Klicke auf das Bibliotheken-Symbol in der linken Leiste der Arduino-IDE.
  • Suche nach „AccelStepper“ und finde die AccelStepper-Bibliothek, die von Mike McCauley erstellt wurde.
  • Klicke dann auf die Installieren-Schaltfläche, um die AccelStepper-Bibliothek zu installieren.
ESP8266 NodeMCU AccelStepper-Bibliothek
  • Kopieren Sie den Code und öffnen Sie ihn in der Arduino IDE.
  • Klicken Sie auf die Hochladen-Schaltfläche, um den Code auf den ESP8266 hochzuladen.
  • Beobachten Sie, wie sich der Motor dreht.
  • Es sollte sich einmal im Uhrzeigersinn drehen, gefolgt von zweimal gegen den Uhrzeigersinn, und danach zweimal im Uhrzeigersinn.

Das Verfahren wird kontinuierlich durchgeführt.

  • Überwachen Sie das Ergebnis im Serial Monitor.
COM6
Send
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Zusätzliches Wissen

1. Schrittmotor vibriert während der Bewegung

Seien Sie nicht beunruhigt, wenn der Schrittmotor während der Bewegung vibriert. Dies ist ein typisches Merkmal des Schrittmotors. Wir können die Vibration durch den Einsatz der Mikroschrittsteuerung reduzieren.

Zusätzlich kann der Schrittmotor, sofern er präzise gesteuert wird, musikalische Töne erzeugen, als wäre er ein Musikinstrument. Ein Beispiel dafür finden Sie hier auf Hackster.io.

2. Methode zur Ansteuerung von Schrittmotoren

  • Vollschritt: Die Bewegungsgröße ist ein Schritt, der dem im Datenblatt oder Handbuch des Schrittmotors angegebenen Gradwert entspricht.
  • Halbschritt: Jeder Vollschritt wird in zwei kleinere Schritte unterteilt. Die Bewegungseinheit entspricht der Hälfte des Vollschritts. Diese Methode ermöglicht dem Motor eine doppelte Auflösung.
  • Mikroschritt: Jeder Vollschritt wird in viele kleinere Schritte unterteilt. Die Bewegungseinheit ist ein Bruchteil des Vollschritts. Der Bruchteil kann 1/4, 1/8, 1/16, 1/32 oder noch mehr sein. Diese Methode ermöglicht dem Motor eine höhere Auflösung. Sie sorgt außerdem dafür, dass der Motor bei niedrigen Geschwindigkeiten gleichmäßiger läuft. Je größer der Nenner ist, desto höher ist die Auflösung und desto gleichmäßiger wird die Bewegung sein.

Wenn das Datenblatt des Motors 1,8 Grad pro Schritt angibt:

  • Vollschritt: Der Motor kann sich in Schritten von 1,8 Grad pro Schritt bewegen, was zu 200 Schritten pro Umdrehung führt.
  • Halbschritt: Der Motor kann sich in Schritten von 0,9 Grad pro Schritt bewegen, was zu 400 Schritten pro Umdrehung führt.
  • Mikroschritt: Der Motor kann sich in Schritten von 0,45, 0,225, 1125‬, 0,05625 Grad pro Schritt bewegen, was zu 800, 1600, 3200, 6400... Schritten pro Umdrehung führt.

Der obige Code verwendete die Vollschrittsteuerung.

3. Resonanzproblem

Dies ist für fortgeschrittene Benutzer. Anfänger müssen nichts davon beachten. Es tritt in einem Geschwindigkeitsbereich auf, in dem die Schrittfrequenz der Eigenfrequenz des Motors entspricht. Es könnte eine merkliche Veränderung im Geräusch geben, das der Motor verursacht, sowie eine Zunahme der Vibration. In der Praxis sollten Entwickler sich dessen bewusst sein.

Video Tutorial

Wir erwägen die Erstellung von Video-Tutorials. Wenn Sie Video-Tutorials für wichtig halten, abonnieren Sie bitte unseren YouTube-Kanal , um uns zu motivieren, die Videos zu erstellen.

※ UNSERE NACHRICHTEN

  • Sie können gerne den Link zu diesem Tutorial teilen. Bitte verwenden Sie jedoch unsere Inhalte nicht auf anderen Websites. Wir haben viel Mühe und Zeit in die Erstellung der Inhalte investiert, bitte respektieren Sie unsere Arbeit!