ESP32 - DRV8825-Schrittmotortreiber
In diesem Leitfaden werden wir den DRV8825-Schrittmotortreiber erkunden und herausfinden, wie man ihn mit einem ESP32 betreibt, um den Schrittmotor zu steuern. Wir behandeln die folgenden Details:
- Was ist das DRV8825-Schrittmotortreiber-Modul
- Wie der DRV8825-Schrittmotortreiber funktioniert
- Wie man den DRV8825-Schrittmotortreiber mit dem ESP32 und einem Schrittmotor verbindet
- Wie man den ESP32 programmiert, um den Schrittmotor mithilfe des DRV8825-Moduls zu steuern

Erforderliche Hardware
Oder Sie können die folgenden Kits kaufen:
1 | × | DIYables ESP32 Starter-Kit (ESP32 enthalten) | |
1 | × | DIYables Sensor-Kit (30 Sensoren/Displays) | |
1 | × | DIYables Sensor-Kit (18 Sensoren/Displays) |
Über den DRV8825-Schrittmotor-Treiber
Der DRV8825 ist ein beliebter Treiber für Schrittmotoren, der zur Steuerung bipolare Schrittmotoren in Geräten wie CNC-Maschinen, 3D-Druckern und Robotern verwendet wird. Er bietet Funktionen wie eine einstellbare Strombegrenzung, Schutz vor Überhitzung und verschiedene Mikroschritt-Optionen wie Vollschritt, 1/2, 1/4, 1/8, 1/16 und 1/32. Dieses Modul kann bei ausreichender Kühlung pro Spule bis zu 2,2 A bewältigen und arbeitet über einen breiten Spannungsbereich von 8,2 V bis 45 V, was es vielseitig für verschiedene Schrittmotoren macht.
Um Konzepte rund um Schrittmotoren wie Vollschritte, Mikroschritte, unipolare Schrittmotoren und bipolare Schrittmotoren zu verstehen, schauen Sie sich den ESP32 - Stepper Motor Leitfaden an.
Es ist beeindruckend, dass die Steuerung der Geschwindigkeit und Richtung eines bipolaren Schrittmotors, wie dem NEMA-17, nur zwei ESP32-Pins benötigt.
DRV8825 Schrittmotor-Treiber Pinbelegung

Der DRV8825-Schrittmotor-Treiber verfügt über 16 Pins. Hier ist ein gängiges Layout für das DRV8825-Schrittmotor-Treiber-Modul. Beachten Sie jedoch, dass einige Versionen des Moduls die Pins möglicherweise unterschiedlich benennen, aber ihre Funktionen sind dieselben.
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 ESP32 |
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, mit dem man die Strombegrenzung einstellen kann, 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 diese Typen gruppiert:
- Pins, die mit dem Schrittmotor verbunden sind: 1A, 1B, 2A, 2B.
- Pins, die mit dem ESP32 zur Treiberverwaltung verbunden sind: ENABLE, M1, M2, M3, RESET, SLEEP.
- Pins, die mit dem ESP32 zur Steuerung der Drehrichtung und Drehzahl des Motors verbunden sind: DIR, STEP.
- Pin zur Rückmeldung an den ESP32: FAULT.
- Pins, die mit der Stromversorgung des Motors verbunden sind: VMOT, GND (Motor-Strommasse).
- Pin, der mit der Masse des ESP32 verbunden ist: GND (Logikmasse).
Das DRV8825-Modul benötigt keine Logikstromversorgung vom ESP32-Board, da es über den integrierten 3,3-V-Spannungsregler aus der Motorversorgung gespeist wird. Nichtsdestotrotz ist es wichtig, die Masse des ESP32 mit dem GND (Logik)-Pin des DRV8825-Moduls zu verbinden, um sicherzustellen, dass es korrekt funktioniert und eine gemeinsame Masse als Bezug hat.
Mikroschritt-Konfiguration
Der DRV8825-Treiber ermöglicht Mikroschritte, indem jeder Schritt in kleinere Teile unterteilt wird. Dies geschieht, indem unterschiedliche Stromstärken an die Spulen des Motors gesendet werden.
Zum Beispiel ein NEMA-17-Motor mit einem Schrittwinkel von 1,8 Grad (200 Schritte pro Umdrehung):
- Vollschrittmodus: 200 Schritte pro Umdrehung
- Halbschrittmodus: 400 Schritte pro Umdrehung
- Viertelschrittmodus: 800 Schritte pro Umdrehung
- Achtelschrittmodus: 1600 Schritte pro Umdrehung
- Sechzehnschrittmodus: 3200 Schritte pro Umdrehung
- 32-Schritt-Modus: 6400 Schritte pro Umdrehung
Je höher Sie den Mikro-Schritt-Modus einstellen, desto glatter und genauer läuft der Motor, aber er benötigt mehr Schritte für eine volle Umdrehung. Wenn Sie dieselbe Schrittimpulsrate beibehalten (Impuls pro Sekunde), benötigt jede volle Umdrehung mehr Zeit, wodurch der Motor langsamer wird.
Aber wenn Ihr Mikrocontroller Impulse schnell genug senden kann, um die höhere Schrittzahl zu erreichen, können Sie die Geschwindigkeit beibehalten oder sogar erhöhen. Die reale 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-Auswahlpins
Der DRV8825 verfügt über drei Eingänge zur Auswahl der Mikroschrittauflösung: M0, M1 und M2-Pins. Durch das Einstellen dieser Pins auf bestimmte logische Pegel können Sie aus sechs Mikroschrittauflösungen wä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 Mikro-Schritt-Auswahlpins verfügen über integrierte Pull-Down-Widerstände, die sie standardmäßig im Niedrigzustand halten. Falls sie nicht verbunden sind, läuft der Motor im Vollschrittmodus.
Wie es funktioniert
Um einen Schrittmotor mit dem DRV8825-Modul zu betreiben, benötigen Sie zwei ESP32-Pins: einen für den DIR-Pin und einen für den STEP-Pin. Der DRV8825 verarbeitet diese Signale vom ESP32, um den Schrittmotor präzise zu bewegen.
- STEP-Pin: Jedes Signal am STEP-Pin bewegt den Motor je nach Ihrer Einstellung einen Mikroschritt oder einen Vollschritt nach vorn.
- DIR-Pin: Bestimmt, in welche Richtung der Motor dreht.
Der Treiber verwendet diese Signale und seine eigenen Einstellungen, um Steuerbefehle an den Motor über die Pins 1A, 1B, 2A und 2B zu senden.
Sie können auch zusätzliche Pins am DRV8825-Modul (ENABLE, M1, M2, M3, RESET, SLEEP) auf drei Arten einrichten:
- Halte sie getrennt, damit der Treiber die Standardeinstellungen verwenden kann.
- Verbinde sie direkt mit GND oder VCC, um einen Dauerbetriebsmodus zu ermöglichen.
- Verknüpfe sie mit ESP32-Pins, um diese Funktionen durch deine Programmierung zu steuern.
Verdrahtungsdiagramm zwischen ESP32, DRV8825-Modul und Schrittmotor
Das unten gezeigte Diagramm zeigt die grundlegenden Verbindungen, die zwischen dem ESP32, dem DRV8825-Modul und dem Schrittmotor erforderlich sind. In dieser Anordnung arbeitet der DRV8825-Treiber im Standardmodus (Vollschritt).

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.
Wenn Sie nicht wissen, wie Sie ESP32 und andere Komponenten mit Strom versorgen, finden Sie Anleitungen im folgenden Tutorial: Wie man ESP32 mit Strom versorgt.
Im Detail:
- VMOT: Mit der Stromquelle des Motors verbinden (z. B. 12V).
- GND (für den Motor): Mit dem Masseanschluss der Stromversorgung des Motors verbinden.
- 1A, 1B, 2A, 2B: Diese an die Spulen des Schrittmotors anschließen.
- STEP: An den digitalen Pin D4 am ESP32 anschließen.
- DIR: An den digitalen Pin D3 am ESP32 anschließen.
- GND (für Logik): An den GND-Pin des ESP32 anschließen.
- Andere Pins: Nicht anschließen.
ESP32-Quellcode
Schnelle Schritte
- Falls dies das erste Mal ist, dass Sie ESP32 verwenden, sehen Sie sich wie man die Umgebung für ESP32 in der Arduino IDE einrichtet an.
- Verbinden Sie die Verkabelung gemäß dem obigen Bild.
- Verbinden Sie das ESP32-Board über ein USB-Kabel mit Ihrem PC.
- Öffnen Sie die Arduino IDE auf Ihrem PC.
- Wählen Sie das richtige ESP32-Board (z. B. ESP32 Dev Module) und den COM-Port.
- Kopieren Sie den obigen Code und öffnen Sie ihn in der Arduino IDE.
- Gehen Sie zum Bibliotheken-Bereich auf der linken Seite der Arduino IDE.
- Suchen Sie nach "AccelStepper", und finden Sie dann die AccelStepper-Bibliothek von Mike McCauley.
- Drücken Sie die Installieren-Schaltfläche, um die AccelStepper-Bibliothek hinzuzufügen.

- Kopieren Sie den Code und öffnen Sie ihn in der Arduino IDE
- Klicken Sie in der Arduino IDE auf die Hochladen-Schaltfläche, um den Code an Ihren ESP32 zu senden
- Sie werden sehen, wie sich der Motor hin- und herbewegt
Tipp: Wenn der Motor im Vollschritt-Modus läuft, ist seine Bewegung möglicherweise nicht ganz glatt, aber das ist normal. Für eine glattere Bewegung schalten Sie Mikro-Schritt-Betrieb 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.