Raspberry Pi - 28BYJ-48 Stappenmotor ULN2003 Driver
Deze handleiding legt uit hoe u een Raspberry Pi gebruikt om een 28BYJ-48 stappenmotor aan te sturen met behulp van een ULN2003 Driver. We gaan in detail behandelen:
- Hoe u de Raspberry Pi aansluit op de 28BYJ-48 stappenmotor via de ULN2003 driver
- Hoe u de Raspberry Pi programmeert om één 28BYJ-48 stappenmotor aan te sturen via de ULN2003 driver
- Hoe u de Raspberry Pi programmeert om meerdere 28BYJ-48 stappenmotoren aan te sturen via ULN2003 drivers

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 ideaal voor positiecontrole. Ze verdelen een volledige rotatie in een reeks gelijke "stappen". Deze motoren worden vaak toegepast in printers, 3D-printers, CNC-machines en industriële automatisering.
Een kosteneffectieve methode om kennis te maken met stappenmotoren is gebruik te maken van de 28BYJ-48 stappenmotor. Deze wordt doorgaans geleverd met een driverboard gebaseerd op de ULN2003, waardoor het zeer eenvoudig in gebruik is.
Volgens het datasheet, wanneer de 28BYJ-48 motor in full-step modus draait, komt elke stap overeen met een rotatie van 11,25°. Er zijn dus 32 stappen voor één volledige omwenteling (360°/11,25° = 32).
Daarnaast heeft de motor een reductieratioset van 1/64. Dit betekent dat het aantal stappen 32 x 64 = 2048 is. Elke stap is dus gelijk aan 360°/2048 = 0,1758°.
Conclusie: Als de motor ingesteld wordt op 2048 stappen in full-step modus, draait deze één volledige omwenteling.
Pinout van de 28BYJ-48 Stappenmotor met ULN2003 Driver
De 28BYJ-48 stappenmotor heeft 5 pinnen. U hoeft zich niet druk te maken over de details van deze pinnen; sluit deze gewoon aan op de connector van de ULN2003 motor driver.

Over de ULN2003 Stappenmotor Driver Module
De ULN2003 is een veelgebruikte motor driver module voor stappenmotoren.
- Hij heeft vier LEDs die de activiteit van de vier controle-ingangsdraden aangeven, wat een duidelijk visueel effect geeft bij het stappen.
- Daarnaast is er een ON/OFF jumper aanwezig om de stroomtoevoer naar de stappenmotor af te sluiten.
ULN2003 Pinout

De ULN2003 module heeft 6 pinnen en een vrouwelijke connector:
- IN1 pin: wordt gebruikt om de motor aan te sturen en moet verbonden worden met een output pin van de Raspberry Pi.
- IN2 pin: wordt gebruikt om de motor aan te sturen en moet verbonden worden met een output pin van de Raspberry Pi.
- IN3 pin: wordt gebruikt om de motor aan te sturen en moet verbonden worden met een output pin van de Raspberry Pi.
- IN4 pin: wordt gebruikt om de motor aan te sturen en moet verbonden worden met een output pin van de Raspberry Pi.
- GND pin: dit is een gemeenschappelijke aarde en moet verbonden worden met zowel de GND van de Raspberry Pi als die van de externe voeding.
- VDD pin: levert spanning aan de motor en moet verbonden worden met de externe voeding.
- Motor Connector: hier sluit u de stappenmotor op aan.
※ Notiz:
- De spanning van de externe voeding moet overeenkomen met de spanning van de stappenmotor. Bijvoorbeeld, als een stappenmotor 12V DC nodig heeft, dient u een 12V voeding te gebruiken. De 28BYJ-48 stappenmotor heeft 5V DC nodig, dus we gebruiken een 5V voeding.
- Ook al heeft de stappenmotor een 5V voeding nodig, verbind de VDD pin NIET met de 5V pin van de Raspberry Pi. Sluit deze altijd aan op een externe 5V voeding, omdat de stappenmotor teveel stroom trekt.
Bedradingsschema

This image is created using Fritzing. Click to enlarge image
Let niet op de kleur van de draden van de stappenmotor. Sluit simpelweg de mannelijke connector van de 28BYJ-48 stappenmotor aan op de vrouwelijke connector van de ULN2003 driver.
Hoe te programmeren om de stappenmotor te besturen
Er zijn drie methoden om een stappenmotor aan te sturen:
- Full-step
- Half-step
- Micro-step
Voor basistoepassingen kan de full-step methode gebruikt worden. De details van deze drie methoden worden besproken in de laatste sectie van deze handleiding.
Raspberry Pi Code
Snelle Stappen
- Zorg dat u Raspbian of een ander Raspberry Pi compatibel besturingssysteem op uw Pi heeft geïnstalleerd.
- Zorg dat uw Raspberry Pi verbinding heeft met hetzelfde lokale netwerk als uw pc.
- Zorg dat uw Raspberry Pi is verbonden met het internet als u enkele libraries moet installeren.
- Gebruikt u voor het eerst een Raspberry Pi? Begin dan met onze Raspberry Pi Aan de slag gids om eerst de basis te leren.
- Verbind uw pc met de Raspberry Pi via SSH met behulp van de ingebouwde SSH-client op Linux en macOS, of PuTTY op Windows. Zie hoe uw pc met Raspberry Pi te verbinden via SSH.
- Zorg dat u de RPi.GPIO library geïnstalleerd heeft. Als dat niet zo is, installeer deze dan met het volgende commando:
- Maak een Python scriptbestand aan met de naam stepper_uln2003.py en voeg de volgende code toe:
- Sla het bestand op en voer het Python script uit door het volgende commando in de Terminal uit te voeren:
- Kijk hoe de motor draait.
- De motor zou één volledige omwenteling met de klok mee moeten maken, gevolgd door twee omwentelingen tegen de klok in, en daarna twee omwentelingen weer met de klok mee.
Door de waarde van de variabele delay in de code aan te passen, kunt u de snelheid van de stappenmotor wijzigen.
Het script draait continu in een oneindige lus totdat u Ctrl + C indrukt in de Terminal.
Extra Kennis
De stappenmotor trilt tijdens beweging
Maak u geen zorgen als de stappenmotor trillingen vertoont tijdens het bewegen. Dit is een karakteristiek van de stappenmotor. U kunt deze trillingen verminderen door gebruik te maken van de micro-step aansturingstechniek.
Bovendien kan de stappenmotor, indien correct aangestuurd, muzikale tonen produceren zoals een muziekinstrument. Een voorbeeld hiervan vindt u hier op Hackster.io.
Methoden om stappenmotoren aan te sturen
- Full-step: De bewegingsstap is één volledige stap, gelijk aan de gradenwaarde uit het datasheet of de handleiding van de stappenmotor.
- Half-step: Elke full step wordt verdeeld in twee kleinere stappen. De bewegingsstap is de helft van een full step. Deze methode verdubbelt de resolutie van de motor.
- Micro-step: Elke full step wordt verdeeld in veel kleinere stappen. De bewegingsstap is een fractie van de full step, bijvoorbeeld 1/4, 1/8, 1/16, 1/32 of zelfs kleiner. Deze methode zorgt voor een hogere resolutie en soepelere beweging bij lage snelheden. Hoe groter de deler, hoe hoger de resolutie en hoe gladder de beweging.
Als het datasheet van de motor 1,8 graden per stap opgeeft:
- Full-step: De motor beweegt in stappen van 1,8 graden per stap, wat resulteert in 200 stappen per omwenteling.
- Half-step: De motor beweegt in stappen van 0,9 graden per stap, wat resulteert in 400 stappen per omwenteling.
- Micro-step: De motor beweegt in stappen van 0,45, 0,225, 0,1125, 0,05625 graden per stap, resulterend in respectievelijk 800, 1600, 3200, 6400… stappen per omwenteling.
De gebruikte code hierboven maakt gebruik van full-step aansturing.
Resonantie probleem
Dit is bedoeld voor de meer ervaren gebruikers. Beginners hoeven zich hier nog geen zorgen over te maken. Resonantie treedt op bij een bepaalde snelheid waarbij de stapfrequentie gelijk is aan de natuurlijke frequentie van de motor. Dit kan leiden tot hoorbare veranderingen in het motorgeluid en toegenomen trillingen. Bij praktische toepassingen moeten ontwikkelaars hier rekening mee houden.
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 het project te doorlopen.