ESP32 S3 - DRV8825 Schrittmotortreiber

Der ESP32 S3 harmoniert hervorragend mit dem DRV8825-Schrittmotortreiber und ermöglicht eine präzise, programmierbare Bewegungssteuerung mit nur zwei GPIO-Pins. Dieses Tutorial führt Sie von der ersten Verdrahtung bis zum laufenden Code, sodass sich Ihr NEMA 17-Schrittmotor innerhalb weniger Minuten vor- und zurückbewegt.

Was Sie bauen werden:

  1. Einen DRV8825-Schrittmotortreiber, der mit Ihrem ESP32 S3-Board verdrahtet ist
  2. Einen NEMA 17-Schrittmotor, der sich unter AccelStepper-Steuerung vorwärts und rückwärts dreht
  3. Einen sicheren Stromversorgungsaufbau mit einem eigenen 12 V-Netzteil für den Motor
  4. Eine Grundlage für 3D-Drucker, CNC-Maschinen und Präzisionsrobotik-Projekte
ESP32 S3 DRV8825 Schrittmotortreiber

Erforderliche Hardware

1×ESP32 S3 WROOM N16R8
1×(Alternativ) ESP32 S3 SuperMini Dev Module
1×(Alternativ) ESP32 S3 Uno-form Board
1×(Alternativ) ESP32 S3 Camera Board
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) Screw Terminal Expansion Board for ESP32 S3
1×(Empfohlen) Breakout Expansion Board for ESP32 S3
1×(Empfohlen) Power Splitter for ESP32 S3

Oder Sie können die folgenden Kits kaufen:

1×DIYables ESP32 S3 Starter-Kit (ESP32 S3 enthalten)
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.

Überblick über DRV8825 Stepper Motor Driver

Der DRV8825 ist ein leistungsstarker bipolarer Schrittmotortreiber, der einfache Schritt- und Richtungssignale eines Mikrocontrollers in präzise getaktete Spulenströme umwandelt. Er unterstützt Mikroschritte bis zu einer Auflösung von 1/32, wodurch die Bewegung im Vergleich zum Vollschrittbetrieb spürbar sanfter und leiser wird. Mit einem integrierten einstellbaren Potentiometer können Sie die Strombegrenzung an die Nennwerte Ihres Motors anpassen, und ein eingebauter Überstrom- und Übertemperaturschutz schützt Treiber und Motor bei längerem Betrieb.

Wichtige Spezifikationen

  • Spannungsbereich: 8,2 V bis 45 V Motorversorgung
  • Strombelastbarkeit: Bis zu 2,2 A pro Spule bei ausreichender Kühlung
  • Mikroschritte: Unterstützt Vollschritt bis zu 1/32-Schritt-Auflösung
  • Integrierter Schutz: Überstrom- und Übertemperaturabschaltung
  • Einstellbare Strombegrenzung: Potentiometer zur einfachen Einstellung
  • Kompaktes Design: Perfekt für 3D-Drucker, CNC-Maschinen und Robotik
  • Geringe Pinanzahl: Steuerung mit nur 2 Pins des ESP32 S3
  • Integrierter Regler: 3,3 V-Logikversorgung aus der Motorversorgung abgeleitet
  • Einsteigerfreundlich: Einfache Schnittstelle mit Schritt- und Richtungssteuerung

Um Schrittmotor-Konzepte wie Vollschritt, Mikroschritt, unipolare und bipolare Schrittmotoren zu verstehen, lesen Sie die Anleitung ESP32 S3 - Schrittmotor.

Pinbelegung des DRV8825-Schrittmotortreibers

Das DRV8825-Modul verfügt über 16 Pins, die Motorausgänge, Versorgungsschienen und Konfigurationseingänge umfassen. Die folgende nummerierte Liste beschreibt die Funktion jedes Pins.

DRV8825-Modul Pinbelegung
  1. VMOT — Eingang der Motorstromversorgung (8,2 V bis 45 V)
  2. GND (Motor) — Masse der Motorstromversorgung
  3. 2B, 2A — Ausgangsanschlüsse zur Spule B des Schrittmotors
  4. 1A, 1B — Ausgangsanschlüsse zur Spule A des Schrittmotors
  5. FAULT — Fehlererkennungsausgang (geht bei Überstrom oder Übertemperaturabschaltung auf LOW)
  6. GND (Logic) — Massebezug für Steuersignale (mit GND des ESP32 S3 verbinden)
  7. ENABLE — Aktiv-LOW-Freigabepin (LOW = Motor aktiviert, HIGH = Motor deaktiviert)
  8. M0, M1, M2 — Pins zur Auswahl der Mikroschrittauflösung
  9. RESET — Aktiv-LOW-Reset-Pin (LOW = Treiber zurücksetzen)
  10. SLEEP — Aktiv-LOW-Schlafmodus-Pin (LOW = stromsparender Schlafmodus)
  11. STEP — Schritteingangspin (steigende Flanke bewegt den Motor um einen Mikroschritt weiter)
  12. DIR — Richtungssteuerpin (legt die Drehrichtung fest)
  13. Potentiometer — Einstellbare Strombegrenzung

Pingruppierung nach Funktion:

  • Motoranschlüsse: 1A, 1B, 2A, 2B
  • Motorsteuerung: DIR, STEP
  • Treiberkonfiguration: ENABLE, M0, M1, M2, RESET, SLEEP
  • Statusausgang: FAULT
  • Motorversorgung: VMOT, GND (Motor)
  • Logikmasse: GND (Logik)

Wichtig: Verbinden Sie immer GND des ESP32 S3 mit dem GND-Pin (Logik) des DRV8825, um einen gemeinsamen Massebezug herzustellen. Der DRV8825 versorgt seine Logikschaltung über seinen integrierten 3,3 V-Regler aus der Motorversorgung, daher ist keine separate Logikversorgung erforderlich.

Mikroschritt-Konfiguration

Der DRV8825 ermöglicht Mikroschritte, indem er jeden Vollschritt elektronisch in kleinere Inkremente unterteilt. Das Ergebnis sind sanftere Bewegungen, weniger Vibrationen und ein leiserer Betrieb — allerdings auf Kosten von mehr Schrittimpulsen pro Umdrehung.

Beispielhafte Mikroschrittauflösungen für einen NEMA 17-Motor (1,8° Schrittwinkel, 200 Schritte/Umdrehung):

  • Vollschrittmodus: 200 Schritte pro Umdrehung
  • Halbschrittmodus: 400 Schritte pro Umdrehung
  • Viertelschrittmodus (1/4): 800 Schritte pro Umdrehung
  • Achtelschrittmodus (1/8): 1.600 Schritte pro Umdrehung
  • Sechzehntelschrittmodus (1/16): 3.200 Schritte pro Umdrehung
  • Zweiunddreißigstelschrittmodus (1/32): 6.400 Schritte pro Umdrehung

Vorteile höherer Mikroschrittauflösung:

  • Sanftere Motorbewegung mit weniger Vibrationen
  • Höhere Positioniergenauigkeit
  • Leiserer Betrieb
  • Mehr Schritte pro Umdrehung erforderlich (geringere Geschwindigkeit bei gleicher Impulsrate)

Überlegungen zur Geschwindigkeit:

  • Höhere Mikroschrittauflösung erfordert mehr Schrittimpulse pro Umdrehung
  • Die Motorgeschwindigkeit hängt von der Impulsrate des ESP32 S3 ab
  • Schnellere Impulsraten halten die Geschwindigkeit bei höherer Mikroschrittauflösung aufrecht
  • Die maximale Geschwindigkeit ist durch die Fähigkeiten von Treiber und Mikrocontroller begrenzt

DRV8825 Mikroschritt-Auswahlpins

Konfigurieren Sie die Mikroschrittauflösung, indem Sie die Pins M0, M1 und M2 am DRV8825-Treiber setzen. Alle drei Pins haben interne Pull-down-Widerstände und sind standardmäßig LOW. Bleiben sie unbeschaltet, arbeitet der Treiber im Vollschrittmodus.

Tabelle zur Mikroschrittauswahl:

M0-Pin M1-Pin M2-Pin Mikroschrittauflösung
Low Low Low Vollschritt
High Low Low Halbschritt
Low High Low 1/4-Schritt
High High Low 1/8-Schritt
Low Low High 1/16-Schritt
High Low High 1/32-Schritt
Low High High 1/32-Schritt
High High High 1/32-Schritt

Funktionsweise

Der DRV8825 übersetzt einfache digitale Signale des ESP32 S3 in die genau getakteten Spulenströme, die ein bipolarer Schrittmotor zum Drehen benötigt. Bei jeder steigenden Flanke am STEP-Pin bewegt der Treiber den Motor um einen Mikroschritt (oder Vollschritt, je nach M0–M2-Konfiguration) weiter, während der DIR-Pin die Drehrichtung im oder gegen den Uhrzeigersinn wählt. Für den häufigsten Anwendungsfall werden nur zwei GPIO-Pins des ESP32 S3 benötigt; weitere Pins wie ENABLE, RESET und SLEEP können für die Standardeinstellungen unbeschaltet bleiben oder bei Bedarf an eine dynamische Steuerung mit GPIO-Pins verbunden werden.

Grundlegende Funktionsweise:

  • STEP-Pin: Jede steigende Flanke bewegt den Motor um einen Mikroschritt (oder Vollschritt, je nach Konfiguration)
  • DIR-Pin: Steuert die Drehrichtung (HIGH oder LOW)
  • Treiberlogik: Wandelt Schritt- und Richtungssignale in passende Spulenströme um
  • Motorausgänge: Die Pins 1A, 1B, 2A, 2B liefern geregelten Strom an die Motorspulen

Optionale Pinkonfigurationen:

Sie können zusätzliche DRV8825-Pins (ENABLE, M0, M1, M2, RESET, SLEEP) auf drei Arten konfigurieren:

  • Unbeschaltet lassen: Der Treiber verwendet die Standardeinstellungen (Vollschritt, aktiviert)
  • Mit GND oder VCC verbinden: Feste Konfiguration (z. B. immer aktiviert oder ein bestimmter Mikroschrittmodus)
  • Mit Pins des ESP32 S3 verbinden: Dynamische Steuerung über Ihren Code

Verdrahtungsdiagramm

Verbinden Sie Ihren ESP32 S3, den DRV8825-Schrittmotortreiber und den NEMA 17-Schrittmotor gemäß diesem Verdrahtungsdiagramm. Die Spulendrähte des Motors werden an die Ausgänge 1A/1B und 2A/2B des Treibers angeschlossen, während die STEP- und DIR-Signale von den GPIO-Pins des ESP32 S3 kommen.

ESP32 S3 DRV8825 Schrittmotortreiber Verdrahtungsdiagramm

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

Sicherheitshinweise

Schließen Sie den Schrittmotor niemals bei eingeschalteter Stromversorgung an oder ab — dies kann Spannungsspitzen erzeugen, die den DRV8825 dauerhaft beschädigen. Überprüfen Sie vor dem Einschalten immer, ob die Spannung der Motorversorgung den Spezifikationen Ihres Schrittmotors entspricht (typischerweise 12 V bei NEMA 17-Motoren), und stellen Sie sicher, dass GND des ESP32 S3 mit der Logikmasse des DRV8825 verbunden ist, bevor Sie Schrittimpulse senden.

DRV8825-Pin Verbindung Hinweise
VMOT 12V-Netzteil (+) Motorversorgungseingang
GND (Motor) 12V-Netzteil (-) Masse der Motorversorgung
1A Schrittmotor Spule A Draht 1 Anschluss Spule A
1B Schrittmotor Spule A Draht 2 Anschluss Spule A
2A Schrittmotor Spule B Draht 1 Anschluss Spule B
2B Schrittmotor Spule B Draht 2 Anschluss Spule B
STEP ESP32 S3 Pin D10 Schrittsteuersignal
DIR ESP32 S3 Pin D9 Richtungssteuersignal
GND (Logik) ESP32 S3 GND Gemeinsamer Massebezug
ENABLE Nicht verbunden Standardmäßig aktiviert
M0 Nicht verbunden Vollschrittmodus
M1 Nicht verbunden Vollschrittmodus
M2 Nicht verbunden Vollschrittmodus
RESET Nicht verbunden Normalbetrieb
SLEEP Nicht verbunden Normalbetrieb

Diese Grundkonfiguration betreibt den Schrittmotor im Vollschrittmodus mit Standardeinstellungen.

ESP32 S3 Code

Der folgende Code zeigt, wie Sie einen Schrittmotor mit dem ESP32 S3 und dem DRV8825-Treiber über die AccelStepper-Bibliothek steuern. Er konfiguriert die Treiberschnittstelle, legt eine Höchstgeschwindigkeit und Beschleunigung fest und lässt den Motor dann in einer Endlosschleife 200 Schritte vorwärts und 200 Schritte rückwärts drehen — die Kommentare im Code erklären Ihnen Zeile für Zeile, wie jeder Abschnitt funktioniert.

/* * Dieser ESP32 S3 Code wurde von newbiely.de entwickelt * Dieser ESP32 S3 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/esp32-s3/esp32-s3-drv8825-stepper-motor-driver */ #include <AccelStepper.h> #define DIR_PIN 17 // The ESP32 S3 pin connected to DIR pin of DRV8825 module #define STEP_PIN 18 // The ESP32 S3 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

  1. Neu beim ESP32 S3? Arbeiten Sie zuerst unsere Anleitung Erste Schritte mit dem ESP32 S3 durch.
  2. Richten Sie die Arduino IDE für den ESP32 S3 gemäß der Anleitung ESP32 S3 Softwareinstallation ein.
  3. Verdrahten Sie den DRV8825, den Schrittmotor und das 12 V-Netzteil gemäß dem obigen Verdrahtungsdiagramm mit dem ESP32 S3.
  4. Verbinden Sie das ESP32 S3-Board über ein USB-Typ-C-Kabel mit Ihrem Computer.
  5. Öffnen Sie die Arduino IDE auf Ihrem Computer.
  6. Wählen Sie unter Tools das ESP32 S3-Board und den zugehörigen COM-Port aus.
  7. Öffnen Sie den Bibliotheksverwalter, indem Sie auf das Libraries-Symbol in der linken Seitenleiste klicken.
  8. Geben Sie "AccelStepper" in das Suchfeld ein, suchen Sie die Bibliothek von Mike McCauley und klicken Sie auf Install.
  • Search for AccelStepper created by Mike McCauley and click the Install button.
∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
ESP32S3 Dev Module
Library Manager
Type:
All
Topic:
All
AccelStepper by Mike McCauley
Provides an object-oriented interface for 2, 3 or 4 pin stepper motors and motor drivers. More info
1.64
INSTALL
Newbiely.ino
···
1 void setup() {
Output
Serial Monitor
Ln 1, Col 1
ESP32S3 Dev Module on COM15
1
  1. Kopieren Sie den obigen Code und fügen Sie ihn in einen neuen Arduino IDE-Sketch ein.
  2. Klicken Sie auf die Schaltfläche Upload, um den Code zu kompilieren und auf den ESP32 S3 zu übertragen.
Wie man ESP32 S3-Code in der Arduino IDE hochlädt
  1. Beobachten Sie, wie sich der Schrittmotor kontinuierlich vor- und zurückdreht.
  2. Profi-Tipp: Für einen sanfteren, leiseren Motorbetrieb aktivieren Sie Mikroschritte, indem Sie M0, M1 und M2 mit GPIO-Pins des ESP32 S3 verbinden und diese in Ihrem Code auf HIGH oder LOW setzen, um die gewünschte Auflösung auszuwählen.

Hinweis: Der Vollschrittmodus erzeugt eine sichtbar ruckartige Bewegung. Aktivieren Sie Mikroschritte für einen sanfteren, leiseren Betrieb, indem Sie die Pins M0, M1 und M2 konfigurieren.

Ausgabe im Seriellen Monitor

Öffnen Sie nach dem Hochladen des Codes den Seriellen Monitor mit einer Baudrate von 115200, um den Motorstatus zu sehen. Die folgende Ausgabe zeigt eine typische Sitzung, die 2026 aufgezeichnet wurde.

∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
ESP32S3 Dev Module
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'ESP32S3 Dev Module' on 'COM15')
New Line
9600 baud
ESP32 S3 DRV8825 Stepper Motor Control Initializing motor... [2026-01-15 09:00:01] Motor moving forward 200 steps [2026-01-15 09:00:03] Step position: 50 [2026-01-15 09:00:05] Step position: 100 [2026-01-15 09:00:07] Step position: 150 [2026-01-15 09:00:09] Step position: 200 [2026-01-15 09:00:11] Motor moving backward 200 steps [2026-01-15 09:00:13] Step position: 150 [2026-01-15 09:00:15] Step position: 100 [2026-01-15 09:00:17] Step position: 50 [2026-01-15 09:00:19] Step position: 0 [2026-01-15 09:00:21] Motor moving forward 200 steps [2026-01-15 09:00:23] Step position: 50 [2026-01-15 09:00:25] Step position: 100 [2026-01-15 09:00:27] Step position: 150 [2026-01-15 09:00:29] Step position: 200
Ln 11, Col 1
ESP32S3 Dev Module on COM15
2

Anwendungen und Projektideen

Der ESP32 S3 in Kombination mit dem DRV8825-Schrittmotortreiber eröffnet eine Vielzahl von Projekten zur präzisen Bewegungssteuerung, von Desktop-Prototypen bis hin zu professionellen Automatisierungssystemen:

  1. 3D-Drucker: Bauen Sie einen eigenen 3D-Drucker mit präziser Steuerung der X-, Y- und Z-Achse, angetrieben von mehreren DRV8825-Treibern.
  2. CNC-Maschine: Erstellen Sie eine Mini-CNC-Fräse oder einen Graveur für Leiterplatten und kleine mechanische Teile.
  3. Kameraslider: Entwerfen Sie einen automatisierten Kameraslider für gleichmäßige, motorisierte Zeitrafferfotografie.
  4. Roboterarm: Bauen Sie einen mehrachsigen Roboterarm mit genauer Gelenkpositionierung für Pick-and-Place-Aufgaben.
  5. Automatischer Vorhangöffner: Bauen Sie intelligente Vorhänge, die sich nach Zeitplan oder per WLAN-Befehl öffnen und schließen.
  6. Schwenk-Neige-Kamerahalterung: Erstellen Sie eine motorisierte Zwei-Achsen-Kamerahalterung für Videoüberwachung oder Fernfotografie.
  7. Automatischer Futterautomat: Entwerfen Sie einen zeitgesteuerten Futterautomaten für Haustiere mit Portionskontrolle über einen schrittmotorbetriebenen Schiebermechanismus.
  8. Solarpanel-Nachführung: Bauen Sie ein Sonnennachführsystem, das ein Solarpanel für maximale Energieausbeute dreht.

Sehen Sie sich unten die Schritt-für-Schritt-Videoanleitung für dieses ESP32 S3-Projekt an.

Fordern Sie sich selbst heraus

Sobald Ihr Schrittmotor zuverlässig mit dem ESP32 S3 und dem DRV8825 läuft, probieren Sie diese Herausforderungen aus, um Ihr Verständnis von Motorsteuerung und Embedded-Programmierung zu vertiefen:

  1. Anfänger: Fügen Sie ein Potentiometer hinzu, um die Motorgeschwindigkeit in Echtzeit zu steuern, indem Sie einen Analogeingang lesen und auf die Höchstgeschwindigkeit von AccelStepper abbilden.
  2. Anfänger: Fügen Sie LED-Anzeigen für die Motorrichtung hinzu — eine grüne LED für vorwärts und eine rote LED für rückwärts.
  3. Fortgeschritten: Aktivieren Sie Mikroschritte, indem Sie M0, M1 und M2 mit GPIO-Pins des ESP32 S3 verbinden, und wechseln Sie in Ihrem Code zwischen den Auflösungen.
  4. Fortgeschritten: Fügen Sie Taster zum Starten und Stoppen der Motorbewegung hinzu sowie einen dritten Taster zum Umschalten der Richtung.
  5. Experte: Erstellen Sie ein Positionssteuerungssystem, das Befehle über den Seriellen Monitor entgegennimmt, um den Motor an bestimmte Schrittpositionen zu bewegen.
  6. Experte: Bauen Sie ein Zwei-Achsen-Bewegungssteuerungssystem mit zwei DRV8825-Treibern und Schrittmotoren für X-Y-Plotter oder Lasergravur.
  7. Experte: Implementieren Sie sanfte Beschleunigungs- und Verzögerungsprofile für schnelle, präzise Bewegungen, die ohne Schrittverluste starten und stoppen.

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