Arduino UNO R4 - DC Motor
In deze handleiding leren we hoe u de Arduino UNO R4 kunt gebruiken om een DC motor te besturen. In detail leren we:
- Hoe een DC motor werkt
- Hoe u de snelheid en richting van een DC motor bestuurt
- Hoe u een DC motor bestuurt met een L298N driver

Benodigde Hardware
Of u kunt de volgende kits kopen:
| 1 | × | DIYables STEM V4 IoT Starterskit (Arduino inbegrepen) | |
| 1 | × | DIYables Sensorkit (30 sensoren/displays) | |
| 1 | × | DIYables Sensorkit (18 sensoren/displays) |
Over de DC Motor
DC Motor Pinout
Een DC motor heeft twee draden.
- Positieve draad: vaak rood
- Negatieve draad: vaak zwart

Hoe het Werkt
Wanneer u een DC motor aanschaft, is het belangrijk om te begrijpen op welke spanning deze werkt. Denk bijvoorbeeld aan een DC motor die werkt op 12 volt. Wanneer u de 12V DC motor aansluit op een 12 Volt voeding:
- Verbind 12V met de positieve draad en GND met de negatieve draad: de DC motor draait op volle snelheid rechtsom.
- Verbind 12V met de negatieve draad en GND met de positieve draad: de DC motor draait op volle snelheid linksom.
Wanneer u de verbindingen op de twee draden van de DC motor omwisselt zoals eerder beschreven, verandert de draairichting. Deze techniek helpt bij het besturen van de richting van de DC motor. Dit wordt niet handmatig gedaan, maar door middel van programmering.
Als we minder dan 12V aan de DC motor geven, draait de motor wel, maar niet op volle snelheid. Dit toont aan dat het veranderen van de spanning de motorsnelheid verandert. Maar het direct aanpassen van de spanning is moeilijk in praktische situaties. Daarom is er een eenvoudigere methode om de snelheid van de DC motor te besturen. We houden de voedingsspanning constant en gebruiken een PWM (Pulse Width Modulation) signaal om de motorsnelheid te besturen. Met een hogere PWM duty cycle draait de motor sneller, en vice versa.

Hoe u een DC motor bestuurt met de Arduino UNO R4
Om een DC motor te besturen, moet u de snelheid en richting ervan besturen. De Arduino UNO R4 kan een PWM signaal genereren, maar dit signaal is te zwak in spanning en stroom om de motor direct aan te sturen. Daarom is een hardware driver nodig om de Arduino UNO R4 met de DC motor te verbinden. Deze driver voert twee hoofdtaken uit:
- Versterken van het PWM signaal van de Arduino UNO R4 (zowel stroom als spanning) voor snelheidsbesturing.
- Ontvangen van het stuursignaal van de Arduino UNO R4 om de polariteit van de voeding te veranderen voor richtingsbesturing.

※ Notiz:
- U kunt deze handleiding gebruiken voor elke DC motor. We gebruiken een 12V DC motor als voorbeeld.
- Wanneer u een 5V DC motor gebruikt, hoewel de Arduino UNO R4 pin 5V uitvoert (dezelfde spanning als de DC motor), heeft u nog steeds een driver nodig tussen de Arduino UNO R4 en de DC motor. Dit is omdat de Arduino UNO R4 pin niet genoeg stroom kan leveren voor de DC motor.
Deze tutorial gebruikt de L298N driver om DC motoren te besturen.
Over de L298N Driver
In deze handleiding leren we hoe u de L298N Driver gebruikt om een DC motor te besturen.
L298N Driver Pinout

De L298N Driver kan twee DC motoren tegelijkertijd onafhankelijk besturen, genaamd motor A en motor B. Het heeft 13 pinnen.
De gemeenschappelijke pinnen voor beide motoren:
- VCC pin: voorziet de motor van stroom. De spanning kan variëren van 5 tot 35V.
- GND pin: dit is een gemeenschappelijke aardingspin en moet worden verbonden met GND (0V).
- 5V pin: voedt de L298N module. Het kan 5V gebruiken geleverd door een Arduino UNO R4.
Motor A pinnen (Kanaal A):
- ENA pinnen: Deze besturen de snelheid van Motor A. Om de snelheid aan te passen, verwijder de jumper en verbind de pin met een PWM ingang.
- IN1 & IN2 pinnen: Deze bepalen de richting waarin Motor A draait. Als één pin HIGH is en de andere LOW, zal Motor A draaien. Als beide pinnen HIGH of LOW zijn, stopt Motor A.
- OUT1 & OUT2 pinnen: Deze worden verbonden met Motor A.
Motor B pinnen (Kanaal B):
- ENB pinnen: Deze besturen de snelheid van Motor B. Als u de jumper verwijdert en deze pinnen verbindt met een PWM ingang, kunt u aanpassen hoe snel Motor B draait.
- IN3 & IN4 pinnen: Deze besturen de richting waarin Motor B draait. Als IN3 HIGH is en IN4 LOW, of omgekeerd, zal Motor B draaien. Als beide HIGH of beide LOW zijn, stopt Motor B.
- OUT3 & OUT4 pinnen: Deze worden verbonden met Motor B.
De eerder genoemde L298N driver heeft twee typen invoervoeding:
- Eén voor de DC motor (VCC en GND pinnen): van 5 tot 35V.
- Eén voor het uitvoeren van de L298N module zelf (5V en GND pinnen): van 5 tot 7V.
De L298N driver heeft drie jumpers voor meer complexe toepassingen. Voor eenvoud, verwijder alle jumpers van de L298N driver.
We kunnen twee DC motoren tegelijkertijd besturen met een Arduino UNO R4 en een L298N Driver. Om elke motor te besturen, gebruiken we drie pinnen van de Arduino UNO R4.
※ Notiz:
Deze tutorial toont u hoe u een DC motor bestuurt met kanaal A. Het besturen van een andere DC motor gebeurt op een vergelijkbare manier.
Bedradingsschema
Verwijder alle drie de jumpers van de L298N module voordat u begint met de bedrading.

This image is created using Fritzing. Click to enlarge image
Zie De beste manier om Arduino Uno R4 en andere componenten van stroom te voorzien.
Hoe u de Snelheid van een DC Motor bestuurt via de L298N Driver
U kunt eenvoudig de snelheid van de DC motor aanpassen door een PWM signaal naar de ENA pin op de L298N te sturen. Zo doet u dat:
- Verbind een Arduino UNO R4 pin met de ENA pin op de L298N module.
- Gebruik de analogWrite() functie om een PWM signaal naar de ENA pin te sturen. De L298N driver zal de sterkte van dit PWM signaal versterken om de DC motor aan te drijven.
De snelheid kan elk getal zijn van 0 tot 255. Bij een snelheid van 0 stopt de motor. Bij een snelheid van 255 roteert de motor op zijn hoogste snelheid.
Hoe u de Richting van een DC Motor bestuurt via de L298N Driver
De richting waarin een motor roteert kan worden veranderd door de IN1 en IN2 pinnen op HIGH of LOW in te stellen. De onderstaande tabel toont hoe u de richting voor beide kanalen bestuurt.
| IN1 pin | IN2 pin | Richting |
|---|---|---|
| LOW | LOW | Motor A stopt |
| HIGH | HIGH | Motor A stopt |
| HIGH | LOW | Motor A draait Rechtsom |
| LOW | HIGH | Motor A draait Linksom |
- Motor A roteert in rechtse richting.
- Motor A draait linksom
※ Notiz:
Als u de OUT1 en OUT2 pinnen op de verkeerde manier met de DC motor pinnen verbindt, zal de motor in de tegenovergestelde richting draaien. Om dit op te lossen, wissel simpelweg de posities van de OUT1 en OUT2 pinnen om, of verander de stuursignalen op de IN1 en IN2 pinnen in de programmacode.
Hoe u een DC Motor stopt met Draaien
Er zijn twee methoden om een DC motor uit te schakelen.
- Stel de snelheid in op nul.
- Stel IN1 en IN2 pinnen in op dezelfde waarde (LOW of HIGH).
- Of
Hoe u een DC motor bestuurt met de L298N driver.
Arduino UNO R4 Code
De onderstaande code doet het volgende:
- Laat de DC motor sneller gaan
- Keer de richting om
- Laat de DC motor langzamer gaan
- Stop de motor
Snelle Stappen
Volg deze instructies stap voor stap:
- Als dit uw eerste keer is met de Arduino Uno R4 WiFi/Minima, raadpleeg de tutorial over het instellen van de omgeving voor Arduino Uno R4 WiFi/Minima in de Arduino IDE.
- Sluit de componenten aan volgens het meegeleverde schema.
- Verbind het Arduino Uno R4 board met uw computer via een USB kabel.
- Start de Arduino IDE op uw computer.
- Selecteer het juiste Arduino Uno R4 board (bijvoorbeeld Arduino Uno R4 WiFi) en COM poort.
- Verwijder alle drie jumpers van de L298N module.
- Plak de code in de Arduino IDE.
- Druk op de Upload knop in de Arduino IDE om de code naar de Arduino UNO R4 te uploaden.
- Observaties:
- De DC motor versnelt, draait dan 1 seconde op maximale snelheid.
- De richting van de DC motor verandert.
- De DC motor draait 1 seconde op maximale snelheid in de tegenovergestelde richting.
- De DC motor vertraagt.
- De DC motor stopt gedurende 1 seconde.
- Deze sequentie herhaalt zich continu.
※ Notiz:
In deze tutorial leren we hoe u de relatieve snelheid van een DC motor kunt aanpassen ten opzichte van zijn hoogste snelheid. Om de absolute snelheid in omwentelingen per seconde te besturen, moeten we een PID controller en een encoder gebruiken. We behandelen hoe u de precieze snelheid van de DC motor bestuurt in een andere tutorial.
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.