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:

Arduino DRV8825-Modul

Erforderliche Hardware

1×Arduino Uno R3
1×USB 2.0 Kabel Typ A/B (für USB-A PC)
1×USB 2.0 Kabel Typ C/B (für USB-C PC)
1×Stepper Motor Nema 17
1×DRV8825 Stepper Motor Driver
1×Expansion Board for DRV8825 Motor Driver
1×12V Netzteil
1×DC-Stromanschluss
1×Verbindungskabel
1×(Empfohlen) Schraubklemmenblock-Shield für Arduino Uno
1×(Empfohlen) Breadboard-Shield für Arduino Uno
1×(Empfohlen) Gehäuse für Arduino Uno
1×(Empfohlen) Prototyping-Grundplatte & Breadboard-Kit für Arduino Uno

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)
Offenlegung: Einige der in diesem Abschnitt bereitgestellten Links sind Amazon-Affiliate-Links. Wir können eine Provision für Käufe erhalten, die über diese Links getätigt werden, ohne zusätzliche Kosten für Sie. Wir schätzen Ihre Unterstützung.

Ü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

DRV8825-Modul 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).

Arduino DRV8825 Schrittmotortreiber-Verdrahtungsdiagramm

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

/* * Dieser Arduino Code wurde von newbiely.de entwickelt * Dieser Arduino Code wird der Öffentlichkeit ohne jegliche Einschränkung zur Verfügung gestellt. * Für vollständige Anleitungen und Schaltpläne besuchen Sie bitte: * https://newbiely.de/tutorials/arduino/arduino-drv8825-stepper-motor-driver */ // Include the AccelStepper Library #include <AccelStepper.h> // Define pin connections #define DIR_PIN 3 #define STEP_PIN 4 // Creates an instance AccelStepper stepper(AccelStepper::DRIVER, STEP_PIN, DIR_PIN); void setup() { // set the maximum speed, acceleration factor, // initial speed and the target position stepper.setMaxSpeed(1000); stepper.setAcceleration(200); stepper.setSpeed(200); stepper.moveTo(200); } void loop() { // Change direction once the motor reaches target position if (stepper.distanceToGo() == 0) stepper.moveTo(-stepper.currentPosition()); stepper.run(); // Move the motor one step }

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.
Arduino AccelStepper-Bibliothek
  • 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.

※ UNSERE NACHRICHTEN

  • Sie können gerne den Link zu diesem Tutorial teilen. Bitte verwenden Sie jedoch unsere Inhalte nicht auf anderen Websites. Wir haben viel Mühe und Zeit in die Erstellung der Inhalte investiert, bitte respektieren Sie unsere Arbeit!