Arduino Nano ESP32 - DRV8825-Schrittmotortreiber
In diesem Leitfaden werden wir den DRV8825-Schrittmotor-Treiber untersuchen und herausfinden, wie man ihn mit dem Arduino Nano ESP32 betreibt, um den Schrittmotor zu steuern. Genauer gesagt, werden wir Folgendes behandeln:
- Was ist das DRV8825-Schrittmotortreiber-Modul?
- Wie funktioniert das DRV8825-Schrittmotortreiber-Modul?
- Wie verbindet man den DRV8825-Schrittmotortreiber mit dem Arduino Nano ESP32 und einem Schrittmotor?
- Wie schreibt man ein Programm für den Arduino Nano ESP32, um einen Schrittmotor mit dem DRV8825-Modul 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 DRV8825-Schrittmotor-Treiber
Der DRV8825 ist ein beliebtes Modul, das zur Steuerung bipolarer Schrittmotoren verwendet wird und häufig in CNC-Maschinen, 3D-Druckern und Robotern zu finden ist. Es verfügt über eine einstellbare Strombegrenzung, einen Überhitzungsschutz und Optionen für verschiedene Schrittmodi, von Vollschritt bis hin zu feinen 1/32-Schritten. Es kann bei ausreichender Kühlung pro Spule des Motors bis zu 2,2 A liefern und arbeitet in einem Spannungsbereich von 8,2 V bis 45 V, wodurch es verschiedene Schrittmotoren unterstützt.
Um Konzepte von Schrittmotoren wie Vollschritt, Mikroschritte, unipolarer Schrittmotor und bipolarer Schrittmotor zu verstehen, schauen Sie sich die Anleitung Arduino Nano ESP32 - Stepper Motor an.
Mit nur zwei Pins an einem Arduino Nano ESP32 lässt sich die Geschwindigkeit und Richtung eines NEMA-17-bipolaren Schrittmotors problemlos steuern.
DRV8825-Schrittmotor-Treiber-Pinbelegung

Der DRV8825-Schrittmotortreiber verfügt über 16 Pins. Hier ist eine gängige Belegung der Pins am DRV8825-Modul. Beachten Sie, dass einige Versionen die Pins möglicherweise etwas anders benennen, aber ihre Funktionen bleiben gleich.
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 Arduino Nano 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 liegt ein kleiner, verstellbarer Drehknopf bei, mit dem Sie die Strombegrenzung einstellen können, um zu verhindern, dass der Schrittmotor und der Treiber zu heiß werden.
Zusammenfassend lassen sich diese 16 Pins basierend auf ihrer Funktion in die folgenden Kategorien einteilen:
- Drähte, die mit dem Schrittmotor verbunden sind: 1A, 1B, 2A, 2B.
- Drähte, die mit dem Arduino Nano ESP32 zur Ansteuerung des Treibers verbunden sind: ENABLE, M1, M2, M3, RESET, SLEEP.
- Drähte, die mit dem Arduino Nano ESP32 zur Steuerung der Richtung und Geschwindigkeit des Motors verbunden sind: DIR, STEP.
- Leitung zum Senden von Fehlersignalen an den Arduino Nano ESP32: FAULT.
- Drähte, die mit der Stromversorgung des Motors verbunden sind: VMOT, GND (Stromversorgung des Motors).
- Leitung, die mit der Masse des Arduino Nano ESP32 verbunden ist: GND (logische Masse).
Das DRV8825-Modul benötigt für seine Logik keine Stromversorgung vom Arduino Nano ESP32-Board, da es die Versorgung des Motors über seinen eingebauten 3,3-V-Spannungsregler bezieht. Trotzdem müssen Sie den GND des Arduino Nano ESP32 mit dem GND (logic)-Pin des DRV8825 verbinden, um sicherzustellen, dass es korrekt funktioniert und eine gemeinsame Masse teilt.
Mikroschritt-Konfiguration
Der DRV8825-Treiber ermöglicht Mikroschrittsteuerung, indem jeder Schritt in kleinere Teile unterteilt wird. Dies geschieht durch das Anlegen unterschiedlicher Stromstärken an die Motorwicklungen.
Zum Beispiel ein NEMA-17-Motor mit einem 1,8-Grad-Schrittwinkel (200 Schritte pro Umdrehung):
- Vollschrittmodus: 200 Schritte pro Umdrehung
- Halbschrittmodus: 400 Schritte pro Umdrehung
- Viertelschrittmodus: 800 Schritte pro Umdrehung
- Achtelschrittmodus: 1600 Schritte pro Umdrehung
- Sechzehntelschrittmodus: 3200 Schritte pro Umdrehung
- Zweiunddreißigstel-Schrittmodus: 6400 Schritte pro Umdrehung
Wenn Sie die Mikroschritte erhöhen, läuft der Motor gleichmäßiger und präziser, aber er benötigt mehr Schritte pro vollständiger Umdrehung. Behalten Sie die Schrittimpulsfrequenz gleich, wird jede vollständige Umdrehung länger dauern, wodurch der Motor langsamer wird.
Wenn Ihr Mikrocontroller Impulse schnell genug senden kann, um eine 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 Schrittmotortreiber als auch Ihr Mikrocontroller diese Impulse verarbeiten können, ohne Schritte zu verpassen.
DRV8825 Mikroschritt-Auswahlpins
Der DRV8825 enthält 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 auswä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 Schritt-Auswahl-Pins verfügen über integrierte Pulldown-Widerstände, die sie naturgemäß auf LOW-Pegel halten. Wenn Sie sie nicht anschließen, läuft der Motor im Vollschrittmodus.
Wie es funktioniert
Um einen Schrittmotor mit dem DRV8825-Modul zu betreiben, benötigen Sie mindestens zwei Pins des Arduino Nano ESP32: einen für den DIR-Pin und einen weiteren für den STEP-Pin. Der DRV8825 decodiert diese Signale vom Arduino Nano ESP32, um den Schrittmotor präzise zu bewegen.
- STEP-Pin: Jeder Impuls am STEP-Pin bewegt den Motor um einen winzigen Schritt (oder einen ganzen Schritt, abhängig von der Mikro-Schritt-Einstellung).
- DIR-Pin: Legt fest, in welche Richtung sich der Motor dreht.
Der Treiber verwendet diese Signale und seine eigenen Einstellungen, um Steuerausgänge über die Pins 1A, 1B, 2A und 2B an den Motor zu senden.
Sie können auch zusätzliche Pins am DRV8825-Modul (ENABLE, M1, M2, M3, RESET, SLEEP) auf eine von drei Arten einrichten:
- Schließe sie nicht so an, dass der Treiber die Standardeinstellungen verwendet.
- Schließe sie direkt an GND oder VCC an, um einen stabilen Betrieb zu gewährleisten.
- Verbinde sie mit den Pins des Arduino Nano ESP32, um ihre Funktionen mit deinem Code zu steuern.
Verdrahtungsdiagramm zwischen Arduino Nano ESP32, DRV8825-Modul und Schrittmotor
Das nachstehende Diagramm zeigt die grundlegenden Verbindungen, die zwischen dem Arduino Nano ESP32, dem DRV8825-Modul und dem Schrittmotor erforderlich sind. In dieser Konfiguration arbeitet der DRV8825-Treiber im Standardmodus (Vollschritt).

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.
Im Detail:
- VMOT: Anschluss an die Motorstromversorgung (z. B. 12 V).
- GND (für Motor): Verbinde mit der Masse der Motorstromversorgung.
- 1A, 1B, 2A, 2B: Mit den Spulen des Schrittmotors verbinden.
- STEP: Mit dem digitalen Pin D4 des Arduino Nano ESP32 verbinden.
- DIR: Mit dem digitalen Pin D3 des Arduino Nano ESP32 verbinden.
- GND (für Logik): Mit dem GND-Pin des Arduino Nano ESP32 verbinden.
- Andere Pins: offen lassen.
Arduino Nano ESP32-Code
Schnelle Schritte
Um mit dem Arduino Nano ESP32 zu beginnen, folgen Sie diesen Schritten:
- Wenn Sie neu beim Arduino Nano ESP32 sind, lesen Sie das Tutorial zu wie man die Umgebung für Arduino Nano ESP32 in der Arduino IDE einrichtet.
- Verdrahten Sie die Bauteile gemäß dem bereitgestellten Diagramm.
- Schließen Sie das Arduino Nano ESP32-Board über ein USB-Kabel an Ihren Computer an.
- Starten Sie die Arduino IDE auf Ihrem Computer.
- Wählen Sie das Arduino Nano ESP32-Board und den entsprechenden COM-Port aus.
- Kopieren Sie den Code und öffnen Sie ihn in der Arduino IDE.
- Gehen Sie zum Bibliotheken-Symbol auf der linken Seite der Arduino IDE.
- Geben Sie “AccelStepper” ein, um zu suchen, 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 im Arduino IDE auf die Schaltfläche Hochladen, um den Code an den Arduino Nano ESP32 zu senden.
- Sie werden sehen, wie sich der Motor hin und her dreht.
Beim Betrieb des Motors im Vollschrittmodus ist seine Bewegung möglicherweise nicht besonders glatt, was normal ist. Um eine glattere Bewegung zu erreichen, schalten Sie Mikroschritte ein, indem Sie die Pins M1, M2 und M3 konfigurieren.
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.