Arduino Nano - DRV8825-Schrittmotor-Treiber
In diesem Leitfaden werden wir den DRV8825-Schrittmotortreiber erkunden und lernen, wie man ihn mit dem Arduino Nano betreibt, um den Schrittmotor zu steuern. Wir werden Folgendes behandeln:
- Das DRV8825-Schrittmotortreiber-Modul
- Betrieb des DRV8825-Schrittmotortreiber-Moduls
- Anschluss des DRV8825-Schrittmotortreiber-Moduls an Arduino Nano und den Schrittmotor
- Programmierung des Arduino Nano zur Ansteuerung des 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-Schrittmotor-Treiber
Der DRV8825 ist ein beliebtes Modul zur Ansteuerung bipolarer Schrittmotoren, das häufig in CNC-Maschinen, 3D-Druckern und Robotern eingesetzt wird. Es bietet eine einstellbare Stromregelung, Temperaturschutzfunktionen und mehrere Mikroschrittoptionen wie Vollschritt, 1/2, 1/4, 1/8, 1/16 und 1/32. Dieses Modul unterstützt bis zu 2,2 A pro Spule bei ausreichender Kühlung und arbeitet in einem Spannungsbereich von 8,2 V bis 45 V, um verschiedene Schrittmotoren zu betreiben.
Um die Grundlagen von Schrittmotoren wie Vollschritt, Mikroschritte, unipolarer Schrittmotor und bipolarer Schrittmotor zu verstehen, schauen Sie sich den Arduino Nano - Stepper Motor Anleitung an.
Es ist erstaunlich, dass die Steuerung der Geschwindigkeit und der Richtung eines einfachen Schrittmotors wie dem NEMA 17 nur zwei Pins des Arduino Nano benötigt.
DRV8825-Schrittmotor-Treiber Pinbelegung

Der DRV8825-Schrittmotortreiber hat 16 Pins. Hier ist ein gängiges Layout für die DRV8825-Schrittmotortreiberplatine. Beachten Sie, dass einige Versionen der Platine die Pins möglicherweise etwas anders 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 Arduino Nano |
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, um zu verhindern, dass der Schrittmotor und der Treiber zu heiß werden.
Kurz gesagt, werden diese 16 Pins basierend auf ihrer Funktion in die folgenden Typen eingeteilt:
- Pins, die mit dem Schrittmotor verbunden sind: 1A, 1B, 2A, 2B.
- Pins, die mit dem Arduino Nano verbunden sind, um den Treiber zu steuern: ENABLE, M1, M2, M3, RESET, SLEEP.
- Pins, die mit dem Arduino Nano verbunden sind, um die Drehrichtung und Geschwindigkeit des Motors zu steuern: DIR, STEP.
- Pin zur Rückmeldung an den Arduino Nano: FAULT.
- Pins, die mit der Stromversorgung des Motors verbunden sind: VMOT, GND (Motormasse).
- Pin, der mit der Masse des Arduino Nano verbunden ist: GND (Logikmasse).
Das DRV8825-Modul benötigt keine Stromversorgung vom Arduino Nano für seine Logik, da es aus der Stromversorgung des Motors über seinen integrierten 3,3-V-Spannungsregler mit Strom versorgt wird. Trotzdem ist es entscheidend, die Masse des Arduino Nano mit dem GND (Logik)-Pin am DRV8825-Modul zu verbinden, um sicherzustellen, dass es ordnungsgemäß funktioniert und eine gemeinsame Masse teilt.
Mikroschritt-Konfiguration
Der DRV8825-Treiber ermöglicht Mikroschritte, indem jeder Schritt in kleinere Teile unterteilt wird. Dies geschieht, indem unterschiedliche Stromstärken an die Motorspulen gesendet werden.
Zum Beispiel ein NEMA-17-Motor mit einem Schrittwinkel von 1,8° (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ßigstelsschrittmodus: 6400 Schritte pro Umdrehung
Wenn Sie die Mikroschrittauflösung erhöhen, läuft der Motor glatter und genauer, aber er benötigt mehr Schritte für eine vollständige Umdrehung. Wenn Sie dieselbe Frequenz der Schrittimpulse beibehalten (Impulse pro Sekunde), wird jede vollständige Umdrehung mehr Zeit in Anspruch nehmen, wodurch der Motor langsamer wird.
Wenn dein Mikrocontroller Impulse schnell genug senden kann, um die höhere Schrittzahl zu erreichen, kannst du die Geschwindigkeit beibehalten oder sogar erhöhen. Die eigentliche Grenze hängt davon ab, wie schnell sowohl der Treiber als auch dein Mikrocontroller diese Impulse verarbeiten können, ohne Schritte zu verpassen.
DRV8825 Mikroschritt-Auswahlpins
Der DRV8825 verfügt über drei Eingänge zur Auswahl der Mikro-Schrittauflösung: die Pins M0, M1 und M2. Durch das Festlegen dieser Pins auf bestimmte Logikpegel können Sie aus sechs verschiedenen 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 winzigen Auswahlpins verfügen über integrierte Widerstände, die sie auf LOW-Pegel ziehen und sie damit normalerweise im LOW-Zustand halten. Wenn sie nicht verbunden sind, arbeitet 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: Einen für den DIR-Pin und einen weiteren für den STEP-Pin. Der DRV8825 decodiert diese Signale vom Arduino Nano, um den Schrittmotor präzise zu bewegen.
- STEP-Pin: Jeder Puls am STEP-Pin bewegt den Motor um einen Mikroschritt oder einen Vollschritt, abhängig von Ihrer Konfiguration.
- DIR-Pin: Legt fest, in welche Richtung der Motor dreht.
Der Treiber verwendet diese Signale und seine 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:
- Trenne sie, damit der Treiber mit Basiseinstellungen arbeitet.
- Schließe sie direkt an GND oder VCC an, um einen stabilen Modus zu erreichen.
- Verbinde sie mit den Pins des Arduino Nano, um diese Funktionen aktiv in deiner Programmierung zu steuern.
Verdrahtungsdiagramm zwischen Arduino Nano, DRV8825-Modul und Schrittmotor
Das Diagramm unten zeigt die grundlegenden Verbindungen, die zwischen dem Arduino Nano, dem DRV8825-Modul und dem Schrittmotor erforderlich sind. Mit dieser Konfiguration arbeitet der DRV8825-Treiber im Standardmodus (Vollschritt).

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.
Siehe Der beste Weg, den Arduino Nano und andere Komponenten mit Strom zu versorgen.
Im Detail:
- VMOT: Anschließen an die Stromquelle des Motors (z. B. 12 V).
- GND (für Motor): Mit dem Masseanschluss der Stromversorgung des Motors verbinden.
- 1A, 1B, 2A, 2B: Diese mit den Spulen des Schrittmotors verbinden.
- STEP: Mit dem digitalen Pin D4 des Arduino Nano verbinden.
- DIR: Mit dem digitalen Pin D3 des Arduino Nano verbinden.
- GND (für Logik): Mit dem GND-Pin des Arduino Nano verbinden.
- Andere Pins: Nicht verbinden.
Arduino Nano Quellcode
Schnelle Schritte
- Kopieren Sie den Code und starten Sie die Arduino-IDE.
- Gehen Sie zum Bibliotheken-Abschnitt im linken Menü der Arduino-IDE.
- Suchen Sie nach „AccelStepper“ und finden Sie 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 Hochladen-Schaltfläche, um den Code auf den Arduino Nano hochzuladen
- Sie werden sehen, wie sich der Motor hin und her bewegt
Wenn du den Motor im Vollschrittbetrieb betreibst, ist seine Bewegung möglicherweise nicht besonders gleichmäßig, was normal ist. Für eine sanftere Bewegung schalte den Mikro-Schrittbetrieb ein, indem du die Pins M1, M2 und M3 setzt.
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.