ESP32 - 28BYJ-48 Stappenmotor ULN2003 Driver
In deze handleiding behandelen we de volgende onderwerpen:
- Het aansturen van een enkele 28BYJ-48 stappenmotor met een ESP32 en ULN2003 driver.
- Het beheren van meerdere 28BYJ-48 stappenmotoren met een ESP32 en ULN2003 driver.

Stappenmotoren blinken uit in nauwkeurige positiecontrole, doordat ze een volledige omwenteling opdelen in discrete “stappen.” Deze motoren worden veel toegepast in diverse apparaten, zoals printers, 3D-printers, CNC-machines en industriële automatiseringssystemen.
Een betaalbare manier om inzicht te krijgen in stappenmotoren is door te experimenteren met 28BYJ-48 stappenmotoren. Deze motoren worden meestal geleverd met een driverboard gebaseerd op de ULN2003, wat het gebruik sterk vereenvoudigt.
Hardware Benodigd
Of u kunt de volgende kits kopen:
| 1 | × | DIYables Sensorkit (30 sensoren/displays) | |
| 1 | × | DIYables Sensorkit (18 sensoren/displays) |
Over 28BYJ-48 Stappenmotor
Volgens het datasheet beweegt de 28BYJ-48 motor in full-step modus in stappen van 11,25 graden, wat resulteert in 32 stappen per volledige omwenteling (berekend als: 360°/11,25° = 32).
Daarnaast bevat de motor een tandwielreductie van 1/64, waardoor het effectieve aantal stappen wordt verhoogd tot 32 x 64 = 2048 stappen per omwenteling. Elke van deze 2048 stappen komt overeen met een draaiing van 360°/2048, ongeveer 0,1758 graden per stap.
Conclusie: als de motor 2048 stappen zet (in full-step modus), draait de motor één volledige omwenteling.
Pinout
De 28BYJ-48 stappenmotor heeft 5 pinnen. U hoeft geen details over deze pinnen te weten; u hoeft ze alleen maar aan te sluiten op de connector van de ULN2003 motor driver.

Over ULN2003 Stappenmotor Driver Module
De ULN2003 is een veelgebruikte motor driver module voor stappenmotoren. Belangrijke kenmerken van deze module zijn:
- Vier LEDs die oplichten om de activiteit van de vier besturings-ingangslijnen te tonen, zodat u visueel de huidige stapstatus van de motor kunt volgen. Deze LEDs zijn praktisch, maar geven ook een visuele feedback van het stappenproces.
- Een ON/OFF jumper op de module waarmee u de voeding van de aangesloten stappenmotor kunt onderbreken. Dit is handig voor het efficiënt beheren van de stroomvoorziening naar de motor.
ULN2003 Pinout

De ULN2003 module heeft 6 pinnen en één vrouwelijke connector:
- IN1 pin: wordt gebruikt om de motor aan te sturen. Sluit deze aan op een output pin van de ESP32.
- IN2 pin: wordt gebruikt om de motor aan te sturen. Sluit deze aan op een output pin van de ESP32.
- IN3 pin: wordt gebruikt om de motor aan te sturen. Sluit deze aan op een output pin van de ESP32.
- IN4 pin: wordt gebruikt om de motor aan te sturen. Sluit deze aan op een output pin van de ESP32.
- GND pin: gemeenschappelijke massapin. Deze moet verbonden zijn met zowel de GND van de ESP32 als van de externe voeding.
- VDD pin: levert stroom aan de motor. Sluit aan op de externe voeding.
- Motor Connector: hier sluit u de motor op aan.
※ Notiz:
Belangrijk bij het voeden van stappenmotoren:
- Zorg dat de spanning van de externe voeding overeenkomt met de spanningsvereisten van de stappenmotor. Bijvoorbeeld, werkt uw motor op 12V DC, gebruik dan ook een 12V voeding. Voor de 28BYJ-48 stappenmotor, die op 5V DC werkt, moet u een 5V voeding gebruiken.
- Let op: zelfs als een stappenmotor ontworpen is voor een 5V voeding, mag u de VDD pin niet aansluiten op de 5V pin van de ESP32. Verbind de VDD pin altijd met een externe 5V voeding. Dit is cruciaal omdat stappenmotoren veel stroom kunnen trekken, wat de ESP32 voeding kan overbelasten en schade kan veroorzaken.
Aansluitschema

This image is created using Fritzing. Click to enlarge image
Let op: de kleur van de draden van de stappenmotor is niet relevant. U hoeft alleen de mannelijke connector (van de 28BYJ-48 stappenmotor) aan te sluiten op de vrouwelijke connector (van de ULN2003 driver).
Hoe programmeert u het aansturen van een stappenmotor
Er zijn drie hoofdmethoden om een stappenmotor aan te sturen:
- Full-Step (volledige stappen)
- Half-Step (halve stappen)
- Micro-Step (microstappen)
Voor basis toepassingen is de full-step methode vaak voldoende. Aan het einde van deze handleiding wordt een gedetailleerde uitleg gegeven van alle drie methoden. Het programmeren van deze methoden kan complex zijn, maar gelukkig zijn er veel bibliotheken die deze complexiteit voor u afhandelen. U hoeft alleen de juiste bibliotheek te gebruiken, zodat het aansturen van stappenmotoren in uw projecten eenvoudiger wordt.
De Arduino IDE bevat een ingebouwde Stepper bibliotheek, maar we raden deze niet aan vanwege de volgende redenen:
- Blokkerende werking: deze bibliotheek werkt op een blokkerende manier, waardoor de ESP32 geen andere taken kan uitvoeren tijdens het aansturen van de stappenmotor.
- Beperkte functionaliteit: de ingebouwde Stepper bibliotheek biedt mogelijk niet alle functies die u voor uw project nodig hebt.
Wij bevelen in plaats daarvan de AccelStepper bibliotheek aan. Deze bibliotheek heeft diverse voordelen:
- Acceleratie en deceleratie: ondersteunt vloeiende snelheidsveranderingen voor preciezere controle.
- Full-step en half-step aansturing: mogelijkheid om tussen volledige en halve stappen te kiezen.
- Meerdere gelijktijdige stappenmotoren: u kunt meerdere motoren tegelijk aansturen, waarbij elke motor onafhankelijk en tegelijk beweegt.
Een nadeel van deze bibliotheek is dat micro-step aansturing niet wordt ondersteund.
ESP32 Code
Snelstart
- Gebruikt u ESP32 voor het eerst? Bekijk dan hoe u de omgeving instelt voor ESP32 in de Arduino IDE.
- Voer de bedrading uit zoals in bovenstaande afbeelding.
- Verbind de ESP32 met uw PC via een micro USB-kabel.
- Open de Arduino IDE op uw PC.
- Selecteer het juiste ESP32 board (bijvoorbeeld ESP32 Dev Module) en de juiste COM-poort.
- Klik op het Bibliotheken-icoon in de linkerzijbalk van de Arduino IDE.
- Zoek op “AccelStepper” en vind de AccelStepper bibliotheek van Mike McCauley.
- Klik op Installeren om de AccelStepper bibliotheek te installeren.

- Kopieer de code hierboven en open deze met de Arduino IDE.
- Klik op de Uploaden-knop in de Arduino IDE om de code naar de ESP32 te uploaden.
- Bekijk de motor draaien. Deze zou moeten:
- één volledige omwenteling met de klok mee draaien, en daarna
- Twee volledige omwentelingen tegen de klok in draaien, en vervolgens
- Twee volledige omwentelingen met de klok mee draaien.
- Kijk naar het resultaat in de Seriële Monitor.
Dit proces wordt oneindig herhaald.
Hoe meerdere 28BYJ-48 stappenmotoren tegelijk aan te sturen
Laten we leren hoe u twee stappenmotoren onafhankelijk van elkaar tegelijkertijd kunt aansturen.
Aansluitschema voor twee 28BYJ-48 stappenmotoren

This image is created using Fritzing. Click to enlarge image