Raspberry Pi - 28BYJ-48 Schrittmotor ULN2003-Treiber
Dieses Tutorial zeigt Ihnen, wie Sie den Raspberry Pi verwenden, um den 28BYJ-48-Schrittmotor mit dem ULN2003-Treiber zu steuern. Im Detail werden wir Folgendes lernen:
- Wie man den Raspberry Pi mit dem 28BYJ-48-Schrittmotor über die ULN2003-Treiber verbindet
- Wie man den Raspberry Pi programmiert, um einen einzelnen 28BYJ-48-Schrittmotor über die ULN2003-Treiber zu steuern
- Wie man den Raspberry Pi programmiert, 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 sind ideal für die Positionsregelung. Sie teilen eine volle Umdrehung in eine Reihe gleicher „Schritte“ auf. Diese Motoren finden sich häufig in Druckern, 3D-Druckern, CNC-Maschinen und Anwendungen der industriellen Automatisierung.
Eine der kostengünstigen 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 sie unglaublich einfach zu bedienen macht.
Laut dem Datenblatt entspricht jeder Schritt im Vollschrittbetrieb des 28BYJ-48-Motors einer 11,25°-Drehung. Daher gibt es 32 Schritte pro vollständiger Umdrehung (360°/11,25° = 32).
Darüber hinaus verfügt der Motor über ein 1:64-Untersetzungsgetriebe. Das entspricht 32 × 64 = 2048 Schritten. Jeder Schritt entspricht 360°/2048 = 0,1758°.
Fazit: Wenn der Motor im Vollschrittmodus auf 2048 Schritte eingestellt ist, dreht er sich um genau eine Umdrehung.
Der 28BYJ-48-Schrittmotor mit ULN2003-Treiber-Pinbelegung
Der 28BYJ-48-Schrittmotor hat fünf Pins. Wir müssen uns nicht um die Einzelheiten dieser Pins kümmern. Alles, was wir tun müssen, ist ihn in den ULN2003-Motorentreiberstecker zu stecken.

Über ULN2003-Schrittmotortreiber-Modul
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 anzeigen und beim Schrittbetrieb einen großartigen visuellen Effekt erzeugen.
- Zusätzlich ist ein Ein/Aus-Jumper vorhanden, um die Stromversorgung des Schrittmotors abzuschalten.
ULN2003 Pinbelegung

Das ULN2003-Modul hat sechs Pins und einen weiblichen Stecker:
- IN1-Pin: Dieser Pin dient zum Ansteuern des Motors und sollte mit einem Ausgangspin des Raspberry Pi verbunden werden.
- IN2-Pin: Dieser Pin dient zum Ansteuern des Motors und sollte mit einem Ausgangspin des Raspberry Pi verbunden werden.
- IN3-Pin: Dieser Pin dient zum Ansteuern des Motors und sollte mit einem Ausgangspin des Raspberry Pi verbunden werden.
- IN4-Pin: Dieser Pin dient zum Ansteuern des Motors und sollte mit einem Ausgangspin des Raspberry Pi verbunden werden.
- GND-Pin: Dies ist ein gemeinsamer Massepin und muss sowohl mit den GNDs des Raspberry Pi als auch mit dem externen Netzteil verbunden werden.
- VDD-Pin: Dieser Pin versorgt den Motor mit Strom und sollte mit dem externen Netzteil verbunden werden.
- Motoranschluss: Hier wird der Motor eingesteckt.
※ Notiz:
- Die Spannung der externen Stromversorgung muss mit der Spannung des Schrittmotors übereinstimmen. Zum Beispiel, wenn ein Schrittmotor 12-V-DC benötigt, müssen wir eine 12-V-DC-Stromversorgung verwenden. Falls der Schrittmotor ein 28BYJ-48 ist, benötigt er 5-V-DC, daher verwenden wir eine 5-V-DC-Stromversorgung.
- Wenn der Schrittmotor jedoch eine 5-V-DC-Stromversorgung benötigt, verbinden Sie auf keinen Fall den VDD-Pin mit dem 5-V-Pin des Raspberry Pi. Stattdessen schließen Sie ihn an eine externe 5-V-DC-Stromversorgung an, da der Schrittmotor zu viel Strom zieht.
Verdrahtungsdiagramm

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.
Um Ihren Verdrahtungsaufbau zu vereinfachen und zu organisieren, empfehlen wir die Verwendung eines Schraubklemmenblock-Shields für Raspberry Pi. Dieses Shield gewährleistet sicherere und besser verwaltbare Verbindungen, wie unten gezeigt:

Es ist nicht notwendig, auf die Farbe der Kabel am Schrittmotor zu achten. Alles, was getan werden muss, ist, den männlichen Stecker des 28BYJ-48-Schrittmotors mit der Buchse am ULN2003-Treiber zu verbinden.
Wie man programmiert, um einen Schrittmotor zu steuern
Es gibt drei Möglichkeiten, einen Schrittmotor zu regeln:
- Vollschritt
- Halbschritt
- Mikroschritt
Für einfache Anwendungen kann das Vollschritt-Verfahren verwendet werden. Die Details der drei Methoden werden im abschließenden Abschnitt des Tutorials erläutert.
Raspberry-Pi-Code
Schnelle Schritte
- Stellen Sie sicher, dass Raspbian oder ein anderes Raspberry Pi-kompatibles Betriebssystem auf Ihrem Raspberry Pi installiert ist.
- Stellen Sie sicher, dass Ihr Raspberry Pi mit demselben lokalen Netzwerk wie Ihr PC verbunden ist.
- Stellen Sie sicher, dass Ihr Raspberry Pi mit dem Internet verbunden ist, falls Sie Bibliotheken installieren müssen.
- Falls dies das erste Mal ist, dass Sie den Raspberry Pi verwenden, siehe wie man den Raspberry Pi einrichtet
- Verbinden Sie Ihren PC per SSH mit dem Raspberry Pi, indem Sie den integrierten SSH-Client unter Linux und macOS oder PuTTY unter Windows verwenden. Siehe wie Sie Ihren PC per SSH mit dem Raspberry Pi verbinden.
- Stellen Sie sicher, dass Sie die RPi.GPIO-Bibliothek installiert haben. Falls nicht, installieren Sie sie mit dem folgenden Befehl:
- Erstelle eine Python-Skriptdatei stepper_uln2003.py und füge den folgenden Code hinzu:
- Speichern Sie die Datei und führen Sie das Python-Skript aus, indem Sie den folgenden Befehl im Terminal ausführen:
- Überprüfen Sie den rotierenden Motor.
- Der Motor sollte sich zuerst eine Umdrehung im Uhrzeigersinn drehen, danach zwei Umdrehungen gegen den Uhrzeigersinn und schließlich zwei Umdrehungen im Uhrzeigersinn.
Indem Sie den Wert der Variablen delay im Code ändern, können Sie die Geschwindigkeit des Schrittmotors beeinflussen.
Das Skript läuft in einer Endlosschleife ununterbrochen, bis Sie Ctrl + C im Terminal drücken.
Zusätzliches Wissen
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 verringern.
Zusätzlich kann der Schrittmotor, wenn er richtig gesteuert wird, Musiktöne erzeugen, wie ein Musikinstrument. Ein Beispiel hierfür findet sich hier auf Hackster.io.
Methode zur Steuerung 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 Bewegungsgröße ist die Hälfte des Vollschritts. Diese Methode ermöglicht dem Motor eine doppelte Auflösung.
- Mikroschritt: Jeder Vollschritt wird in viele kleinere Schritte unterteilt. Die Bewegungsgröße ist ein Bruchteil des Vollschritts. Der Bruchteil kann 1/4, 1/8, 1/16, 1/32 oder sogar mehr betragen. Diese Methode ermöglicht dem Motor eine höhere Auflösung und eine sanftere Bewegung bei niedrigen Geschwindigkeiten. Je größer der Dividend, desto höher die Auflösung und die sanftere Bewegung.
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 200 Schritte pro Umdrehung ergibt.
- Halbschritt: Der Motor kann sich in Schritten von 0,9 Grad pro Schritt bewegen, was 400 Schritte pro Umdrehung ergibt.
- Mikroschritt: Der Motor kann sich in Schritten von 0,45, 0,225, 0,1125, 0,05625 Grad pro Schritt bewegen, was 800, 1600, 3200, 6400... Schritte pro Umdrehung ergibt.
Der obige Code verwendete die Vollschrittsteuerung.
Resonanzproblem
Dies ist für erfahrenere Anwender gedacht. Anfänger müssen sich darüber keine Sorgen machen. Es tritt in einem Bereich von Geschwindigkeiten auf, in dem die Schrittfrequenz der Eigenfrequenz des Motors entspricht. Es kann zu einer deutlichen Veränderung des Motorgeräuschs sowie zu einer Zunahme der Vibration kommen. In der Praxis 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.