ESP32 - DC Motor
Deze tutorial legt uit hoe u een ESP32 gebruikt om een DC motor aan te sturen met behulp van de L298N Motor Driver. We leren gedetailleerd hoe u de snelheid en de draairichting van een DC motor regelt. U leert eerst een enkele DC motor te besturen, daarna twee DC motoren met één L298N motor driver.
Hardware Vereist
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: Negatief (zwart) en Positief (rood)

Hoe een DC Motor Werkt
De richting en snelheid van de DC motor worden bepaald door de wijze waarop de stroom wordt aangeleverd. Onderstaande afbeelding laat de gedetailleerde relatie zien tussen de voeding en snelheid/richting.

Bij gebruik van PWM geldt: hoe groter de duty cycle van het PWM-signaal, hoe hoger de snelheid van de motor.
Hoe de snelheid en richting van een DC motor te regelen met ESP32
De DC motor werkt op een hogere spanning die de ESP32 kan beschadigen. Daarom kunt u een DC motor niet rechtstreeks op de ESP32 aansluiten. Er is een hardware driver nodig tussen de DC motor en ESP32. De driver heeft drie hoofdtaken:
- De ESP32 beschermen tegen de hoge spanning
- Signaleren van de ESP32 om de polariteit van de stroomtoevoer te wisselen en zo de draairichting van de motor te bepalen
- Het PWM-signaal van de ESP32 versterken (stroom en spanning) om de motorsnelheid te regelen

Er zijn veel DC motor drivers beschikbaar. In deze tutorial gebruiken we de L298N driver.
Over L298N Driver
Een L298N driver kan twee DC motoren of een stappenmotor aansturen. Deze tutorial gebruikt deze driver om de DC motor te besturen.
L298N Driver Pinout
Onderstaande afbeelding toont de pinout van de L298N driver.

Een uitgebreide uitleg van elke pin vindt u in deze Arduino - DC motor tutorial.
Een enkele L298N driver kan twee DC motoren onafhankelijk aansturen:
- Motor A wordt bestuurd via de IN1, IN2, ENA, OUT1, OUT2 pinnen
- Motor B wordt bestuurd via de IN3, IN4, ENB, OUT3, OUT4 pinnen
Hoe de snelheid van een DC motor te regelen via de L298N driver
De snelheid van een DC motor is eenvoudig te regelen door een PWM-signaal naar de ENA/ENB pin van de L298N te sturen. Dit doet u door:
- Een digitale outputpin van de ESP32 te verbinden met de ENA/ENB pin van de L298N
- Een PWM-signaal naar de ENA/ENB pin te genereren met behulp van de analogWrite() functie. Het PWM-signaal wordt versterkt door de L298N driver en stuurt zo de stroom en spanning naar de motor.
De speed is een waarde tussen 0 en 255. Bij 255 draait de motor op maximale snelheid. Bij 0 stopt de motor.
Hoe de draairichting van de DC motor te regelen via de L298N driver
De draairichting van motor A wordt geregeld via IN1 en IN2 pinnen. Onderstaande tabel toont de relatie tussen de signalen op IN1, IN2 en de draairichting.
| IN1 pin | IN2 pin | Richting |
|---|---|---|
| HIGH | LOW | Motor A draait met de klok mee |
| LOW | HIGH | Motor A draait tegen de klok in |
| HIGH | HIGH | Motor A stopt |
| LOW | LOW | Motor A stopt |
Overeenkomstig is de onderstaande tabel voor motor B:
| IN3 pin | IN4 pin | Richting |
|---|---|---|
| HIGH | LOW | Motor B draait met de klok mee |
| LOW | HIGH | Motor B draait tegen de klok in |
| HIGH | HIGH | Motor B stopt |
| LOW | LOW | Motor B stopt |
Laten we leren hoe dit te programmeren. We gebruiken motor A als voorbeeld, motor B werkt vergelijkbaar.
- Motor A richting met de klok mee aansturen
- Motor A richting tegen de klok in aansturen
※ Notiz:
De draairichting van de DC motor is omgekeerd als de bekabeling tussen DC motor en L298N driver is omgedraaid. In dat geval verwissel OUT1 en OUT2.
Hoe een DC motor te stoppen
Er zijn twee manieren om een DC motor te stoppen:
- Snelheid regelen naar 0
- IN1 en IN2 pinnen beide op LOW of HIGH zetten
- Of
Hoe een DC motor aan te sturen met L298N driver
Bedradingsschema
De L298N module heeft drie jumpers. Verwijder ze alle drie voordat u gaat bedraden.

This image is created using Fritzing. Click to enlarge image
ESP32 Code
Bekijk onderstaande code die het volgende een voor een doet:
- ESP32 verhoogt de snelheid van de DC motor.
- ESP32 draait de draairichting van de DC motor om.
- ESP32 verlaagt de snelheid van de DC motor.
- ESP32 stopt de DC motor.
Snelle stappen
- Als u ESP32 voor het eerst gebruikt, bekijk dan hoe u de omgeving instelt voor ESP32 in Arduino IDE.
- Verwijder alle drie jumpers van de L298N module.
- Kopieer de bovenstaande code en plak deze in Arduino IDE.
- Compileer en upload de code naar de ESP32 door op de Upload knop in Arduino IDE te klikken.
- Kijk naar de DC motor. U zult zien:
- De DC motor versnelt en draait 2 seconden op maximale snelheid.
- De draairichting van de DC motor wordt omgekeerd.
- De DC motor draait 2 seconden in de tegenovergestelde richting op maximale snelheid.
- De DC motor vertraagt.
- De DC motor stopt 2 seconden.
- Dit proces wordt oneindig herhaald.
※ Notiz:
In deze tutorial wordt uitgelegd hoe u de relatieve motorsnelheid regelt. Om de absolute snelheid (omwentelingen per seconde) te regelen, is een PID-controller en terugkoppeling van een encoder nodig.
Hoe u twee DC motoren aanstuurt via L298N driver
(komt binnenkort)
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 videotutorial voor een visuele begeleiding bij dit project! De video biedt extra inzichten en helpt u stap-voor-stap.