ESP8266 - DRV8825 Schrittmotortreiber
In diesem Leitfaden lernen wir den DRV8825-Schrittmotortreiber kennen und wie man ihn mit dem ESP8266 verwendet, um den Schrittmotor zu betreiben. Hier sind die Details, die wir behandeln werden:
- Was das DRV8825-Schrittmotortreiber-Modul ist
- Wie das DRV8825-Schrittmotortreiber-Modul funktioniert
- Verbindung des DRV8825-Schrittmotortreiber-Moduls mit dem ESP8266 und einem Schrittmotor
- Programmierung des ESP8266 zur Steuerung eines Schrittmotors mit dem DRV8825-Modul

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 DRV8825-Schrittmotortreiber
Der DRV8825 ist ein beliebtes Modul zur Steuerung bipolare Schrittmotoren, das häufig in CNC-Maschinen, 3D-Druckern und Robotern eingesetzt wird. Es verfügt über eine einstellbare Stromregelung, Schutz gegen Überhitzung und bietet mehrere Mikroschritt-Modi wie Vollschritt, Halbschritt und Bruchteile bis zu 1/32 Schritt. Dieses Modul kann bei ausreichender Kühlung bis zu 2,2 A pro Spule bewältigen und arbeitet in einem breiten Spannungsbereich von 8,2 V bis 45 V, wodurch verschiedene Schrittmotoren unterstützt werden.
Um Konzepte des Schrittmotors wie Vollschritt, Mikroschritt, unipolarer Schrittmotor und bipolarer Schrittmotor zu verstehen, schauen Sie sich den ESP8266 - Schrittmotor Leitfaden an.
Es ist erstaunlich, dass man nur zwei ESP8266-Pins benötigt, um zu steuern, wie schnell und in welche Richtung sich ein bipolarer Schrittmotor, wie der NEMA 17, bewegt.
DRV8825-Schrittmotor-Treiber Pinbelegung

Der DRV8825-Schrittmotortreiber verfügt über 16 Pins. Hier ist eine gängige Anordnung der Pins am DRV8825-Schrittmotortreiber-Modul. Beachten Sie, dass einige Versionen des Moduls die Pins möglicherweise etwas anders benennen, aber ihre Funktionen bleiben unverändert.
Pin Name | Description |
---|---|
VMOT | Motor power supply (8.2 V to 45 V). This powers the stepper motor. |
GND (for Motor) | Ground reference for the motor power supply. Connect this pin to the GND of the motor power supply |
2B, 2A | Outputs to Coil B of the stepper motor. |
1A, 1B | Outputs to Coil A of the stepper motor. |
FAULT | Fault Detection Pin. This is an output pin that drives LOW whenever the H-bridge FETs are disabled as the result of over-current protection or thermal shutdown. |
GND (for Logic) | Ground reference for the logic signals. Connect this pin to the GND of ESP8266 |
ENABLE | Active-Low pin to enable/disable the motor outputs. LOW = Enabled, HIGH = Disabled. |
M1, M2, M3 | Microstepping resolution selector pins (see table below). |
RESET | Active-Low reset pin - pulling this pin LOW resets the driver. |
SLEEP | Active-Low sleep pin - pulling this pin LOW puts the driver into low-power sleep mode. |
STEP | Step input - a rising edge on this pin advances the motor by one step (or one microstep, depending on microstepping setting). |
DIR | Direction input - sets the rotation direction of the stepper motor. |
Außerdem gibt es einen winzigen eingebauten Drehknopf, den Sie drehen können, um die Stromregelung anzupassen, was dazu beiträgt, dass der Schrittmotor und der Treiber nicht zu heiß werden.
Kurz gesagt, werden diese 16 Pins basierend auf ihrer Verwendung in Typen gruppiert:
- Drähte, die mit dem Schrittmotor verbunden sind: 1A, 1B, 2A, 2B.
- Drähte, die mit dem ESP8266 zur Steuerung des Treibers verbunden sind: ENABLE, M1, M2, M3, RESET, SLEEP.
- Drähte, die mit dem ESP8266 zur Steuerung der Drehungsrichtung und -geschwindigkeit des Motors verbunden sind: DIR, STEP.
- Draht zum Senden von Feedback an den ESP8266: FAULT.
- Drähte, die mit der Stromversorgung des Motors verbunden sind: VMOT, GND (Motorstromversorgung).
- Draht zum Erdungspunkt des ESP8266: GND (Logik-Erde).
Die DRV8825-Einheit benötigt keine separate Stromversorgung vom ESP8266, da sie ihre Stromversorgung direkt vom Netzteil des Motors über ihren integrierten 3,3-V-Spannungsregler erhält. Allerdings müssen Sie den Masseanschluss des ESP8266 mit dem GND (Logik) Pin des DRV8825 verbinden, damit es korrekt funktioniert und der Massepegel bei beiden Geräten derselbe ist.
Mikroschritt-Konfiguration
Der DRV8825-Treiber ermöglicht Mikroschritte, indem jeder Schritt in kleinere Teile aufgeteilt wird. Er erreicht dies, indem er unterschiedliche Strommengen an die Motorspulen sendet.
Zum Beispiel ein NEMA-17-Motor mit einem Schrittwinkel von 1,8° (200 Schritte pro Umdrehung):
- Vollschritt-Modus: 200 Schritte pro Umdrehung
- Halbschritt-Modus: 400 Schritte pro Umdrehung
- Viertelschritt-Modus: 800 Schritte pro Umdrehung
- Achtelschritt-Modus: 1600 Schritte pro Umdrehung
- Sechzehntelschritt-Modus: 3200 Schritte pro Umdrehung
- 32-Schritt-Modus: 6400 Schritte pro Umdrehung
Wenn Sie die Mikro-Schrittauflösung erhöhen, läuft der Motor gleichmäßiger und genauer, aber er benötigt mehr Schritte pro Umdrehung. Wenn Sie dieselbe Schrittimpulsrate beibehalten, dauert jede Umdrehung länger, wodurch der Motor langsamer wird.
Wenn Ihr Mikrocontroller die Impulse schnell genug senden kann, um die höhere Schrittzahl zu erreichen, können Sie die Geschwindigkeit beibehalten oder sogar erhöhen. Die eigentliche Grenze hängt davon ab, wie schnell sowohl der Treiber als auch Ihr Mikrocontroller diese Impulse verarbeiten können, ohne Schritte zu verpassen.
DRV8825 Mikroschritt-Auswahl-Pins
Der DRV8825 hat drei Eingänge zur Wahl der Mikroschrittauflösung, die Pins M0, M1 und M2 heißen. Sie können diese Pins bei bestimmten Logikpegeln setzen, um aus sechs verschiedenen Mikroschrittauflösungen auszuwählen:
M0 Pin | M1 Pi | M2 Pi | Microstep Resolution |
---|---|---|---|
Low | Low | Low | Full step |
High | Low | Low | Half step |
Low | High | Low | 1/4 step |
High | High | Low | 1/8 step |
Low | Low | High | 1/16 step |
High | Low | High | 1/32 step |
Low | High | High | 1/32 step |
High | High | High | 1/32 step |
Diese kleinen Einstellpins verfügen über integrierte Widerstände, die sie normalerweise in einen LOW-Zustand ziehen. Wenn sie nicht verbunden sind, läuft der Motor im Vollschritt-Modus.
Wie es funktioniert
Um einen Schrittmotor mit dem DRV8825-Modul zu betreiben, benötigen Sie mindestens zwei ESP8266-Pins: einen für den DIR Pin und einen weiteren für den STEP Pin. Der DRV8825 verarbeitet diese Signale vom ESP8266, um den Schrittmotor präzise zu bewegen.
- STEP-Pin: Jedes Signal am STEP-Pin bewegt den Motor einen winzigen Schritt oder einen vollständigen Schritt, je nach Ihren Einstellungen.
- DIR-Pin: Bestimmt, in welche Richtung der Motor dreht.
Der Treiber verwendet diese Signale und seine Einstellungen, um Steuersignale an den Motor über die Pins 1A, 1B, 2A und 2B zu senden.
Sie können außerdem zusätzliche Pins am DRV8825-Modul (ENABLE, M1, M2, M3, RESET, SLEEP) auf drei Arten konfigurieren:
- Lassen Sie sie getrennt, damit der Treiber grundlegende Einstellungen verwenden kann.
- Schließen Sie sie direkt an GND oder VCC an, um einen konstanten Modus festzulegen.
- Verknüpfen Sie sie mit den Pins des ESP8266, um diese Funktionen über Ihren Code zu steuern.
Schaltplan zwischen ESP8266, DRV8825-Modul und Schrittmotor
Das untenstehende Diagramm zeigt die grundlegenden Verbindungen, die zwischen dem ESP8266, dem DRV8825-Modul und dem Schrittmotor erforderlich sind. Mit dieser Anordnung arbeitet der DRV8825-Treiber im Standardmodus (Vollschritt).

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.
Weitere Informationen finden Sie unter ESP8266-Pinbelegung und wie man ESP8266 und andere Komponenten mit Strom versorgt.
Auf eine detaillierte Weise:
- VMOT: Schließe an die Stromquelle des Motors an, z. B. 12V.
- GND (für Motor): Mit dem Masseanschluss der Motorstromversorgung verbinden.
- 1A, 1B, 2A, 2B: An die Spulen des Schrittmotors anschließen.
- STEP: Mit dem digitalen Pin D4 am ESP8266 verbinden.
- DIR: Mit dem digitalen Pin D3 am ESP8266 verbinden.
- GND (für Logik): Mit dem GND-Pin des ESP8266 verbinden.
- Andere Pins: Nicht anschließen.
ESP8266-Code
Schnelle Schritte
Um mit dem ESP8266 in der Arduino-IDE zu beginnen, befolgen Sie diese Schritte:
- Schau dir das Tutorial zur Einrichtung der Umgebung für ESP8266 in der Arduino IDE an, falls du ESP8266 zum ersten Mal verwendest.
- Verbinde die Bauteile wie im Diagramm gezeigt.
- Verbinde das ESP8266-Board über ein USB-Kabel mit deinem Computer.
- Öffne die Arduino IDE auf deinem Computer.
- Wähle das richtige ESP8266-Board aus, z. B. NodeMCU 1.0 (ESP-12E Module), und den entsprechenden COM-Port.
- Kopiere den obigen Code und öffne ihn in der ESP8266-Software.
- Klicke auf das Bibliotheken-Symbol auf der linken Seite der ESP8266-Schnittstelle.
- Tippe "AccelStepper" in das Suchfeld ein und suche nach der AccelStepper-Bibliothek von Mike McCauley.
- Drücke auf die Install-Schaltfläche, um die AccelStepper-Bibliothek hinzuzufügen.

- Kopiere den obigen Code und öffne ihn in der Arduino IDE
- Klicke auf die Hochladen-Schaltfläche in der Arduino IDE, um den Code an den ESP8266 zu senden
- Du wirst sehen, wie sich der Motor hin und her bewegt
Wenn Sie den Motor im Vollschrittbetrieb verwenden, ist seine Bewegung möglicherweise nicht sehr gleichmäßig, was normal ist. Um die Bewegung zu glätten, schalten Sie den Mikroschrittbetrieb ein, indem Sie die Pins M1, M2 und M3 setzen.
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.