Arduino - DRV8825 Schrittmotortreiber
In diesem Tutorial lernen wir den DRV8825-Schrittmotortreiber kennen und wie man ihn mit Arduino verwendet, um den Schrittmotor zu steuern. Im Detail werden wir Folgendes lernen:
- Was ist das DRV8825-Schrittmotortreiber-Modul?
- Wie funktioniert das DRV8825-Schrittmotortreiber-Modul?
- Wie verbindet man das DRV8825-Schrittmotortreiber-Modul mit Arduino und einem Schrittmotor?
- Wie programmiert man Arduino, um den Schrittmotor über das DRV8825-Modul zu steuern?

Erforderliche Hardware
Oder Sie können die folgenden Kits kaufen:
1 | × | DIYables STEM V3 Starter-Kit (Arduino enthalten) | |
1 | × | DIYables Sensor-Kit (30 Sensoren/Displays) | |
1 | × | DIYables Sensor-Kit (18 Sensoren/Displays) |
Über den DRV8825-Schrittmotortreiber
Der DRV8825 ist ein Treiber-Modul für bipolare Schrittmotoren, das häufig zur Steuerung in Anwendungen wie CNC-Maschinen, 3D-Druckern und Robotik verwendet wird. Es verfügt über eine einstellbare Strombegrenzung, Übertemperaturschutz und sechsstufige Mikroschrittoptionen, einschließlich Vollschritt, 1/2, 1/4, 1/8, 1/16 und 1/32. Das Modul kann bei ordnungsgemäßer Kühlung bis zu 2,2 A pro Spule bewältigen und arbeitet in einem breiten Spannungsbereich von 8,2 V bis 45 V, was es für eine Vielzahl von Schrittmotoren geeignet macht.
Um sich über Konzepte des Schrittmotors zu informieren, wie z. B. Vollschrittbetrieb, Mikroschritte, unipolare und bipolare Schrittmotoren, lesen Sie das Arduino - Stepper Motor Tutorial.
Es ist beeindruckend, dass die Steuerung der Geschwindigkeit und Richtung eines bipolaren Schrittmotors, wie der NEMA 17, nur zwei Pins des Arduino erfordert.
DRV8825-Schrittmotortreiber Pinbelegung

Der DRV8825-Schrittmotor-Treiber hat 16 Pins. Nachfolgend finden Sie eine typische Pinbelegung des DRV8825-Schrittmotor-Treibermoduls. Beachten Sie, dass einige Modulvarianten die Pins möglicherweise leicht unterschiedlich kennzeichnen, die Funktionalität bleibt jedoch 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 |
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. |
Zusätzlich gibt es ein kleines Potentiometer auf dem Board, das Sie einstellen können, um die Strombegrenzung festzulegen, wodurch der Schrittmotor und der Treiber vor Überhitzung geschützt werden.
Zusammenfassend sind diese 16 Pins je nach Funktion in die folgenden Kategorien eingeteilt:
- Anschlüsse, die mit dem Schrittmotor verbunden sind: 1A, 1B, 2A, 2B.
- Anschlüsse, die zur Treibersteuerung mit dem Arduino verbunden sind: ENABLE, M1, M2, M3, RESET, SLEEP.
- Anschlüsse, die für die Richtungs- und Geschwindigkeitssteuerung des Motors mit dem Arduino verbunden sind: DIR, STEP.
- Pin für Feedback an den Arduino: FAULT.
- Anschlüsse, die an die Motorstromversorgung angeschlossen sind: VMOT, GND (Motorstromversorgung).
- Pin, der mit der Arduino-Masse verbunden ist: GND (Logikmasse).
Das DRV8825-Modul benötigt keine Logikversorgung vom Arduino-Board, da es die Versorgung über das Motornetzteil aus seinem integrierten 3,3-V-Spannungsregler bezieht. Es ist jedoch wichtig, die Masse des Arduino mit dem GND (Logik)-Pin des DRV8825-Moduls zu verbinden, um einen ordnungsgemäßen Betrieb und eine gemeinsame Massereferenz sicherzustellen.
Mikroschritt-Konfiguration
Der DRV8825-Treiber ermöglicht Mikroschritte, indem er jeden Schritt in kleinere Teilschritte unterteilt. Dies wird erreicht, indem Zwischenströme an die Motorwicklungen angelegt werden.
Zum Beispiel ein NEMA-17-Motor mit einem Schrittwinkel von 1,8° (200 Schritte pro Umdrehung):
- Vollschrittmodus (1/1): 200 Schritte pro Umdrehung
- 1/2-Schritt-Modus: 400 Schritte pro Umdrehung
- 1/4-Schritt-Modus: 800 Schritte pro Umdrehung
- 1/8-Schritt-Modus: 1600 Schritte pro Umdrehung
- 1/16-Schritt-Modus: 3200 Schritte pro Umdrehung
- 1/32-Schritt-Modus: 6400 Schritte pro Umdrehung
Wenn Sie die Mikrostepauflösung erhöhen, bewegt sich der Motor glatter und präziser, aber auf Kosten zusätzlicher Schritte pro Umdrehung. Wenn Sie weiterhin dieselbe Schrittimpulsrate (Impulse pro Sekunde) verwenden, dauert jede Umdrehung länger, wodurch der Motor effektiv langsamer wird.
Wenn Ihr Mikrocontroller jedoch Impulse schnell genug ausgeben kann, um der höheren Schrittzahl gerecht zu werden, können Sie die Geschwindigkeit beibehalten oder sogar erhöhen. Die praktische Grenze hängt davon ab, wie schnell sowohl der Schritttreiber als auch Ihr Mikrocontroller diese Impulse verarbeiten können, ohne Schritte zu verlieren.
DRV8825 Mikroschritt-Auswahlpins
Der DRV8825 verfügt über drei Eingänge zur Auswahl der Mikro-Schrittauflösung: M0, M1 und M2 Pins. Durch das Konfigurieren dieser Pins mit bestimmten Logikpegeln können Sie aus sechs Mikro-Schrittauflö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 Microstep-Auswahlpins sind mit integrierten Pull-Down-Widerständen ausgestattet, die sie standardmäßig in einem LOW-Zustand halten. Wenn sie unbelegt bleiben, arbeitet der Motor im Vollschrittbetrieb.
Wie es funktioniert
Um einen Schrittmotor mit dem DRV8825-Modul zu steuern, benötigen Sie mindestens zwei Arduino-Pins: Einen für den DIR-Pin und einen für den STEP-Pin. Der DRV8825 interpretiert diese Signale vom Arduino, um den Schrittmotor präzise zu bewegen.
- STEP Pin: Jeder Impuls am STEP-Pin bewegt den Motor um einen Mikroschritt (oder einen Vollschritt, abhängig von Ihrer Mikroschritt-Konfiguration).
- DIR Pin: Bestimmt die Drehrichtung des Motors.
Der Treiber verwendet dann diese Signale zusammen mit seinen eigenen 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 konfigurieren (ENABLE, M1, M2, M3, RESET, SLEEP) auf drei Arten:
- Lassen Sie sie offen, damit der Treiber mit Standardeinstellungen arbeiten kann.
- Verdrahten Sie sie fest an GND oder VCC für einen festen Betriebsmodus.
- Verbinden Sie sie mit den Arduino-Pins, damit Sie diese Funktionen dynamisch in Ihrem Code steuern können.
Verdrahtungsdiagramm zwischen Arduino, DRV8825-Modul und Schrittmotor
Das folgende Verdrahtungsdiagramm zeigt die minimalen Verbindungen, die zwischen dem Arduino, dem DRV8825-Modul und dem Schrittmotor benötigt werden. Mit diesem Aufbau arbeitet der DRV8825-Treiber im Standardmodus (Vollschritt).

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.
Im Detail:
- VMOT: Mit der Motorstromversorgung verbinden (z. B. 12 V).
- GND (für Motor): Mit der Masse der Motorstromversorgung verbinden.
- 1A, 1B, 2A, 2B: Mit den Spulen des Schrittmotors verbinden.
- STEP: Mit dem digitalen Pin D4 des Arduino verbinden.
- DIR: Mit dem digitalen Pin D3 des Arduino verbinden.
- GND (für Logik): Mit dem GND-Pin des Arduino verbinden.
- Andere Pins: offen lassen.
Arduino-Code
Schnelle Schritte
- Kopieren Sie den obigen Code und öffnen Sie ihn mit der Arduino IDE.
- Navigieren Sie zum Bibliotheken-Symbol in der linken Leiste der Arduino IDE.
- Suchen Sie “AccelStepper”, dann finden Sie die AccelStepper-Bibliothek von Mike McCauley
- Klicken Sie auf die Install-Schaltfläche, um die AccelStepper-Bibliothek zu installieren.

- Kopieren Sie den obigen Code und öffnen Sie ihn mit der Arduino IDE
- Klicken Sie in der Arduino IDE auf die Schaltfläche Upload, um den Code auf den Arduino hochzuladen
- Sie werden sehen, dass sich der Motor rückwärts und vorwärts dreht
Hinweis: Wenn der Motor im Vollschrittbetrieb läuft, ist die Bewegung möglicherweise nicht sehr gleichmäßig, was normal ist. Für eine gleichmäßigere Bewegung aktivieren Sie das Mikrostepping, indem Sie die M1, M2 und M3 Pins 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.