Arduino - DRV8825 Stappenmotor Driver
In deze tutorial gaan we de DRV8825 Stappenmotor Driver leren kennen en hoe u deze samen met een Arduino gebruikt om een stappenmotor aan te sturen. We behandelen in detail:
- Wat de DRV8825 stappenmotor driver module is
- Hoe de DRV8825 stappenmotor driver module werkt
- Hoe u de DRV8825 driver aansluit op de Arduino en de stappenmotor
- Hoe u de Arduino programmeert om de stappenmotor aan te sturen via de DRV8825 module

Hardware Benodigd
Of u kunt de volgende kits kopen:
| 1 | × | DIYables Sensorkit (30 sensoren/displays) | |
| 1 | × | DIYables Sensorkit (18 sensoren/displays) |
Over de DRV8825 Stappenmotor Driver
De DRV8825 is een veelgebruikte stappenmotor driver module voor het aansturen van bipolaire stappenmotoren in toepassingen als CNC-machines, 3D-printers en robotica. Hij heeft een instelbare stroombegrenzing, oververhittingsbeveiliging en zes microstepping-opties, waaronder full-step, 1/2, 1/4, 1/8, 1/16 en 1/32 step modes. De module kan tot 2,2A per spoel aan (met goede koeling) en werkt in een breed spanningsbereik van 8,2V tot 45V, waardoor hij geschikt is voor diverse stappenmotoren.
Wilt u meer leren over de begrippen full-step, microstepping, unipolaire en bipolaire stappenmotoren? Bekijk dan de tutorial Arduino - Stepper Motor.
Het is indrukwekkend dat het aansturen van snelheid en draairichting van een bipolaire stappenmotor, zoals de NEMA 17, slechts twee Arduino-pinnen vereist.
DRV8825 Stappenmotor Driver Pinout

De DRV8825 driver heeft 16 pinnen. Hieronder vindt u de typische pinout van de DRV8825 module. Sommige varianten kunnen iets andere pinbenamingen hebben, maar de functionaliteit blijft gelijk.
| Pin Naam | Beschrijving |
|---|---|
| VMOT | Motorvoeding (8,2 V tot 45 V). Dit voedt de stappenmotor. |
| GND (voor Motor) | Massa referentie 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. Dit is een uitgangspin die LOW wordt wanneer de H-brug FETs uitgeschakeld zijn door overstroombeveiliging of thermische uitschakeling. |
| GND (voor Logic) | Massa referentie voor logicasignalen. Verbind deze pin met de GND van de Arduino. |
| ENABLE | Actief-LOW pin om motoruitgangen te schakelen. LOW = ingeschakeld, HIGH = uitgeschakeld. |
| M1, M2, M3 | Selectiepinnen voor microstepping resolutie (zie tabel verderop). |
| RESET | Actief-LOW reset pin – de driver wordt gereset als deze pin LOW wordt gemaakt. |
| SLEEP | Actief-LOW slaap pin – deze pin LOW maken zet de driver in low-power slaapmodus. |
| STEP | Step input - een opgaande flank op deze pin verplaatst de motor één stap (of microstep, afhankelijk van instelling). |
| DIR | Richtingsinput - bepaalt draairichting van de motor. |
Daarnaast bevat de module een kleine potentiometer waarmee u de stroombegrenzing kunt instellen, om oververhitting van motor en driver te voorkomen.
Samengevat zijn deze 16 pinnen als volgt ingedeeld op basis van hun functie:
- Pinnen aangesloten op de stappenmotor: 1A, 1B, 2A, 2B
- Pinnen aangesloten op Arduino voor drivercontrole: ENABLE, M1, M2, M3, RESET, SLEEP
- Pinnen voor motorrichting en snelheid aansturing: DIR, STEP
- Pin voor feedback naar Arduino: FAULT
- Pinnen voor motorvoeding: VMOT, GND (motorvoeding massa)
- Pin voor Arduino massa aansluiting: GND (logic ground)
De DRV8825 module heeft geen aparte logicaspanning van de Arduino nodig, omdat hij intern een 3.3V spanningsregelaar gebruikt en voeding haalt uit de motorvoeding. Wel moet u de massa van de Arduino verbinden met de GND (logic) pin van de DRV8825 module voor een gedeelde referentie en correcte werking.
Microstep Configuratie
De DRV8825 ondersteunt microstepping, wat betekent dat elke stap in kleinere deelstappen wordt opgedeeld door tussenliggende stroomwaarden op de motorspoelen toe te passen.
Bij de NEMA 17 motor met een staphoek van 1,8° (200 stappen per omwenteling) betekent dit:
- Full-step (1/1): 200 stappen per omwenteling
- 1/2-step: 400 stappen per omwenteling
- 1/4-step: 800 stappen per omwenteling
- 1/8-step: 1600 stappen per omwenteling
- 1/16-step: 3200 stappen per omwenteling
- 1/32-step: 6400 stappen per omwenteling
Naarmate u hoger microstepping kiest, wordt de motorbeweging soepeler en nauwkeuriger, maar neemt het aantal stappen per omwenteling toe. Bij eenzelfde pulsfrequentie (pulses per seconde) duurt een omwenteling daardoor langer en draait de motor langzamer.
Is uw microcontroller echter snel genoeg om hogere pulssnelheden te leveren, dan kunt u dezelfde of hogere snelheid behouden. De limiet ligt in hoe snel zowel de driver als de microcontroller pulsen kan verwerken zonder stappen te verliezen.
DRV8825 Microstep Selectie Pinnen
De DRV8825 heeft drie microstep selectie-ingangen: M0, M1, en M2. Door deze pinnen op bepaalde logische niveaus te zetten, kiest u één van zes microstepping resoluties:
| M0 Pin | M1 Pin | M2 Pin | Microstep Resolutie |
|---|---|---|---|
| Low | Low | Low | Full step (1/1) |
| High | Low | Low | Half step (1/2) |
| Low | High | Low | Quarter step (1/4) |
| High | High | Low | Eighth step (1/8) |
| Low | Low | High | Sixteenth step (1/16) |
| High | Low | High | Thirty-second step (1/32) |
| Low | High | High | Thirty-second step (1/32) |
| High | High | High | Thirty-second step (1/32) |
Deze selectie-pinnen hebben on-board pull-down weerstanden waardoor ze standaard LOW zijn. Als u ze niet aansluit, werkt de motor in de full-step modus.
Werking
Voor aansturing heeft u minimaal twee Arduino-pinnen nodig: één voor DIR (richting) en één voor STEP (stappen). De DRV8825 leest deze signalen om nauwkeurig de stappenmotor te verplaatsen.
- STEP pin: Elke puls op deze pin verplaatst de motor één microstep (of volledige stap).
- DIR pin: Bepaalt de draairichting van de motor.
De driver zet deze signalen om in aansturing op de motorspoelen via de pinnen 1A, 1B, 2A, en 2B.
Extra pinnen zoals ENABLE, M1, M2, M3, RESET, SLEEP kunt u op drie manieren configureren:
- Ongebruikt laten voor standaard werking
- Hard verbinden met GND of VCC voor vaste modus
- Verbinden met Arduino pinnen voor dynamische aansturing in code
Aansluitschema tussen Arduino, DRV8825 module en Stappenmotor
Onderstaand schema toont de minimale verbindingen tussen Arduino, DRV8825 module en stappenmotor. Met deze opstelling werkt de DRV8825 in de default modus (full-step).

This image is created using Fritzing. Click to enlarge image
In detail:
- VMOT: Verbind met de motorvoeding (bijv. 12V)
- GND (voor Motor): Verbinden met massa van de motorvoeding
- 1A, 1B, 2A, 2B: Verbinden met spoelen van de stappenmotor
- STEP: Verbinden met digitale pin D4 van Arduino
- DIR: Verbinden met digitale pin D3 van Arduino
- GND (voor Logic): Verbinden met Arduino GND pin
- Overige pinnen: niet verbonden
Arduino Code
Snelle Stappen
- Kopieer bovenstaande code en open deze in de Arduino IDE
- Ga in de Arduino IDE naar het icoon Libraries in de linker menubalk
- Zoek op “AccelStepper” en selecteer de AccelStepper bibliotheek door Mike McCauley
- Klik op Installeren om de AccelStepper bibliotheek te installeren

- Open de code in Arduino IDE
- Klik op Upload in de Arduino IDE om de code naar de Arduino te uploaden
- U ziet de motor vooruit en achteruit draaien
Opmerking: Wanneer u de motor in full-step modus laat draaien, is de beweging mogelijk niet volledig soepel, wat normaal is. Voor een soepelere beweging kunt u microstepping inschakelen door de M1, M2 en M3 pinnen te configureren.
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 laat stap voor stap zien hoe u de DRV8825 module met Arduino verbindt en programmeert.
...
(links en video-inhoud blijven ongewijzigd)