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:

Arduino Nano ESP32 DRV8825-Modul

Erforderliche Hardware

1×Arduino Nano ESP32
1×USB-Kabel Typ-A zu Typ-C (für USB-A PC)
1×USB-Kabel Typ-C zu Typ-C (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) Schraubklemmen-Erweiterungsboard für Arduino Nano
1×(Empfohlen) Breakout-Erweiterungsboard für Arduino Nano
1×(Empfohlen) Stromverteiler für Arduino Nano ESP32

Oder Sie können die folgenden Kits kaufen:

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-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

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

Arduino Nano ESP32 DRV8825 Schrittmotortreiber Verdrahtungsdiagramm

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

/* * Dieser Arduino Nano ESP32 Code wurde von newbiely.de entwickelt * Dieser Arduino Nano ESP32 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-nano-esp32/arduino-nano-esp32-drv8825-stepper-motor-driver */ #include <AccelStepper.h> #define DIR_PIN D3 // The Arduino Nano ESP32 pin connected to DIR pin of DRV8825 module #define STEP_PIN D4 // The Arduino Nano ESP32 pin connected to STEP pin of DRV8825 module // Creates an instance AccelStepper stepper(AccelStepper::DRIVER, STEP_PIN, DIR_PIN); void setup() { // set the maximum speed, acceleration factor stepper.setMaxSpeed(1000); stepper.setAcceleration(200); // set speed and the target position 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

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

※ 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!