Arduino - Steuert den 28BYJ-48-Schrittmotor mit ULN2003-Treiber
In diesem Tutorial lernen wir:
- Wie man einen einzelnen 28BYJ-48-Schrittmotor mit Arduino und ULN2003-Treiber steuert
- Wie man mehrere 28BYJ-48-Schrittmotoren mit Arduino und ULN2003-Treiber steuert

Schrittmotoren sind großartige Motoren für die Positionsregelung. Die Schrittmotoren teilen eine vollständige Umdrehung in eine Anzahl gleicher Schritte auf. Sie werden in vielen Geräten eingesetzt, wie Druckern, 3D-Druckern, CNC-Maschinen und in der industriellen Automatisierung.
Eine der kostengünstigen Möglichkeiten, sich mit Schrittmotoren vertraut zu machen, besteht darin, 28BYJ-48-Schrittmotoren zu verwenden. Sie werden in der Regel mit einer ULN2003-basierten Treiberplatine geliefert, die die Bedienung super einfach macht.
Erforderliche Hardware
Oder Sie können die folgenden Kits kaufen:
1 | × | DIYables STEM V3 Starter-Kit (Arduino enthalten) | |
1 | × | DIYables Sensor-Kit (30 Sensoren/Displays) | |
1 | × | DIYables Sensor-Kit (18 Sensoren/Displays) |
Über den 28BYJ-48-Schrittmotor
Laut dem Datenblatt entspricht der 28BYJ-48-Motor im Vollschrittbetrieb jeder Schritt einer Drehung von 11,25°. Das bedeutet, dass es 32 Schritte pro Umdrehung gibt (360°/11,25° = 32).
Außerdem hat der Motor ein 1:64-Untersetzungsgetriebe. Das bedeutet, dass er tatsächlich 32 × 64 = 2048 Schritte hat. Jeder Schritt entspricht 360°/2048 = 0,1758°.
Fazit: Wenn der Motor 2048 Schritte macht (im Vollschrittbetrieb), 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 müssen sie einfach an den Anschluss des ULN2003-Motortreibers anschließen.

Über ULN2003-Schrittmotor-Treiber-Modul
Der ULN2003 ist eines der gängigsten Motortreiber-Module für Schrittmotoren.
- Das Modul verfügt über vier LEDs, die die Aktivität von vier Steuereingangslinien anzeigen (zur Anzeige des Schrittzustands). Sie erzeugen beim Schrittvorgang einen beeindruckenden Effekt.
- Das Modul kommt außerdem mit einem ON/OFF-Jumper, um die Stromversorgung zum Schrittmotor zu isolieren.
ULN2003 Pinbelegung

ULN2003-Modul umfasst 6 Pins und einen weiblichen Steckverbinder:
- IN1-Pin: Wird verwendet, um den Motor anzusteuern. Schließen Sie ihn an einen Ausgangspin des Arduino an.
- IN2-Pin: Wird verwendet, um den Motor anzusteuern. Schließen Sie ihn an einen Ausgangspin des Arduino an.
- IN3-Pin: Wird verwendet, um den Motor anzusteuern. Schließen Sie ihn an einen Ausgangspin des Arduino an.
- IN4-Pin: Wird verwendet, um den Motor anzusteuern. Schließen Sie ihn an einen Ausgangspin des Arduino an.
- GND-Pin: Ist ein gemeinsamer Massepin. Er muss sowohl mit dem GND des Arduino als auch mit dem GND der externen Stromversorgung verbunden werden.
- VDD-Pin: Versorgt den Motor mit Strom. Schließen Sie ihn an die externe Stromversorgung an.
- Motoranschluss: Hier wird der Motor eingesteckt.
※ Notiz:
- Die Spannung des externen Netzteils sollte der Spannung des Schrittmotors entsprechen. Zum Beispiel arbeitet ein Schrittmotor mit 12 V DC; wir benötigen eine 12-V-Spannungsversorgung. Im Fall des 28BYJ-48-Schrittmotors funktioniert dieser mit 5 V DC; wir verwenden eine 5-V-Spannungsversorgung.
- Selbst wenn ein Schrittmotor eine 5-V-Spannungsversorgung benötigt, verbinden Sie den VDD-Pin NICHT mit dem 5-V-Pin des Arduino. Stattdessen schließen Sie ihn an eine externe 5-V-Spannungsversorgung an. Das liegt daran, dass der Schrittmotor zu viel Strom zieht.
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) an den weiblichen Stecker (am ULN2003-Treiber) anschließen.
Wie man programmiert, um einen Schrittmotor zu steuern
Es gibt drei Methoden, einen Schrittmotor zu steuern:
- Vollschritt
- Halbschritt
- Mikroschritt
Für einfache Anwendungen können wir das Vollschritt-Verfahren verwenden. Die Details der drei Methoden werden im letzten Teil dieses Tutorials erläutert. Die Programmierung dieser Methoden ist kompliziert. Glücklicherweise gibt es viele Bibliotheken, die das für uns erledigt haben. Wir müssen nur eine Bibliothek verwenden.
Die Arduino-IDE verfügt über eine integrierte [Stepper]-Bibliothek. Wir empfehlen Ihnen jedoch nicht, diese Bibliothek zu verwenden, weil:
- Die Bibliothek blockiert. Das bedeutet, dass sie Arduino daran hindert, andere Aufgaben auszuführen, während sie den Schrittmotor steuert.
- Sie bietet nicht genügend Funktionen.
Stattdessen empfehlen wir Ihnen, die AccelStepper Bibliothek zu verwenden. Diese Bibliothek unterstützt:
- Beschleunigung
- Verzögerung.
- Vollschritt- und Halbschrittbetrieb.
- Mehrere Schrittmotoren gleichzeitig, mit unabhängiger, gleichzeitiger Schrittfolge bei jedem Motor.
- Nachteil: Mikroschrittbetrieb wird nicht unterstützt
Arduino-Code
Schnelle Schritte
- Gehe zum Bibliotheken-Symbol in der linken Leiste der Arduino-IDE.
- Suche „AccelStepper“, und finde anschließend die AccelStepper-Bibliothek von Mike McCauley.
- Klicke auf die Schaltfläche Installieren, um die AccelStepper-Bibliothek zu installieren.

- Kopieren Sie den obigen Code und öffnen Sie ihn mit der Arduino IDE
- Klicken Sie in der Arduino IDE auf die Schaltfläche Hochladen, um den Code auf den Arduino zu übertragen
- Sie sollten sehen, wie sich der Motor dreht. Er sollte:
- Eine Umdrehung im Uhrzeigersinn durchführen, und dann
- Zwei Umdrehungen gegen den Uhrzeigersinn durchführen, und dann
- Zwei Umdrehungen im Uhrzeigersinn durchführen.
- Siehe das Ergebnis im Serial 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.
Arduino-Code für zwei 28BYJ-48-Schrittmotoren
Zusätzliches Wissen
1. Schrittmotor vibriert während der Bewegung
Machen Sie sich keine Sorgen, wenn der Schrittmotor während der Bewegung vibriert. Dies ist eine Eigenschaft des Schrittmotors. Wir können die Vibration durch die Mikroschrittsteuerung reduzieren.
Außerdem kann der Schrittmotor, wenn wir ihn richtigsteuern, musikalische Klänge erzeugen, als wäre er ein Musikinstrument. Sie können dieses Projekt auf dem Arduino Project Hub sehen.
2. Methode zur Steuerung von Schrittmotoren
- Vollschritt: Die Bewegungseinheit ist ein Schritt, der dem im Datenblatt oder Handbuch des Schrittmotors angegebenen Gradwert entspricht.
- Halbschritt: Teilt jeden Vollschritt in zwei kleinere Schritte. Die Bewegungseinheit ist die Hälfte des Vollschritts. Diese Methode ermöglicht dem Motor, sich mit doppelter Auflösung zu bewegen.
- Mikroschritt: Teilt jeden Vollschritt in viele kleinere Schritte. 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 es dem Motor, sich mit höherer Auflösung zu bewegen. Sie sorgt auch dafür, dass der Motor bei niedrigen Geschwindigkeiten gleichmäßiger läuft. Je feiner die Unterteilung, desto höher die Auflösung und desto gleichmäßiger die Bewegung.
Zum Beispiel, wenn das Datenblatt des Motors 1,8 Grad/Schritt angibt:
- Vollschritt: Der Motor kann sich mit 1,8 Grad pro Schritt bewegen <⇒ 200 Schritte pro Umdrehung
- Halbschritt: Der Motor kann sich mit 0,9 Grad pro Schritt bewegen <⇒ 400 Schritte pro Umdrehung
- Mikroschritt: Der Motor kann sich mit 0,45, 0,225, 0,1125, 0,05625 Grad pro Schritt bewegen <⇒ 800, 1600, 3200, 6400... Schritte pro Umdrehung
Der obige Code verwendete die Vollschrittsteuerung.
3. Resonanzproblem
Dies sind die fortgeschrittenen Anwendungen. Die Anfänger müssen dabei NICHT darauf achten. Dies geschieht in einem Geschwindigkeitsbereich, in dem die Schrittfrequenz der natürlichen Frequenz des Motors entspricht. Es kann zu einer hörbaren Veränderung des vom Motor erzeugten Geräuschs kommen, ebenso wie zu einer Zunahme der Vibration. In realen Anwendungen sollte der Entwickler auf dieses Problem achten.
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.
WARNING
Bitte beachten Sie, dass dieses Tutorial unvollständig ist. Wir werden auf unserer Facebook-Seite posten, wenn das Tutorial vollständig ist. Liken Sie sie, um auf dem Laufenden zu bleiben.