ESP8266 - DRV8825 Schrittmotortreiber

In diesem Leitfaden lernen wir den DRV8825-Schrittmotortreiber kennen und wie man ihn mit dem ESP8266 verwendet, um den Schrittmotor zu betreiben. Hier sind die Details, die wir behandeln werden:

ESP8266 NodeMCU-DRV8825-Modul

Erforderliche Hardware

1×ESP8266 NodeMCU
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 ESP8266
1×(Empfohlen) Stromverteiler für ESP8266 Typ-C

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

Der DRV8825 ist ein beliebtes Modul zur Steuerung bipolare Schrittmotoren, das häufig in CNC-Maschinen, 3D-Druckern und Robotern eingesetzt wird. Es verfügt über eine einstellbare Stromregelung, Schutz gegen Überhitzung und bietet mehrere Mikroschritt-Modi wie Vollschritt, Halbschritt und Bruchteile bis zu 1/32 Schritt. Dieses Modul kann bei ausreichender Kühlung bis zu 2,2 A pro Spule bewältigen und arbeitet in einem breiten Spannungsbereich von 8,2 V bis 45 V, wodurch verschiedene Schrittmotoren unterstützt werden.

Um Konzepte des Schrittmotors wie Vollschritt, Mikroschritt, unipolarer Schrittmotor und bipolarer Schrittmotor zu verstehen, schauen Sie sich den ESP8266 - Schrittmotor Leitfaden an.

Es ist erstaunlich, dass man nur zwei ESP8266-Pins benötigt, um zu steuern, wie schnell und in welche Richtung sich ein bipolarer Schrittmotor, wie der NEMA 17, bewegt.

DRV8825-Schrittmotor-Treiber Pinbelegung

Pinbelegung des DRV8825-Moduls

Der DRV8825-Schrittmotortreiber verfügt über 16 Pins. Hier ist eine gängige Anordnung der Pins am DRV8825-Schrittmotortreiber-Modul. Beachten Sie, dass einige Versionen des Moduls die Pins möglicherweise etwas anders benennen, aber ihre Funktionen bleiben unverändert.

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 ESP8266
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, den Sie drehen können, um die Stromregelung anzupassen, was dazu beiträgt, dass der Schrittmotor und der Treiber nicht zu heiß werden.

Kurz gesagt, werden diese 16 Pins basierend auf ihrer Verwendung in Typen gruppiert:

  • Drähte, die mit dem Schrittmotor verbunden sind: 1A, 1B, 2A, 2B.
  • Drähte, die mit dem ESP8266 zur Steuerung des Treibers verbunden sind: ENABLE, M1, M2, M3, RESET, SLEEP.
  • Drähte, die mit dem ESP8266 zur Steuerung der Drehungsrichtung und -geschwindigkeit des Motors verbunden sind: DIR, STEP.
  • Draht zum Senden von Feedback an den ESP8266: FAULT.
  • Drähte, die mit der Stromversorgung des Motors verbunden sind: VMOT, GND (Motorstromversorgung).
  • Draht zum Erdungspunkt des ESP8266: GND (Logik-Erde).

Die DRV8825-Einheit benötigt keine separate Stromversorgung vom ESP8266, da sie ihre Stromversorgung direkt vom Netzteil des Motors über ihren integrierten 3,3-V-Spannungsregler erhält. Allerdings müssen Sie den Masseanschluss des ESP8266 mit dem GND (Logik) Pin des DRV8825 verbinden, damit es korrekt funktioniert und der Massepegel bei beiden Geräten derselbe ist.

Mikroschritt-Konfiguration

Der DRV8825-Treiber ermöglicht Mikroschritte, indem jeder Schritt in kleinere Teile aufgeteilt wird. Er erreicht dies, indem er unterschiedliche Strommengen an die Motorspulen sendet.

Zum Beispiel ein NEMA-17-Motor mit einem Schrittwinkel von 1,8° (200 Schritte pro Umdrehung):

  • Vollschritt-Modus: 200 Schritte pro Umdrehung
  • Halbschritt-Modus: 400 Schritte pro Umdrehung
  • Viertelschritt-Modus: 800 Schritte pro Umdrehung
  • Achtelschritt-Modus: 1600 Schritte pro Umdrehung
  • Sechzehntelschritt-Modus: 3200 Schritte pro Umdrehung
  • 32-Schritt-Modus: 6400 Schritte pro Umdrehung

Wenn Sie die Mikro-Schrittauflösung erhöhen, läuft der Motor gleichmäßiger und genauer, aber er benötigt mehr Schritte pro Umdrehung. Wenn Sie dieselbe Schrittimpulsrate beibehalten, dauert jede Umdrehung länger, wodurch der Motor langsamer wird.

Wenn Ihr Mikrocontroller die Impulse schnell genug senden kann, um die 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 Treiber als auch Ihr Mikrocontroller diese Impulse verarbeiten können, ohne Schritte zu verpassen.

DRV8825 Mikroschritt-Auswahl-Pins

Der DRV8825 hat drei Eingänge zur Wahl der Mikroschrittauflösung, die Pins M0, M1 und M2 heißen. Sie können diese Pins bei bestimmten Logikpegeln setzen, um aus sechs verschiedenen Mikroschrittauflösungen auszuwä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 Einstellpins verfügen über integrierte Widerstände, die sie normalerweise in einen LOW-Zustand ziehen. Wenn sie nicht verbunden sind, läuft der Motor im Vollschritt-Modus.

Wie es funktioniert

Um einen Schrittmotor mit dem DRV8825-Modul zu betreiben, benötigen Sie mindestens zwei ESP8266-Pins: einen für den DIR Pin und einen weiteren für den STEP Pin. Der DRV8825 verarbeitet diese Signale vom ESP8266, um den Schrittmotor präzise zu bewegen.

  • STEP-Pin: Jedes Signal am STEP-Pin bewegt den Motor einen winzigen Schritt oder einen vollständigen Schritt, je nach Ihren Einstellungen.
  • DIR-Pin: Bestimmt, in welche Richtung der Motor dreht.

Der Treiber verwendet diese Signale und seine 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 (ENABLE, M1, M2, M3, RESET, SLEEP) auf drei Arten konfigurieren:

  • Lassen Sie sie getrennt, damit der Treiber grundlegende Einstellungen verwenden kann.
  • Schließen Sie sie direkt an GND oder VCC an, um einen konstanten Modus festzulegen.
  • Verknüpfen Sie sie mit den Pins des ESP8266, um diese Funktionen über Ihren Code zu steuern.

Schaltplan zwischen ESP8266, DRV8825-Modul und Schrittmotor

Das untenstehende Diagramm zeigt die grundlegenden Verbindungen, die zwischen dem ESP8266, dem DRV8825-Modul und dem Schrittmotor erforderlich sind. Mit dieser Anordnung arbeitet der DRV8825-Treiber im Standardmodus (Vollschritt).

ESP8266 NodeMCU DRV8825 Schrittmotortreiber-Verdrahtungsdiagramm

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.

Weitere Informationen finden Sie unter ESP8266-Pinbelegung und wie man ESP8266 und andere Komponenten mit Strom versorgt.

Auf eine detaillierte Weise:

  • VMOT: Schließe an die Stromquelle des Motors an, z. B. 12V.
  • GND (für Motor): Mit dem Masseanschluss der Motorstromversorgung verbinden.
  • 1A, 1B, 2A, 2B: An die Spulen des Schrittmotors anschließen.
  • STEP: Mit dem digitalen Pin D4 am ESP8266 verbinden.
  • DIR: Mit dem digitalen Pin D3 am ESP8266 verbinden.
  • GND (für Logik): Mit dem GND-Pin des ESP8266 verbinden.
  • Andere Pins: Nicht anschließen.

ESP8266-Code

/* * Dieser ESP8266 NodeMCU Code wurde von newbiely.de entwickelt * Dieser ESP8266 NodeMCU 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/esp8266/esp8266-drv8825-stepper-motor-driver */ #include <AccelStepper.h> #define STEP_PIN D1 // The ESP8266 pin connected to STEP pin of DRV8825 module #define DIR_PIN D2 // The ESP8266 pin connected to DIR 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 ESP8266 in der Arduino-IDE zu beginnen, befolgen Sie diese Schritte:

  • Schau dir das Tutorial zur Einrichtung der Umgebung für ESP8266 in der Arduino IDE an, falls du ESP8266 zum ersten Mal verwendest.
  • Verbinde die Bauteile wie im Diagramm gezeigt.
  • Verbinde das ESP8266-Board über ein USB-Kabel mit deinem Computer.
  • Öffne die Arduino IDE auf deinem Computer.
  • Wähle das richtige ESP8266-Board aus, z. B. NodeMCU 1.0 (ESP-12E Module), und den entsprechenden COM-Port.
  • Kopiere den obigen Code und öffne ihn in der ESP8266-Software.
  • Klicke auf das Bibliotheken-Symbol auf der linken Seite der ESP8266-Schnittstelle.
  • Tippe "AccelStepper" in das Suchfeld ein und suche nach der AccelStepper-Bibliothek von Mike McCauley.
  • Drücke auf die Install-Schaltfläche, um die AccelStepper-Bibliothek hinzuzufügen.
ESP8266 NodeMCU AccelStepper-Bibliothek
  • Kopiere den obigen Code und öffne ihn in der Arduino IDE
  • Klicke auf die Hochladen-Schaltfläche in der Arduino IDE, um den Code an den ESP8266 zu senden
  • Du wirst sehen, wie sich der Motor hin und her bewegt

Wenn Sie den Motor im Vollschrittbetrieb verwenden, ist seine Bewegung möglicherweise nicht sehr gleichmäßig, was normal ist. Um die Bewegung zu glätten, schalten Sie den Mikroschrittbetrieb ein, indem Sie die Pins M1, M2 und M3 setzen.

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!