ESP32 - DRV8825 Stappenmotor Driver
In deze handleiding verkennen we de DRV8825 Stappenmotor Driver en ontdekken we hoe u deze samen met een ESP32 gebruikt om een stappenmotor aan te sturen. We behandelen de volgende onderwerpen:
- Wat is het DRV8825 stappenmotor driver module
- Hoe het DRV8825 stappenmotor driver module werkt
- Hoe u het DRV8825 stappenmotor driver module aansluit op ESP32 en een stappenmotor
- Hoe u code schrijft voor ESP32 om de stappenmotor te besturen met de DRV8825 module

Hardware Vereist
Of u kunt de volgende kits kopen:
| 1 | × | DIYables Sensorkit (30 sensoren/displays) | |
| 1 | × | DIYables Sensorkit (18 sensoren/displays) |
Over DRV8825 Stappenmotor Driver
De DRV8825 is een populaire stappenmotor driver die gebruikt wordt voor het aansturen van bipolaire stappenmotoren in apparaten zoals CNC-machines, 3D-printers en robots. Hij beschikt over functies zoals een instelbare stroomlimiet, bescherming tegen oververhitting en verschillende microstepping-opties, zoals full-step, 1/2, 1/4, 1/8, 1/16 en 1/32. Dit module kan tot 2,2A per spoel aansturen mits voldoende koeling en werkt binnen een breed spanningsbereik van 8,2V tot 45V, waardoor het geschikt is voor diverse stappenmotoren.
Wilt u meer begrijpen over concepten zoals full-step, microstepping, unipolaire en bipolaire stappenmotoren? Bekijk dan de ESP32 - Stappenmotor gids.
Het is indrukwekkend dat u slechts twee ESP32-pinnen nodig hebt om zowel de snelheid als de draaicirkelrichting van een bipolaire stappenmotor zoals de NEMA 17 te regelen.
DRV8825 Stappenmotor Driver Pinout

De DRV8825 stappenmotor driver heeft 16 pinnen. Hieronder ziet u een veelvoorkomend overzicht van de DRV8825 module. Let op: sommige versies gebruiken andere pinbenamingen, maar de functies blijven gelijk.
| Pin Naam | Beschrijving |
|---|---|
| VMOT | Voeding voor de motor (8,2 V tot 45 V). Dit voedt de stappenmotor. |
| GND (voor motor) | Aarding voor de motorvoeding. Verbind deze pin met de GND van de motorvoeding. |
| 2B, 2A | Uitgangen naar spoel B van de stappenmotor. |
| 1A, 1B | Uitgangen naar spoel A van de stappenmotor. |
| FAULT | Foutdetectie-pin. Deze uitgang wordt LOW wanneer de H-brug FET’s uitgeschakeld zijn door overstroombeveiliging of thermische uitschakeling. |
| GND (voor Logica) | Aarding voor de logicasignalen. Verbind deze pin met de GND van de ESP32. |
| ENABLE | Actief-LOW pin om de motoruitgangen aan/uit te zetten. LOW = ingeschakeld, HIGH = uitgeschakeld. |
| M1, M2, M3 | Microstepping resolutie selectie pinnen (zie tabel hieronder). |
| RESET | Actief-LOW reset pin - als deze LOW wordt gezet, wordt de driver gereset. |
| SLEEP | Actief-LOW slaap pin - door deze LOW te maken, gaat de driver in een laag stroomverbruik slaapmodus. |
| STEP | Stap input - een stijgende flank op deze pin verzet de motor één stap (of microstap, afhankelijk van instelling). |
| DIR | Richtingsinput - bepaalt de rotatierichting van de motor. |
Er zit ook een kleine ingebouwde draaiknop waarmee u de stroomlimiet kunt instellen, wat helpt om oververhitting van motor en driver te voorkomen.
Kort samengevat zijn de 16 pinnen in groepen verdeeld volgens hun functie:
- Pinnen verbonden met de stappenmotor: 1A, 1B, 2A, 2B.
- Pinnen verbonden met ESP32 voor driverbeheer: ENABLE, M1, M2, M3, RESET, SLEEP.
- Pinnen verbonden met ESP32 voor het besturen van motorrichting en snelheid: DIR, STEP.
- Pin voor het doorgeven van feedback naar ESP32: FAULT.
- Pinnen voor de motorvoeding: VMOT, GND (motorvoeding).
- Pin voor de ESP32-aarde: GND (logica).
De DRV8825 module heeft geen aparte logica-voeding nodig vanuit de ESP32, omdat deze wordt gevoed via de motorvoeding door een ingebouwde 3,3V spanningsregelaar. Het is echter wel essentieel om de GND van de ESP32 te verbinden met de GND (logic) pin van de DRV8825 voor een correcte werking en een gemeenschappelijke referentie.
Microstep Configuratie
De DRV8825 driver maakt microstepping mogelijk door elke stap te verdelen in kleinere delen door variërende stroomniveaus naar de motorwikkelingen te sturen.
Bijvoorbeeld bij een NEMA 17 motor met een staphoek van 1,8 graden (200 stappen per omwenteling):
- Full-step modus: 200 stappen per omwenteling
- Half-step modus: 400 stappen per omwenteling
- Quarter-step modus: 800 stappen per omwenteling
- Eighth-step modus: 1600 stappen per omwenteling
- Sixteenth-step modus: 3200 stappen per omwenteling
- Thirty-second-step modus: 6400 stappen per omwenteling
Hoe hoger de microstepping instelling, hoe soepeler en preciezer de motor loopt, maar het aantal stappen per volledige omwenteling neemt toe. Houdt u dezelfde stap-pulsfrequentie aan, dan duurt een omwenteling langer en wordt de motor langzamer.
Als uw microcontroller echter snel genoeg pulsen kan genereren passend bij het hogere stapnummer, behoudt of verhoogt u zelfs de snelheid. De praktische limiet hangt af van hoe snel zowel de driver als de microcontroller deze pulsen kunnen verwerken zonder stappen over te slaan.
DRV8825 Microstep Selectiepinnen
De DRV8825 heeft drie ingangen om de microstep-resolutie te selecteren: M0, M1, en M2. Door deze pinnen op bepaalde logische niveaus in te stellen, kiest u uit zes microstepping resoluties:
| M0 Pin | M1 Pin | M2 Pin | Microstep Resolutie |
|---|---|---|---|
| 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 |
Deze selectie pinnen hebben ingebouwde pull-down weerstanden die ze standaard in LOW houden. Als ze niet aangesloten zijn, draait de motor in full-step modus.
Hoe het Werkt
Om een stappenmotor met de DRV8825 module aan te sturen heeft u twee ESP32 pinnen nodig: één voor de DIR pin en één voor de STEP pin. De DRV8825 verwerkt deze signalen om de motor nauwkeurig te verplaatsen.
- STEP Pin: Elke puls op deze pin verzet de motor één stap of microstap, afhankelijk van de instelling.
- DIR Pin: Bepaalt de draairichting van de motor.
De driver combineert deze signalen met zijn eigen instellingen en stuurt de motor via de 1A, 1B, 2A, en 2B uitgangen aan.
U kunt de extra pinnen op de DRV8825 module (ENABLE, M1, M2, M3, RESET, SLEEP) op drie manieren instellen:
- Los laten zodat de driver standaardinstellingen gebruikt.
- Direct verbinden met GND of VCC voor constante instellingen.
- Verbinden met ESP32 pinnen om deze functies via software te beheren.
Aansluitschema tussen ESP32, DRV8825 module en Stappenmotor
Het onderstaande schema toont de minimale verbindingen tussen de ESP32, DRV8825 module en de stappenmotor. In deze configuratie werkt de DRV8825 driver in zijn standaard modus (full-step).

This image is created using Fritzing. Click to enlarge image
In detail:
- VMOT: Verbind met de voedingsspanning van de motor (bijvoorbeeld 12V).
- GND (voor Motor): Verbind met de massa van de motorvoeding.
- 1A, 1B, 2A, 2B: Verbind met de spoelen van de stappenmotor.
- STEP: Verbind met digitale pin D4 op de ESP32.
- DIR: Verbind met digitale pin D3 op de ESP32.
- GND (voor Logica): Verbind met de GND-pin van de ESP32.
- Overige pinnen: Niet verbonden.
ESP32 Code
Snelle Stappen
- Als u voor het eerst met ESP32 werkt, bekijk dan hoe u de omgeving voor ESP32 instelt in Arduino IDE.
- Maak de bedrading volgens bovenstaande afbeelding.
- Verbind de ESP32 met uw pc via een USB-kabel.
- Open Arduino IDE op uw pc.
- Selecteer het juiste ESP32-bord (bijvoorbeeld ESP32 Dev Module) en de juiste COM-poort.
- Kopieer de bovenstaande code en open deze in Arduino IDE.
- Ga naar de Libraries sectie links in Arduino IDE.
- Zoek op “AccelStepper” en selecteer de AccelStepper library van Mike McCauley.
- Klik op de Installeren knop om de AccelStepper library toe te voegen.

- Plak de code in Arduino IDE.
- Klik op de Upload knop om de code naar uw ESP32 te sturen.
- U zult de motor heen en weer zien bewegen.
Tip: Bij gebruik van full-step modus kan de motorbeweging minder soepel zijn; voor een soepelere beweging activeert u microstepping door de M1, M2 en M3 pinnen aan te passen.
Video Tutorial
We overwegen het maken van videotutorials. Als u videotutorials belangrijk vindt, abonneer u dan op ons YouTube-kanaal om ons te motiveren de video's te maken.
Bekijk onze video-tutorial voor een visuele begeleiding bij dit project! De video biedt extra inzichten en helpt u stap voor stap door het proces.