Arduino Nano - Stappenmotor
Deze tutorial legt uit hoe u een Arduino Nano kunt gebruiken om een stappenmotor aan te sturen met behulp van een L298N driver. We leren in detail:
- Hoe u een Arduino Nano en L298N driver gebruikt om een bipolaire stappenmotor aan te sturen
- Hoe u de Arduino Nano programmeert om de positie van de stappenmotor te controleren
- Hoe u de snelheid van de stappenmotor programmeert met Arduino Nano
- Hoe u de draairichting van de stappenmotor bepaalt met Arduino Nano
Deze tutorial is toepasbaar op alle bipolaire stappenmotoren met vier draden. We gebruiken een NEMA 17 stappenmotor als voorbeeld.

Wilt u een ander type stappenmotor aansturen? Bekijk dan deze tutorial Arduino Nano - 28BYJ-48 Stappenmotor.
Hardware Benodigdheden
Of u kunt de volgende kits kopen:
| 1 | × | DIYables Sensorkit (30 sensoren/displays) | |
| 1 | × | DIYables Sensorkit (18 sensoren/displays) |
Over Stappenmotor
Twee veelvoorkomende typen stappenmotoren zijn:
- bipolaire: deze motor heeft 4 draden
- unipolaire: deze motor heeft 5 of 6 draden
Bij een 6-draads unipolaire stappenmotor kunnen we vier van de zes draden gebruiken om deze als een bipolaire stappenmotor aan te sturen.
Voor een 5-draads unipolaire stappenmotor, raadpleeg de tutorial Arduino Nano - aansturen 28BYJ-48 stappenmotor met ULN2003 driver voor meer informatie.
Deze tutorial richt zich uitsluitend op de bipolaire stappenmotor.
Bipolaire Stappenmotor pinout
De bipolaire stappenmotor heeft vier pinnen, waarvan de naamgeving varieert per fabrikant. De volgende tabel geeft enkele van de meest gebruikte namen weer:
| PIN NO | Naamgeving 1 | Naamgeving 2 | Naamgeving 3 |
|---|---|---|---|
| 1 | A+ | A | A |
| 2 | A- | A | C |
| 3 | B+ | B | B |
| 4 | B- | B | D |

De pinvolgorde, de labels van de draden, en de draadkleuren kunnen verschillen per fabrikant. Raadpleeg altijd het datasheet of de handleiding om te weten welke draadkleur bij welke pinnaam hoort. De afbeelding hierboven toont ook de specificaties van twee verschillende motoren met verschillende bedrading en kleuren.
Stappen per Omwenteling
De specificatie van de motor bepaalt de waarde DEG_PER_STEP. Afhankelijk van de aansturingsmethode kan STEP_PER_REVOLUTION als volgt worden berekend:
| Aansturingsmethode | Stappen per omwenteling | Werkelijke graad per stap |
|---|---|---|
| Full-step | STEP_PER_REVOLUTION = 360 / DEG_PER_STEP | DEG_PER_STEP |
| Half-step | STEP_PER_REVOLUTION = (360 / DEG_PER_STEP) * 2 | DEG_PER_STEP / 2 |
| Micro-step (1/n) | STEP_PER_REVOLUTION = (360 / DEG_PER_STEP) * n | DEG_PER_STEP / n |
Als voorbeeld, als het datasheet van de motor 1,8 graden/stap vermeldt:
| Aansturingsmethode | Stappen per omwenteling | Werkelijke graad per stap |
|---|---|---|
| Full-step | 200 stappen/omw. | 1,8° |
| Half-step | 400 stappen/omw. | 0,9° |
| Micro-step (1/n) | (200 * n) stappen/omw. | (1,8 / n)° |
Hoe een stappenmotor aansturen met Arduino Nano
Arduino Nano kan signalen genereren om de stappenmotor aan te sturen, maar deze signalen hebben niet genoeg spanning en/of stroom voor de motor. Daarom is een hardware driver nodig tussen Arduino Nano en de stappenmotor. Deze driver heeft twee functies:
- Het versterken van de stuur-signalen van Arduino Nano qua stroom en spanning
- Het beschermen van Arduino Nano tegen de hoge stroom en spanning die de stappenmotor gebruikt
Er zijn verschillende hardware drivers die geschikt zijn voor het aansturen van stappenmotoren. Een van de populairste is de L298N Driver.
Over de L298N Driver
Een L298N Driver kan gebruikt worden voor het aansturen van twee DC motoren of één stappenmotor. Deze tutorial legt uit hoe u de driver gebruikt om een stappenmotor aan te sturen.
L298N Driver Pinout

De L298N Driver heeft 11 pinnen en drie jumpers:
- VCC pin: Levert de voeding voor de motor, van 5 tot 35V.
- GND pin: Gemeenschappelijke aarde, moet verbonden worden met GND (0V).
- 5V pin: Levert voeding voor de L298N module zelf, meestal 5V via Arduino Nano.
- IN1, IN2, IN3, IN4 pinnen: Verbonden met Arduino pinnen om besturingssignalen door te geven.
- OUT1, OUT2, OUT3, OUT4 pinnen: Verbonden met de stappenmotor.
- ENA, ENB jumpers: Gebruikt om de stappenmotor in te schakelen; beide jumpers moeten geplaatst zijn.
- 5V-EN jumper: Als deze geplaatst is, krijgt de module zijn voeding van VCC en hoeft de 5V pin niet aangesloten te worden. Als de jumper verwijderd is, moet voeding via de 5V pin worden geleverd.
De L298N driver heeft twee voedingstromen:
- Één voeding voor de stappenmotor (VCC en GND pinnen): 5 tot 35V
- Één voeding voor de interne werking van de L298N module (5V en GND pinnen): 5 tot 7V. Als de 5V-EN jumper geplaatst is, is deze voeding via de 5V pin niet nodig.
Bedradingsschema

This image is created using Fritzing. Click to enlarge image
※ Notiz:
- Laat de drie jumpers op de L298N module zitten als u een voeding van 12V of lager gebruikt.
- De volgorde van de pinnen op de stappenmotor kan per fabrikant verschillen. Gebruik de onderstaande tabel voor correcte bedrading.
Bedradingsschema tussen Arduino Nano en L298N Driver
| Arduino Nano pins | L298N pins |
|---|---|
| 7 | IN1 |
| 6 | IN2 |
| 5 | IN3 |
| 4 | IN4 |
Bedradingsschema tussen L298N Driver en Stappenmotor
Belangrijk! Let niet op de volgorde van de draden in het voorbeeld hierboven; deze is illustratief. De pinvolgorde kan verschillen per fabrikant. Zorg dat uw bedrading overeenkomt met de volgende tabel.
| L298N pins | Stappenmotor pins | Of | Of |
|---|---|---|---|
| OUT1 | A+ | A | A |
| OUT2 | A- | A | C |
| OUT3 | B+ | B | B |
| OUT4 | B- | B | D |
Voordat u een stappenmotor aanschaft, is het aan te raden het datasheet, specificaties of de handleiding door te nemen. Controleer of de mapping van draadkleur naar pinnaam vermeld staat. Bijvoorbeeld, deze stappenmotor geeft de volgende mapping weer:

Op basis van deze mapping is de bedradingsschema:
| L298N pins | stappenmotor pins | draadkleur |
|---|---|---|
| OUT1 | A | zwarte draad |
| OUT2 | C | groene draad |
| OUT3 | B | rode draad |
| OUT4 | D | blauwe draad |
※ Notiz:
In alle bovenstaande bedradingstabellen tussen de stappenmotor en L298N Driver kunnen OUT1 en OUT2, en OUT3 en OUT4 worden omgewisseld. Daardoor zijn er meerdere bedradingopties. Wel kan door omwisselen de draairichting van de motor veranderen (van rechtsom naar linksom en andersom).
Hoe een stappenmotor aansturen met een L298N driver
Het aansturen van een stappenmotor kan lastig zijn, zeker als u wilt dat het niet blokkerend gebeurt. Gelukkig maakt de AccelStepper library dit heel eenvoudig.
De Arduino IDE bevat een ingebouwde Stepper library. Wij raden het gebruik hiervan echter af om de volgende redenen:
- Deze library werkt blokkerend, wat betekent dat de Arduino Nano geen andere taken kan uitvoeren terwijl de stappenmotor aangestuurd wordt.
- De functieset is beperkt.
Wij adviseren daarom de AccelStepper library, omdat deze biedt:
- Versnelling (acceleration)
- Vertraging (deceleration)
- Full-step en half-step aansturing
- Gelijktijdige aansturing van meerdere stappenmotoren met individuele stappen
- Nadeel: Geen ondersteuning voor microstepping.
Hoe de positie van de stappenmotor regelen via L298N Driver
Het doel om de stappenmotor naar een gewenste positie te bewegen bereikt u met:
※ Notiz:
De functie stepper.moveTo() is niet-blokkerend, wat een groot voordeel is van deze library. Houd rekening met het volgende bij gebruik:
- Roep stepper.run() zo vaak mogelijk aan, bij voorkeur in de void loop() functie.
- Vermijd het gebruik van de delay() functie terwijl de motor beweegt.
- Gebruik geen Serial.print() en Serial.println() functies tijdens het lopen van de motor, dit vertraagt de stappenmotor.
Hoe de snelheid van de stappenmotor regelen via L298N Driver
U kunt niet alleen de snelheid instellen, maar ook de versnelling en vertraging met deze functies:
Hoe de draairichting van de stappenmotor regelen via L298N Driver
Als de motor bedrading volgens schema is aangesloten, zal de motor draaien in:
- Kloksgewijze richting: wanneer u de motor van een lagere naar een hogere positie aanstuurt (positie omhoog)
- Counterkloksgewijze richting: wanneer u de motor van een hogere naar een lagere positie aanstuurt (positie omlaag)
Voorbeelden:
- Als de huidige positie 100 is en de motor wordt op 200 gezet, draait deze rechtsom.
- Bij een huidige positie van -200 en aansturen naar -100 draait de motor ook rechtsom.
- Bij een huidige positie van 200 en aansturen naar 100 draait de motor linksom.
- Bij een huidige positie van -100 en aansturen naar -200 draait de motor linksom.
※ Notiz:
Zoals hierboven genoemd, als u OUT1 en OUT2 of OUT3 en OUT4 verwisselt, kan een toenemende positie leiden tot linksom draaien en een afnemende positie tot rechtsom draaien.
Hoe de stappenmotor stoppen
- De stappenmotor stopt automatisch wanneer de gewenste positie bereikt is.
- U kunt de motor ook abrupt stoppen met de functie stepper.stop().
Arduino Nano Code - Stappenmotor Code
De onderstaande code:
- Laat de motor één volledige omwenteling rechtsom draaien
- Pauzeert de motor gedurende 5 seconden
- Laat de motor één volledige omwenteling linksom draaien
- Pauzeert de motor weer 5 seconden
- Herhaalt het proces continu
Snelle Stappen
- Klik op het Bibliotheken icoon in de linkerzijbalk van de Arduino IDE.
- Zoek naar “AccelStepper” en zoek de AccelStepper bibliotheek van Mike McCauley.
- Klik op de Installeren-knop om de bibliotheek te installeren.

- Kopieer de code en open deze in de Arduino IDE.
- Klik op de Uploaden-knop om de code naar uw Arduino Nano te sturen.
- De stappenmotor draait één omwenteling rechtsom, pauzeert 5 seconden, draait één omwenteling linksom, pauzeert weer 5 seconden, en herhaalt dit.
- Bekijk het resultaat in de Seriële Monitor.
Code Uitleg
Bekijk de regel-voor-regel uitleg in de commentaren van de broncode!
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.