Arduino Nano - 28BYJ-48 Stappenmotor ULN2003 Driver
Deze tutorial laat u zien hoe u een Arduino Nano gebruikt om een 28BYJ-48 stappenmotor aan te sturen via de ULN2003 Driver. We leren in detail:
- Hoe u de Arduino Nano aansluit op de 28BYJ-48 stappenmotor via de ULN2003 driver
- Hoe u de Arduino Nano programmeert om één 28BYJ-48 stappenmotor aan te sturen via de ULN2003 driver
- Hoe u meerdere 28BYJ-48 stappenmotoren tegelijk aanstuurt met meerdere ULN2003 drivers via Arduino Nano

Hardware Benodigd
Of u kunt de volgende kits kopen:
| 1 | × | DIYables Sensorkit (30 sensoren/displays) | |
| 1 | × | DIYables Sensorkit (18 sensoren/displays) |
Over de 28BYJ-48 Stappenmotor
Stappenmotoren zijn uitstekend geschikt voor positieregeling. Ze verdelen een volledige omwenteling in een aantal gelijke "stappen". Deze motoren worden veel gebruikt in apparaten zoals printers, 3D-printers, CNC-machines en industriële automatisering.
Een betaalbare manier om kennis te maken met stappenmotoren is het gebruik van de 28BYJ-48 stappenmotor. Deze wordt meestal geleverd met een driverboard gebaseerd op de ULN2003, wat het gebruik eenvoudig maakt.
Volgens het datasheet werkt de 28BYJ-48 motor in full-step modus, waarbij elke stap overeenkomt met een rotatie van 11,25°. Dit betekent dat er 32 stappen zijn per omwenteling (360°/11,25° = 32).
Daarnaast is de motor uitgerust met een 1/64 reductieratel. Dit betekent 32 x 64 = 2048 stappen per volledige omwenteling. Elke stap is daarmee gelijk aan 360°/2048 = 0,1758°.
Conclusie: In full-step modus heeft de motor 2048 stappen nodig om één volledige omwenteling te maken.
De 28BYJ-48 Stappenmotor met ULN2003 Driver Pinout
De 28BYJ-48 stappenmotor heeft 5 pinnen. U hoeft zich niet druk te maken over de details van deze pinnen; ze hoeven alleen correct aangesloten te worden op de ULN2003 motor driver connector.

Over de ULN2003 Stappenmotor Driver
De ULN2003 is een veelgebruikte motor driver module voor stappenmotoren.
- Hij bevat vier LED’s die aangeven welke van de vier stuuringsingangen actief zijn, wat een visueel effect geeft tijdens het stappen van de motor.
- Daarnaast beschikt hij over een ON/OFF jumper om de voeding van de stappenmotor aan of uit te schakelen.
ULN2003 Pinout

De ULN2003 module heeft 6 pinnen en een vrouwelijke connector:
- IN1 pin: wordt gebruikt om de motor aan te sturen. Deze moet verbonden worden met een uitvoerpin op de Arduino Nano.
- IN2 pin: gebruikt om de motor aan te sturen. Verbinden met een Arduino Nano uitvoerpin.
- IN3 pin: gebruikt om de motor aan te sturen. Verbinden met een Arduino Nano uitvoerpin.
- IN4 pin: gebruikt om de motor aan te sturen. Verbinden met een Arduino Nano uitvoerpin.
- GND pin: is de gemeenschappelijke massa. Moet verbonden worden met de GND van zowel de Arduino Nano als de externe voeding.
- VDD pin: levert voeding voor de motor. Wordt aangesloten op de externe voeding.
- Motor Connector: hier wordt de motor op aangesloten.
※ Notiz:
- De spanning van de externe voeding moet gelijk zijn aan de spanning van de stappenmotor. Bijvoorbeeld, als een stappenmotor werkt op 12V DC, gebruiken we een 12V voeding. Voor de 28BYJ-48 stappenmotor is dat 5V DC, dus gebruiken we een 5V voeding.
- Sluit ondanks het feit dat de stappenmotor 5V gebruikt de VDD pin NIET aan op de 5V pin van de Arduino Nano. Sluit deze altijd aan op een externe 5V voeding, omdat de motor anders te veel stroom trekt via de Arduino.
Bedradingsschema

This image is created using Fritzing. Click to enlarge image
Het is niet nodig om op de kleur van de draden van de stappenmotor te letten. Het enige dat telt is dat de mannelijke connector van de 28BYJ-48 stappenmotor correct wordt aangesloten op de vrouwelijke connector van de ULN2003 driver.
Hoe programmeert u het aansturen van een stappenmotor
Er zijn drie manieren om een stappenmotor te regelen:
- Full-step (volle stap)
- Half-step (halve stap)
- Micro-step (microstap)
Voor basis toepassingen kunt u de full-step methode gebruiken. De details van deze drie methoden worden in de laatste sectie van deze handleiding besproken. Het programmeren van deze technieken kan ingewikkeld zijn. Gelukkig zijn er veel bibliotheken die het werk al voor u doen, dus hoeft u die alleen te gebruiken.
De Arduino IDE bevat een ingebouwde Stepper bibliotheek. Echter, wij raden aan om deze niet te gebruiken omdat:
- Het een blocking library is, wat betekent dat de Arduino Nano geen andere taken kan uitvoeren tijdens het aansturen van de stappenmotor.
- Het niet genoeg functies biedt.
In plaats daarvan raden we de AccelStepper bibliotheek aan. Deze biedt:
- Acceleratie
- Deceleratie
- Full-step en half-step aansturing
- Meerdere gelijktijdige stappenmotoren, met onafhankelijke gelijktijdige stapuitvoering per motor
- Nadeel: Geen ondersteuning voor micro-step aansturing
Arduino Nano Code
Snelle stappen
- Klik op het Libraries icoon in de linker balk van de Arduino IDE.
- Zoek naar “AccelStepper” en zoek de AccelStepper bibliotheek gemaakt door Mike McCauley.
- Klik op de Installeren knop om de AccelStepper bibliotheek toe te voegen.

- Kopieer de bovenstaande code en open deze met de Arduino IDE.
- Klik op de Upload knop in de Arduino IDE om de code naar de Arduino Nano te uploaden.
- U zult zien dat de motor gaat draaien. Eerst maakt hij één omwenteling met de klok mee, dan twee omwentelingen tegen de klok in en daarna twee omwentelingen met de klok mee.
Deze procedure wordt continu herhaald.
- Controleer de uitvoer in de Seriële Monitor.
Hoe meerdere 28BYJ-48 stappenmotoren aan te sturen
Laten we ontdekken hoe u twee stappenmotoren afzonderlijk maar tegelijkertijd kunt aansturen.
Bedradingsschema voor twee 28BYJ-48 stappenmotoren

This image is created using Fritzing. Click to enlarge image
Arduino Nano Code voor twee 28BYJ-48 stappenmotoren
Aanvullende kennis
1. Stappenmotor trilt tijdens beweging
Maak u GEEN zorgen als u merkt dat de stappenmotor trilt tijdens het draaien. Dit is een karakteristiek van een stappenmotor. U kunt de trillingen verminderen door gebruik te maken van microstepping aansturing.
Daarnaast kan een goed aangestuurde stappenmotor door de trillingen geluiden produceren, bijna als een muziekinstrument. Een voorbeeld hiervan vindt u hier op Hackster.io.
2. Methoden om stappenmotoren aan te sturen
- Full-step: De bewegingseenheid is één stap, gelijk aan de graadwaarde genoemd in het datasheet of handboek van de stappenmotor.
- Half-step: Verdeelt elke volledige stap in twee kleinere stappen. De bewegingseenheid is de helft van een volledige stap. Dit zorgt voor dubbele resolutie.
- Micro-step: Verdeelt elke volledige stap nog verder in veel kleinere stappen. De bewegingseenheid is een fractie van een volledige stap, bijvoorbeeld 1/4, 1/8, 1/16, 1/32 etc. Dit zorgt voor een hogere resolutie en maakt de motor soepeler bij lage snelheden. Hoe groter de deler, hoe hoger de resolutie en hoe soepeler de beweging.
Als het datasheet bijvoorbeeld 1,8 graden per stap aangeeft:
- Full-step: de motor draait in stappen van 1,8 graden, dus 200 stappen per omwenteling.
- Half-step: de motor draait in stappen van 0,9 graden, dus 400 stappen per omwenteling.
- Micro-step: de stappen worden bijvoorbeeld 0,45, 0,225, 0,1125, 0,05625 graden, wat resulteert in 800, 1600, 3200, 6400... stappen per omwenteling.
De code in deze tutorial gebruikt de full-step methode.
3. Resonantieprobleem
Dit is voor gevorderde gebruikers. Beginners hoeven zich hier niet druk over te maken. Het kan optreden bij bepaalde snelheden wanneer de stapfrequentie gelijk is aan de natuurlijke resonantiefrequentie van de motor. Dit kan een hoorbare verandering in het geluid van de motor geven en een toename van trilling. Ontwikkelaars moeten hier rekening mee houden in praktische toepassingen.
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.