Arduino Nano – 28BYJ-48-Schrittmotor ULN2003-Treiber
Dieses Tutorial zeigt Ihnen, wie Sie den Arduino Nano verwenden, um den 28BYJ-48-Schrittmotor mit dem ULN2003-Treiber zu steuern. Im Detail werden wir Folgendes lernen:
- So verbinden Sie den Arduino Nano mit dem 28BYJ-48-Schrittmotor über den ULN2003-Treiber
- So programmieren Sie den Arduino Nano, um einen einzelnen 28BYJ-48-Schrittmotor über den ULN2003-Treiber zu steuern
- So programmieren Sie den Arduino Nano, um mehrere 28BYJ-48-Schrittmotoren über die ULN2003-Treiber zu steuern

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
Schrittmotoren eignen sich hervorragend zur Positionsregelung. Sie unterteilen eine vollständige Umdrehung in eine Anzahl gleicher Schritte. Diese Motoren werden in vielen Geräten eingesetzt, z. B. in Druckern, 3D-Druckern, CNC-Maschinen und in der industriellen Automatisierung.
Eine der kostengünstigen Methoden, um Kenntnisse über Schrittmotoren zu erlangen, besteht darin, 28BYJ-48-Schrittmotoren zu verwenden. Diese werden typischerweise mit einer ULN2003-basierten Treiberplatine geliefert, was sie unglaublich einfach zu bedienen macht.
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).
Außerdem verfügt der Motor über ein 1:64-Untersetzungsgetriebe. Dies entspricht 32 × 64 = 2048 Schritten. Jeder Schritt entspricht 360°/2048 = 0,1758°.
Schlussfolgerung: Wenn der Motor im Vollschrittmodus betrieben wird, benötigt er 2048 Schritte, um eine vollständige Umdrehung zu erreichen.
Der 28BYJ-48-Schrittmotor mit ULN2003-Treiber-Pinbelegung
Der 28BYJ-48-Schrittmotor hat 5 Pins. Es ist nicht nötig, sich um die Spezifikationen dieser Pins zu kümmern; sie müssen einfach an den ULN2003-Motor-Treiberstecker angeschlossen werden.

Über den ULN2003-Schrittmotortreiber
Der ULN2003 ist ein weit verbreitetes Motortreiber-Modul für Schrittmotoren.
- Es verfügt über vier LEDs, die die Aktivität der vier Steuereingänge demonstrieren und so einen großartigen visuellen Effekt erzeugen, wenn der Motor Schritte macht.
- Zusätzlich verfügt es über eine Ein/Aus-Brücke, um die Stromzufuhr zum Schrittmotor zu trennen.
ULN2003 Pinbelegung

Das ULN2003-Modul hat 6 Pins und eine weibliche Buchse:
- IN1-Pin: Dieser Pin wird verwendet, um den Motor zu steuern. Er sollte mit einem Ausgangspin auf dem Arduino Nano-Board verbunden werden.
- IN2-Pin: Dieser Pin wird verwendet, um den Motor zu steuern. Er sollte mit einem Ausgangspin auf dem Arduino Nano-Board verbunden werden.
- IN3-Pin: Dieser Pin wird verwendet, um den Motor zu steuern. Er sollte mit einem Ausgangspin auf dem Arduino Nano-Board verbunden werden.
- IN4-Pin: Dieser Pin wird verwendet, um den Motor zu steuern. Er sollte mit einem Ausgangspin auf dem Arduino Nano-Board verbunden werden.
- GND-Pin: Dies ist der gemeinsame Massepin. Er muss sowohl mit dem Masse-Anschluss des Arduino Nano-Boards als auch mit dem Masse-Anschluss des externen Netzteils verbunden werden.
- VDD-Pin: Dieser Pin versorgt den Motor mit Strom. Er sollte mit dem externen Netzteil verbunden werden.
- Motoranschluss: Hier wird der Motor eingesteckt.
※ Notiz:
- Die Spannung der externen Stromversorgung sollte der Spannung des Schrittmotors entsprechen. Zum Beispiel: Wenn ein Schrittmotor mit 12 V DC arbeitet, müssen wir eine 12-V-Stromversorgung verwenden. Im Fall des Schrittmotors 28BYJ-48 arbeitet er mit 5 V DC, daher verwenden wir eine 5-V-Stromversorgung.
- Allerdings, selbst wenn der Schrittmotor eine 5-V-Stromversorgung benötigt, verbinden Sie NICHT den VDD-Pin mit dem 5-V-Pin des Arduino Nano. Stattdessen schließen Sie ihn an eine externe 5-V-Stromversorgung an, da der Schrittmotor zu viel Leistung zieht.
Verdrahtungsdiagramm

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.
Es ist nicht notwendig, auf die Farbe der Kabel am Schrittmotor zu achten. Alles, was erforderlich ist, besteht darin, den männlichen Stecker am 28BYJ-48-Schrittmotor mit dem weiblichen Stecker am ULN2003-Treiber zu verbinden.
Wie man programmiert, um einen Schrittmotor zu steuern
Es gibt drei Möglichkeiten, einen Schrittmotor zu steuern:
- Vollschritt
- Halbschritt
- Mikroschritt
Für grundlegende Anwendungen können wir den Vollschritt-Ansatz verwenden. Die Einzelheiten der drei Methoden werden im abschließenden Abschnitt dieses Tutorials erläutert. Die Programmierung dieser Techniken kann komplex sein. Glücklicherweise gibt es viele Bibliotheken, die die Arbeit bereits für uns erledigt haben, sodass wir sie einfach nutzen können.
Die Arduino IDE verfügt über eine integrierte Stepper-Bibliothek. Allerdings empfehlen wir nicht, diese Bibliothek zu verwenden, da:
- Es ist eine blockierende Bibliothek, was bedeutet, dass sie den Arduino Nano daran hindert, während der Ansteuerung 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
- Verlangsamung
- Vollschritt- und Halbschrittbetrieb
- Mehrere gleichzeitig betriebene Schrittmotoren, mit unabhängiger, gleichzeitiger Schrittfolge bei jedem Motor
- Nachteil: Keine Mikroschrittsteuerung
Arduino Nano Code
Schnelle Schritte
- Klicken Sie auf das Bibliotheken-Symbol in der linken Seitenleiste der Arduino-IDE.
- Suchen Sie nach „AccelStepper“, und finden Sie anschließend die von Mike McCauley erstellte AccelStepper-Bibliothek.
- Klicken Sie auf die Schaltfläche Installieren, um die AccelStepper-Bibliothek hinzuzufügen.

- Kopieren Sie den obigen Code und öffnen Sie ihn mit der Arduino-IDE.
- Klicken Sie auf die Hochladen-Schaltfläche in der Arduino-IDE, um den Code auf den Arduino Nano hochzuladen.
- Sie sollten dann sehen, wie der Motor rotiert. Er sollte eine Umdrehung im Uhrzeigersinn durchführen, gefolgt von zwei Umdrehungen gegen den Uhrzeigersinn, und dann zwei Umdrehungen im Uhrzeigersinn.
Das Verfahren wird kontinuierlich durchgeführt.
- Schau dir die Ausgabe im Serial Monitor an.
Wie man mehrere 28BYJ-48-Schrittmotoren steuert
Lassen Sie uns herausfinden, wie man zwei Schrittmotoren getrennt und doch gleichzeitig steuert.
Schaltplan für zwei 28BYJ-48-Schrittmotoren

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.
Siehe Der beste Weg, den Arduino Nano und andere Komponenten mit Strom zu versorgen.
Arduino Nano-Code für zwei 28BYJ-48-Schrittmotoren
Zusätzliches Wissen
1. Schrittmotor vibriert während der Bewegung
Seien Sie NICHT besorgt, wenn der Schrittmotor während der Bewegung wackelt. Dies ist eine Eigenschaft des Schrittmotors. Wir können die Vibration durch die Mikroschrittsteuerung verringern.
Darüber hinaus kann der Schrittmotor, wenn diese Funktion richtig genutzt wird, Musik erzeugen, als wäre er ein Musikinstrument. Ein Beispiel dafür finden Sie hier auf Hackster.io.
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 auf. Die Bewegungseinheit ist die Hälfte des Vollschritts. Diese Methode ermöglicht dem Motor eine doppelte Auflösung.
- Mikroschritt: Teilt jeden Vollschritt in viele kleinere Schritte auf. Die Bewegungseinheit ist ein Bruchteil des Vollschritts. Der Bruchteil kann 1/4, 1/8, 1/16, 1/32 oder sogar noch größer 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, desto höher die Auflösung und desto sanfter die Bewegung.
Wenn das Datenblatt des Motors 1,8° pro Schritt angibt:
- Vollschritt: Der Motor bewegt sich in Schritten von 1,8 Grad pro Schritt, was zu 200 Schritten pro Umdrehung führt.
- Halbschritt: Der Motor bewegt sich in Schritten von 0,9 Grad pro Schritt, was zu 400 Schritten pro Umdrehung führt.
- Mikroschritt: Der Motor bewegt sich in Inkrementen von 0,45, 0,225, 0,1125, 0,05625 Grad pro Schritt, was zu 800, 1600, 3200, 6400... Schritten pro Umdrehung führt.
Die im obigen Code verwendete Steuerungsmethode war der Vollschrittansatz.
3. Resonanzproblem
Dies ist für fortgeschrittene Anwender. Anfänger brauchen sich nicht damit zu befassen. Es tritt in einem Geschwindigkeitsbereich auf, in dem die Schrittfrequenz der Eigenfrequenz des Motors entspricht. Es kann zu einer deutlichen Veränderung des vom Motor erzeugten Geräuschs sowie zu einer Zunahme der Vibration kommen. In praktischen Anwendungen sollten Entwickler dies berücksichtigen.
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.