Arduino Nano ESP32 - 28BYJ-48-Schrittmotor ULN2003-Treiber
In diesem Tutorial werden wir die folgenden Themen behandeln:
- Ansteuerung eines einzelnen 28BYJ-48-Schrittmotors mit einem Arduino Nano ESP32 und ULN2003-Treiber.
- Ansteuerung mehrerer 28BYJ-48-Schrittmotoren mit einem Arduino Nano ESP32 und ULN2003-Treiber.

Schrittmotoren zeichnen sich durch eine präzise Positionssteuerung aus, da sie eine komplette Umdrehung in diskrete "Schritte" unterteilen. Diese Motoren finden Anwendung in einer Vielzahl von Geräten, einschließlich Druckern, 3D-Druckern, CNC-Maschinen und industriellen Automatisierungssystemen.
Eine erschwingliche Methode, Einblick in Schrittmotoren zu gewinnen, besteht darin, mit 28BYJ-48-Schrittmotoren zu experimentieren. In der Regel werden diese Motoren mit Treiberplatinen geliefert, die auf dem ULN2003 basieren, wodurch ihre Nutzung erheblich vereinfacht wird.
Erforderliche Hardware
Oder Sie können die folgenden Kits kaufen:
1 | × | DIYables Sensor-Kit (30 Sensoren/Displays) | |
1 | × | DIYables Sensor-Kit (18 Sensoren/Displays) |
Über den 28BYJ-48-Schrittmotor
Laut dem Datenblatt bewegt sich der 28BYJ-48-Motor im Vollschrittbetrieb in 11,25-Grad-Schritten, was zu 32 Schritten pro vollständiger Umdrehung führt (wie berechnet: 360°/11,25° = 32).
Darüber hinaus verfügt der Motor über ein 1/64-Untersetzungsgetriebe, wodurch seine Schrittzahl effektiv auf 32 × 64 erhöht wird und sich daraus 2048 Schritte pro Umdrehung ergeben. Jeder dieser 2048 Schritte entspricht einer Umdrehung von 360°/2048, was ungefähr 0,1758 Grad pro Schritt ergibt.
Schlussfolgerung: Wenn der Motor 2048 Schritte macht (im Vollschrittmodus), dreht sich der Motor um eine Umdrehung.
Pinbelegung
Der 28BYJ-48-Schrittmotor verfügt über 5 Pins. Wir müssen uns nicht im Detail um diese Pins kümmern. Wir schließen ihn einfach an den Anschluss des ULN2003-Motortreibers an.

Über das ULN2003-Schrittmotortreiber-Modul
Der ULN2003 zeichnet sich als weit verbreitetes Motortreiber-Modul für Schrittmotoren aus. Zu den wichtigsten Merkmalen des Moduls gehören:
- Vier LEDs, die aufleuchten, um die Aktivität der vier Steuereingänge anzuzeigen und damit den aktuellen Schrittzustand des Motors widerzuspiegeln. Diese LEDs dienen nicht nur einem praktischen Zweck, sondern verleihen dem Schaltvorgang auch ein optisches Element.
- Ein ON/OFF-Jumper ist in das Modul integriert und ermöglicht die Trennung der Stromversorgung des angeschlossenen Schrittmotors. Dieses Merkmal bietet eine bequeme Möglichkeit, die Stromversorgung des Motors zu steuern und ermöglicht so eine effiziente Energieverwaltung.
ULN2003 Pinbelegung

ULN2003-Modul enthält 6 Pins und einen weiblichen Stecker:
- IN1-Pin: Wird verwendet, um den Motor anzusteuern. Verbinden Sie ihn mit einem Ausgangspin am Arduino Nano ESP32.
- IN2-Pin: Wird verwendet, um den Motor anzusteuern. Verbinden Sie ihn mit einem Ausgangspin am Arduino Nano ESP32.
- IN3-Pin: Wird verwendet, um den Motor anzusteuern. Verbinden Sie ihn mit einem Ausgangspin am Arduino Nano ESP32.
- IN4-Pin: Wird verwendet, um den Motor anzusteuern. Verbinden Sie ihn mit einem Ausgangspin am Arduino Nano ESP32.
- GND-Pin: Ist ein gemeinsamer Masseanschluss. Er muss sowohl mit dem GND des Arduino Nano ESP32 als auch mit dem GND der externen Stromversorgung verbunden werden.
- VDD-Pin: Versorgt den Motor mit Strom. Verbinden Sie ihn mit der externen Stromversorgung.
- Motoranschluss: Hier wird der Motor angeschlossen.
※ Notiz:
Wenn es darum geht, Schrittmotoren mit Strom zu versorgen, ist es wichtig, diese Richtlinien zu beachten:
- Stellen Sie sicher, dass die Spannung des externen Netzteils den Spannungsanforderungen des Schrittmotors entspricht. Zum Beispiel, wenn Ihr Schrittmotor mit 12 V DC betrieben wird, ist es entscheidend, ein 12-V-Netzteil zu verwenden. Im Fall des 28BYJ-48-Schrittmotors, der mit 5 V DC funktioniert, ist es zwingend erforderlich, ein 5-V-Netzteil zu verwenden.
- Es ist wichtig zu beachten, dass selbst wenn ein Schrittmotor dafür ausgelegt ist, mit einer 5-V-Stromversorgung betrieben zu werden, VERBINDEN Sie den VDD-Pin NICHT mit dem 5-V-Pin des Arduino Nano ESP32. Stattdessen verbinden Sie den VDD-Pin mit einer externen 5-V-Stromquelle. Diese Vorsichtsmaßnahme ist entscheidend, da Schrittmotoren eine beträchtliche Leistungsaufnahme haben können, die die Leistungsfähigkeit der Stromversorgung des ESP32 übersteigen könnte und dadurch zu Problemen oder Schäden führen könnte.
Verdrahtungsdiagramm

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.
Bitte beachten Sie, dass wir uns nicht um die Drahtfarbe des Schrittmotors kümmern müssen. Wir müssen lediglich den männlichen Stecker (am 28BYJ-48-Schrittmotor) in den weiblichen Stecker (am ULN2003-Treiber) stecken.
Wie man programmiert, um einen Schrittmotor zu steuern
Wenn es um die Steuerung eines Schrittmotors geht, gibt es drei Hauptmethoden:
- Vollschritt
- Halbschritt
- Mikroschritt
Für grundlegende Anwendungen ist die Vollschritt-Methode oft ausreichend. Allerdings werden im letzten Teil dieses Tutorials detaillierte Erklärungen zu allen drei Methoden bereitgestellt. Es ist erwähnenswert, dass die Programmierung für diese Methoden komplex sein kann. Die gute Nachricht ist, dass es viele Bibliotheken gibt, die diese Komplexität für uns handhaben. Alles, was wir tun müssen, ist, die passende Bibliothek zu verwenden, wodurch die Steuerung von Schrittmotoren in unseren Projekten vereinfacht wird.
Die Arduino-IDE enthält eine integrierte Stepper-Bibliothek, aber wir raten davon ab, sie aus den folgenden Gründen zu verwenden:
- Blockierende Natur: Diese Bibliothek arbeitet blockierend, was bedeutet, dass sie die Ressourcen des ESP32 monopolisiert und verhindert, dass er andere Aufgaben ausführt, während der Schrittmotor gesteuert wird.
- Begrenzte Funktionalität: Die eingebaute Stepper-Bibliothek bietet möglicherweise nicht alle Funktionen und Merkmale, die Sie für Ihr Projekt benötigen.
Stattdessen empfehlen wir die Verwendung der AccelStepper-Bibliothek. Diese Bibliothek bietet mehrere Vorteile, darunter:
- Beschleunigung und Abbremsung: Es unterstützt eine sanfte Beschleunigung und Abbremsung, wodurch eine präzisere Steuerung möglich ist.
- Vollschritt- und Halbschrittbetrieb: Sie können zwischen Vollschritt- und Halbschrittbetriebsmodi für Ihren Schrittmotor wählen.
- Mehrere Schrittmotoren gleichzeitig: AccelStepper ermöglicht die Steuerung mehrerer Schrittmotoren gleichzeitig, wobei jeder Schrittmotor unabhängig voneinander und zeitgleich bewegt wird.
Es ist jedoch wichtig zu beachten, dass die Bibliothek einen Nachteil hat: Sie unterstützt keinen Mikroschrittbetrieb.
Arduino Nano ESP32-Code
Schnelle Schritte
Um mit dem Arduino Nano ESP32 zu beginnen, befolgen Sie diese Schritte:
- Wenn Sie neu beim Arduino Nano ESP32 sind, lesen Sie das Tutorial zu wie man die Umgebung für Arduino Nano ESP32 in der Arduino IDE einrichtet.
- Schließen Sie die Komponenten gemäß dem bereitgestellten Diagramm an.
- Schließen Sie das Arduino Nano ESP32-Board mit einem USB-Kabel an Ihren Computer an.
- Öffnen Sie die Arduino IDE auf Ihrem Computer.
- Wählen Sie das Arduino Nano ESP32-Board und den entsprechenden COM-Port aus.
- Öffnen Sie den Library Manager, indem Sie auf das Library Manager-Symbol in der linken Navigationsleiste der Arduino IDE klicken.
- Suchen Sie “AccelStepper”, und finden Sie dann die AccelStepper-Bibliothek von Mike McCauley.
- Klicken Sie auf den Install-Button, um die AccelStepper-Bibliothek zu installieren.

- Kopiere den obigen Code und öffne ihn mit der Arduino IDE
- Klicke auf die Schaltfläche Upload in der Arduino IDE, um den Code auf das Arduino Nano ESP32 hochzuladen
- Sieh dir den Motor an, der sich dreht. Er sollte:
- Eine Umdrehung im Uhrzeigersinn drehen, und dann
- Zwei Umdrehungen gegen den Uhrzeigersinn drehen, und dann
- Zwei Umdrehungen im Uhrzeigersinn drehen.
- Siehe das Ergebnis im seriellen Monitor
Dieser Prozess wird unendlich oft wiederholt.
Wie man mehrere 28BYJ-48-Schrittmotoren steuert
Lernen wir, wie man zwei Schrittmotoren gleichzeitig unabhängig voneinander steuert.
Verdrahtungsdiagramm für zwei 28BYJ-48-Schrittmotoren

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