Raspberry Pi - Schrittmotor
Diese Anleitung zeigt Ihnen, wie Sie mit Raspberry Pi einen Schrittmotor mit dem L298N Driver steuern. Im Detail werden wir lernen:
- Wie Sie Raspberry Pi und den L298N Driver verwenden, um einen bipolaren Schrittmotor zu steuern
- Wie Sie Raspberry Pi programmieren, um die Position des Schrittmotors zu kontrollieren
- Wie Sie Raspberry Pi programmieren, um die Geschwindigkeit des Schrittmotors zu kontrollieren
- Wie Sie Raspberry Pi programmieren, um die Drehrichtung des Schrittmotors zu kontrollieren
Die Anleitung ist auf alle Arten von bipolaren Schrittmotoren mit vier Kabeln anwendbar. Sie wird einen NEMA 17 Schrittmotor als Beispiel verwenden.

Wenn Sie einen anderen Typ von Schrittmotor steuern möchten, schauen Sie sich diese Raspberry Pi - 28BYJ-48 Schrittmotor Anleitung an.
Benötigte 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 Schrittmotor
Es gibt zwei gängige Arten von Schrittmotoren:
- Bipolar: Dieser Motor hat vier Kabel
- Unipolar: Dieser Motor hat entweder fünf oder sechs Kabel
Bei einem 6-Kabel-unipolaren Schrittmotor können wir vier seiner sechs Kabel nutzen und ihn steuern, als wäre er ein bipolarer Schrittmotor.
Für einen 5-Kabel-unipolaren Schrittmotor siehe Raspberry Pi - Steuerung des 28BYJ-48 Schrittmotors mit ULN2003 Driver.
Diese Anleitung konzentriert sich ausschließlich auf den bipolaren Schrittmotor.
Bipolarer Schrittmotor Pinbelegung
Der bipolare Schrittmotor hat vier Pins und die Namen dieser Pins variieren je nach Hersteller. Die folgende Tabelle zeigt einige der gängigeren Namen für die Pins:
| PIN NR | Bezeichnung 1 | Bezeichnung 2 | Bezeichnung 3 |
|---|---|---|---|
| 1 | A+ | A | A |
| 2 | A- | A | C |
| 3 | B+ | B | B |
| 4 | B- | B | D |

Die Anordnung der Pins, die Beschriftung der Kabel und ihre Farben können sich zwischen den Herstellern unterscheiden. Um die Verbindung zwischen der Kabelfarbe und ihrem Namen zu bestimmen, müssen Sie das Datenblatt oder Handbuch konsultieren. Das obige Bild zeigt auch die Details von zwei verschiedenen Motoren mit unterschiedlicher Kabelbeschriftung und -farben.
Schritte pro Umdrehung
Die Spezifikation des Motors gibt den DEG_PER_STEP an. Je nach Steuerungstechnik kann STEP_PER_REVOLUTION mit der folgenden Tabelle bestimmt werden:
| Steuerungsmethode | Schritte pro Umdrehung | Tatsächlicher Grad pro Schritt |
|---|---|---|
| Full-step | STEP_PER_REVOLUTION = 360 / DEG_PER_STEP | DEG_PER_STEP |
| Half-step | STEP_PER_REVOLUTION = (360 / DEG_PER_STEP) * 2 | DEG_PER_STEP / 2 |
| Micro-step (1/n) | STEP_PER_REVOLUTION = (360 / DEG_PER_STEP) * n | DEG_PER_STEP / n |
Zum Beispiel, wenn das Datenblatt des Motors 1,8 Grad/Schritt angibt:
| Steuerungsmethode | Schritte pro Umdrehung | Tatsächlicher Grad pro Schritt |
|---|---|---|
| Full-step | 200 Schritte/Umdrehung | 1,8° |
| Half-step | 400 Schritte/Umdrehung | 0,9° |
| Micro-step (1/n) | (200 * n) Schritte/Umdrehung | (1,8 / n)° |
Wie Sie einen Schrittmotor mit Raspberry Pi steuern
Raspberry Pi kann Signale erzeugen, um den Schrittmotor zu steuern, jedoch sind diese Signale nicht von ausreichender Spannung und/oder Stromstärke, um den Anforderungen des Schrittmotors zu entsprechen. Daher ist ein Hardware-Driver zwischen Raspberry Pi und dem Schrittmotor erforderlich. Dieser Driver erfüllt zwei Zwecke:
- Die Steuerungssignale vom Raspberry Pi in Bezug auf Stromstärke und Spannung zu verstärken
- Den Raspberry Pi vor der hohen Stromstärke und Spannung zu schützen, die zur Stromversorgung des Schrittmotors verwendet werden.
Es gibt zahlreiche Hardware-Driver, die zur Steuerung von Schrittmotoren verwendet werden können. Einer der am häufigsten verwendeten Hardware-Driver zur Steuerung von Schrittmotoren ist der L298N Driver.
Über den L298N Driver
Ein L298N Driver kann verwendet werden, um zwei DC-Motoren oder einen Schrittmotor zu steuern. In dieser Anleitung werden wir entdecken, wie Sie ihn zur Regulierung des Schrittmotors verwenden.
L298N Driver Pinbelegung

Der L298N Driver hat 11 Pins und drei Jumper:
- VCC Pin: Dieser versorgt den Motor mit Strom und kann zwischen 5 und 35V liegen.
- GND Pin: Dies ist ein gemeinsamer Masse-Pin, der mit GND (0V) verbunden werden muss.
- 5V Pin: Dieser versorgt das L298N Modul mit Strom und kann mit 5V vom Raspberry Pi versorgt werden.
- IN1, IN2, IN3, IN4 Pins: Diese werden mit den Pins des Raspberry Pi verbunden, um das Steuerungssignal zur Kontrolle des Schrittmotors zu erhalten.
- OUT1, OUT2, OUT3, OUT4 Pins: Diese werden mit dem Schrittmotor verbunden.
- ENA, ENB Jumper: Diese werden verwendet, um den Schrittmotor zu aktivieren, und sowohl die ENA- als auch ENB-Jumper müssen gesetzt sein.
- 5V-EN Jumper: Wenn dieser gesetzt bleibt, wird die Stromversorgung für das L298N Modul von VCC bezogen und nichts muss mit dem 5V Pin verbunden werden. Wenn der 5V-EN Jumper entfernt wird, muss das L298N Modul über einen 5V Pin mit Strom versorgt werden.
Der L298N Driver hat zwei Eingangsspannungen:
- Eine für den Schrittmotor (VCC und GND Pins): im Bereich von 5 bis 35V.
- Eine für den internen Betrieb des Moduls (5V und GND Pins): von 5 bis 7V. Wenn der 5V-EN Jumper gesetzt bleibt, muss dieser Pin nicht verbunden werden.
Schaltdiagramm

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:

※ Notiz:
- Lassen Sie die drei Jumper auf dem L298N Modul gesetzt, wenn die Stromversorgung des Motors 12V oder weniger beträgt.
- Die Pins an Schrittmotoren können sich zwischen den Herstellern unterscheiden. Beziehen Sie sich auf die nachstehende Tabelle für die korrekte Verkabelung.
Verkabelungstabelle zwischen Raspberry Pi und L298N Driver
| Raspberry Pi Pins | L298N Pins |
|---|---|
| 12 | IN1 |
| 16 | IN2 |
| 20 | IN3 |
| 21 | IN4 |
Verkabelungstabelle zwischen L298N Driver und Schrittmotor
Wichtig!: Achten Sie nicht auf die Reihenfolge der Kabel im Schrittmotor im oben gezeigten Schaltdiagramm. Es ist nur eine Illustration. Die Pin-Anordnung bei Schrittmotoren kann je nach Hersteller unterschiedlich sein. Stellen Sie sicher, dass Ihre Verkabelung der nachstehenden Tabelle folgt.
| L298N Pins | Schrittmotor Pins | Oder | Oder |
|---|---|---|---|
| OUT1 | A+ | A | A |
| OUT2 | A- | A | C |
| OUT3 | B+ | B | B |
| OUT4 | B- | B | D |
Vor dem Kauf eines Schrittmotors empfehlen wir, dass Sie das Datenblatt, die Spezifikation oder das Handbuch für den Schrittmotor überprüfen. Stellen Sie sicher, dass es die Korrelation zwischen der Farbe und dem Namen des Pins enthält. Zum Beispiel hat dieser Schrittmotor die folgende Zuordnung, wie im Bild unten gezeigt:

In Anbetracht der Zuordnung ist die Verkabelungstabelle wie folgt:
| L298N Pins | Schrittmotor Pins | Kabelfarbe |
|---|---|---|
| OUT1 | A | schwarzes Kabel |
| OUT2 | C | grünes Kabel |
| OUT3 | B | rotes Kabel |
| OUT4 | D | blaues Kabel |
※ Notiz:
In den Verkabelungstabellen zwischen dem Schrittmotor und L298N Driver gibt es weitere Möglichkeiten für die Verkabelung. Wir können OUT1 mit OUT2, OUT3 mit OUT4 tauschen. Wenn wir dies jedoch tun, kann sich die Drehrichtung der Motoren ändern (von im Uhrzeigersinn zu gegen den Uhrzeigersinn und umgekehrt).
Raspberry Pi Code - Schrittmotor Code
Der folgende Code:
- Lässt den Motor eine Umdrehung im Uhrzeigersinn drehen
- Pausiert den Motor für 5 Sekunden
- Lässt den Motor eine Umdrehung gegen den Uhrzeigersinn drehen
- Hält den Motor für 5 Sekunden an
- Wiederholt den Prozess endlos
Schnelle Schritte
- Stellen Sie sicher, dass Sie Raspbian oder ein anderes Raspberry Pi-kompatibles Betriebssystem auf Ihrem Pi installiert haben.
- 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 einige Bibliotheken installieren müssen.
- Wenn Sie Raspberry Pi zum ersten Mal verwenden, siehe wie Sie Raspberry Pi einrichten
- Verbinden Sie Ihren PC über 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 über SSH mit Raspberry Pi verbinden.
- Stellen Sie sicher, dass Sie die RPi.GPIO Bibliothek installiert haben. Falls nicht, installieren Sie sie mit dem folgenden Befehl:
- Erstellen Sie eine Python-Skriptdatei stepper.py und fügen Sie 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:
Das Skript läuft in einer Endlosschleife kontinuierlich, bis Sie Ctrl + C im Terminal drücken.
Durch Ändern des Wertes der delay Variable im Code können Sie die Geschwindigkeit des Schrittmotors ändern.
Sie werden folgendes beobachten:
- Der Schrittmotor wird eine Umdrehung im Uhrzeigersinn drehen.
- Der Schrittmotor wird 5 Sekunden pausieren.
- Der Schrittmotor wird dann eine Umdrehung gegen den Uhrzeigersinn drehen.
- Der Schrittmotor wird weitere 5 Sekunden pausieren.
- Dieser Prozess wird wiederholt.
Code-Erklärung
Schauen Sie sich die zeilenweise Erklärung in den Kommentaren des Quellcodes an!
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.