Arduino Nano - DC Motor
Deze handleiding begeleidt u bij het gebruik van Arduino Nano om een DC motor te besturen. We behandelen in detail:
- Hoe een DC motor werkt
- Hoe Arduino Nano en de L298N driver te gebruiken om een DC motor aan te sturen
- Hoe Arduino Nano te programmeren om zowel de snelheid als de draairichting van een DC motor te regelen
- Hoe Arduino Nano te programmeren om twee DC motoren gelijktijdig te besturen
Hardware Benodigdheden
Of u kunt de volgende kits kopen:
| 1 | × | DIYables Sensorkit (30 sensoren/displays) | |
| 1 | × | DIYables Sensorkit (18 sensoren/displays) |
Over DC Motor
DC Motor Pinout
Een DC motor heeft twee draden: de positieve draad is meestal rood en de negatieve draad meestal zwart.

Hoe Het Werkt
Bij de aanschaf van een DC motor is het belangrijk te letten op de bedrijfsspanning. Bijvoorbeeld een 12V DC motor.
Wanneer u de 12V DC motor voedt met een 12V voeding:
- Wordt de positieve draad verbonden met 12V en de negatieve draad met GND: dan draait de DC motor met maximale snelheid met de klok mee
- Wordt de positieve draad verbonden met GND en de negatieve draad met 12V: dan draait de DC motor met maximale snelheid tegen de klok in
Door de voedingspolen tussen deze twee draden om te wisselen, keert u de draairichting van de motor om. Deze techniek wordt gebruikt om de draairichting te regelen – niet handmatig, maar via programmering.
Als de voedingsspanning lager is dan 12V, zal de motor nog steeds draaien, maar niet op maximale snelheid. Door de spanning aan te passen kan dus de motorsnelheid worden geregeld. Dit is echter niet praktisch, omdat de spanning moeilijk te regelen is. Als alternatief houden we de spanning constant en regelen we de snelheid met een PWM-signaal (Pulsbreedtemodulatie). Hoe hoger de duty cycle van de PWM, hoe sneller de motor draait.

Hoe een DC motor aan te sturen met Arduino Nano
Het aansturen van een DC motor bestaat uit twee aspecten: snelheid en draairichting. Arduino Nano kan een PWM-signaal genereren, maar dit signaal heeft een te lage spanning en stroom om direct de motor aan te sturen. Daarom is een hardware driver nodig tussen Arduino Nano en de motor. Deze driver vervult twee taken:
- Het versterken van het PWM-signaal van Arduino Nano (qua stroom en/of spanning) voor snelheidsregeling
- Het ontvangen van het aansturingssignaal van Arduino Nano om de polariteit van de voeding om te schakelen en zo de draairichting te regelen.

※ Notiz:
- Deze handleiding is toepasbaar voor alle DC motoren. We gebruiken een 12V DC motor als voorbeeld.
- Bij een 5V DC motor is het ondanks dat Arduino Nano 5V uit zijn pinnen geeft (dezelfde spanning als de motor), toch nodig om een driver te gebruiken omdat Arduino Nano pinnen niet voldoende stroom kunnen leveren voor de motor.
- Voor een 5V DC motor is een 5V voeding adapter vereist. Voor een 12V DC motor is een 12V voeding adapter nodig.
Er bestaan veel IC’s en modules die als motor driver kunnen dienen, bijvoorbeeld L293D en L298N. In deze handleiding gebruiken we de L298N driver.
Over L298N Driver
De L298N driver kan DC motoren en stappenmotoren aansturen. Deze handleiding legt uit hoe u deze gebruikt om een DC motor te besturen.
L298N Driver Pinout

De L298N driver kan twee DC motoren onafhankelijk van elkaar aansturen, aangeduid als motor A en motor B. De driver heeft dertien pinnen.
Gemeenschappelijke pinnen voor beide motoren:
- VCC-pin: deze pin levert spanning aan de motor, variërend van 5 tot 35V.
- GND-pin: deze pin is de gemeenschappelijke massa en moet worden aangesloten op 0V (GND).
- 5V-pin: deze pin levert voeding aan de L298N module en kan gevoed worden via een 5V uitgang van Arduino Nano.
Motor A pinnen (Kanaal A):
- ENA-pin(s): Reguleren de snelheid van motor A. Door de jumper te verwijderen en deze pin aan te sluiten op een PWM-uitgang, kan de snelheid via PWM geregeld worden.
- IN1 & IN2 pinnen: regelen de draairichting van motor A. Als een van de twee HIGH is en de andere LOW, draait motor A. Zijn beide inputs gelijk (beide HIGH of beide LOW), stopt motor A.
- OUT1 & OUT2 pinnen: dit zijn de aansluitingen voor motor A.
Motor B pinnen (Kanaal B):
- ENB-pin: Voor snelheidsregeling van motor B, door jumper te verwijderen en aansluiten op PWM-signaal.
- IN3 & IN4 pinnen: regelen de draairichting van motor B, werken als bij motor A.
- OUT3 & OUT4 pinnen: aansluitingen voor motor B.
De L298N driver heeft twee voeding-ingangen:
- één voor de DC motor (VCC en GND) variërend van 5 tot 35V
- één voor de interne werking van de L298N (5V en GND), variërend van 5 tot 7V
Verwijder alle jumpers op de L298N driver voor eenvoud.
Met Arduino Nano en L298N driver kunnen we ook twee DC motoren gelijktijdig en onafhankelijk aansturen. Voor iedere motor zijn slechts drie Arduino Nano pinnen nodig.
※ Notiz:
De rest van deze handleiding richt zich op motor A. Voor motor B gelden vergelijkbare stappen.
Snelheid regelen van DC Motor via L298N Driver
De snelheid van een DC motor is eenvoudig te regelen door een PWM-signaal naar de ENA pin van de L298N te sturen. Doe dit als volgt:
- Verbind een Arduino Nano pin met de ENA pin van de L298N
- Genereer een PWM-signaal naar ENA met analogWrite() functie. De L298N versterkt dit PWM-signaal voor de motor.
De snelheid is een waarde tussen 0 en 255. Bij 0 stopt de motor, bij 255 draait de motor op maximale snelheid.
Draairichting regelen van DC Motor via L298N Driver
De draairichting wordt geregeld door de logische waarden die u geeft aan de IN1 en IN2 pinnen. Onderstaande tabel toont het aansturen van motor A:
| IN1 pin | IN2 pin | Richting |
|---|---|---|
| LOW | LOW | Motor A stopt |
| HIGH | HIGH | Motor A stopt |
| HIGH | LOW | Motor A draait met de klok mee |
| LOW | HIGH | Motor A draait tegen de klok in |
De Arduino code om motor A met de klok mee te laten draaien:
En om motor A tegen de klok in te laten draaien:
※ Notiz:
De draairichting kan ook omgekeerd worden door de OUT1 & OUT2 pinnen van de driver andersom aan te sluiten op de motor.
DC Motor laten stoppen
Er zijn twee manieren om de motor te stoppen:
- Zet de snelheid op 0
- Zet IN1 en IN2 pins beiden op LOW of beiden op HIGH
- Of
Hoe een DC motor te besturen met de L298N driver
Aansluitschema
Verwijder alle drie de jumpers van de L298N module voordat u verbindingen maakt.

This image is created using Fritzing. Click to enlarge image
Arduino Nano Code
De volgende code voert achtereenvolgens uit:
- Verhoogt de snelheid van de DC motor
- Verandert de draairichting
- Verlaagt de snelheid van de DC motor
- Stopt de DC motor
Stapsgewijze instructies
- Verwijder alle drie de jumpers van de L298N module.
- Kopieer de code en open deze in de Arduino IDE.
- Klik op de Upload knop om de code naar de Arduino Nano te uploaden.
- U zult het volgende zien:
- De DC motor versnelt en draait 1 seconde op maximale snelheid.
- De draairichting van de DC motor verandert.
- De DC motor draait nog 1 seconde op maximale snelheid, maar in de andere richting.
- De DC motor vertraagt.
- De DC motor stopt 1 seconde.
- Dit proces herhaalt zich continu.
※ Notiz:
Deze handleiding toont hoe u de snelheid van een DC motor aanpast ten opzichte van de maximale snelheid. Om de absolute snelheid (omwentelingen per seconde) te regelen, is een PID-controller en een encoder nodig. Dit wordt behandeld in een aparte handleiding.
Hoe twee DC motoren aan te sturen met L298N Driver
Binnenkort beschikbaar!
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 bij het begrijpen van de stappen en code.