ESP32 Tutorial 15/55 - DC-motorsnelheidsregeling met ESP32 L293D | SunFounder's ESP32 IoT-leerkit
ESP32-zelfstudie 15/55 - DC-motor snelheidsregeling met ESP32 L293D | SunFounder's ESP32 IoT-leerkit
Het aansturen van een DC-motor met een ESP32 kan ontmoedigend lijken, maar het is heel goed te doen met de juiste componenten en kennis. In deze zelfstudie bouwen we een project waarmee we de snelheid en richting van een DC-motor kunnen regelen met behulp van de L293D-motorstuurmodule. Aan het einde heb je een werkende opstelling die de motor vooruit en achteruit kan laten draaien terwijl je de snelheid aanpast. Voor een visuele referentie, bekijk zeker de video (in video op 00:00).
Hardware uitgelegd
De belangrijkste componenten van dit project zijn de ESP32-microcontroller en de L293D-motorstuurmodule. De ESP32 is een krachtige microcontroller met ingebouwde Wi-Fi- en Bluetooth-mogelijkheden, waardoor deze geschikt is voor IoT-toepassingen. Het kan verschillende hardwarecomponenten aansturen, waaronder motoren, via de GPIO-pinnen. De L293D is een dubbele H-brug motorstuurmodule waarmee je de richting en snelheid van twee DC-motoren kunt regelen. Elke H-brug kan een motor in beide richtingen laten draaien door de polariteit van de spanning op de motorklemmen om te keren. Bovendien kan de L293D een stroom tot 600 mA per kanaal verwerken, waardoor deze geschikt is voor kleine tot middelgrote motoren.
Datasheet-details
| Fabrikant | Texas Instruments |
|---|---|
| Onderdeelnummer | L293D |
| Logica/IO-spanning | 2,5 – 7 V |
| Voedingsspanning | 4,5 – 36 V |
| Uitgangsstroom (per kanaal) | 600 mA (typ.) |
| Piekstroom (per kanaal) | 1,2 A (max.) |
| PWM-frequentierichtlijn | 20 kHz (typ.) |
| Ingangslogische drempels | 0,8 V (hoog), 2,0 V (laag) |
| Spanningsval / RDS(on) / verzadiging | 1,5 V (max.) |
| Thermische limieten | 150 °C (max.) |
| Behuizing | 16-DIP |
| Opmerkingen / varianten | Vierdubbele half-H-stuurmodule |
- Zorg voor voldoende koeling voor toepassingen met hoge stroomsterkte.
- Ontkoppel de voeding met condensatoren om spanningspieken te voorkomen.
- Wees voorzichtig met de bedrading om omgekeerde polariteit te voorkomen.
- Gebruik PWM voor snelheidsregeling om oververhitting te voorkomen.
- Controleer de nominale spanning van de motor om schade te voorkomen.
Bedradingsinstructies

Om de ESP32 en de L293D-motorstuurmodule te bedraden, begin je met het aansluiten van de voeding. Verbind pin 16 van de L293D met de positieve pool van je voeding en pin 4 met de aarde. Verbind vervolgens de motor: de ene klem op pin 3 en de andere op pin 6 van de L293D. Voor stuursignalen verbind je GPIO-pin 13 van de ESP32 met pin 2 op de L293D en GPIO-pin 14 met pin 7. Zorg er ten slotte voor dat je de aarde van de ESP32 verbindt met de aarde van de L293D om een gemeenschappelijk referentiepunt te garanderen. Als de video alternatieve bedrading vermeldt (in video op 05:00), volg dan de specifieke wijzigingen die worden getoond.
Codevoorbeelden & uitleg
De code voor het aansturen van de motor bestaat uit het definiëren van de pinnen voor de motor en het instellen van hun modi. Hier is een fragment uit de setup-functie:
#define motor1A 13
#define motor2A 14
void setup() {
pinMode(motor1A, OUTPUT);
pinMode(motor2A, OUTPUT);
}
In dit fragment definiëren we de motorstuurpinnen als constanten en stellen we ze in als uitgangen in de setup-functie. Dit is cruciaal omdat het de pinnen voorbereidt op het aansturen van de motor. De loop-functie is waar het gedrag van de motor wordt geregeld. Hier is een belangrijk deel van de loop:
void loop() {
digitalWrite(motor1A, HIGH);
digitalWrite(motor2A, LOW);
delay(2000);
digitalWrite(motor1A, LOW);
digitalWrite(motor2A, HIGH);
delay(2000);
digitalWrite(motor1A, LOW);
digitalWrite(motor2A, LOW);
delay(3000);
}
Deze code laat de motor 2 seconden in één richting draaien, keert vervolgens de richting om voor nog eens 2 seconden, en stopt ten slotte de motor gedurende 3 seconden. Deze loop herhaalt zich oneindig, waardoor continue aansturing mogelijk is. Voor meer gedetailleerde inzichten en de volledige code, raadpleeg het volledige programma dat onder het artikel wordt geladen.
Demonstratie / Wat te verwachten
Na succesvolle bedrading en het uploaden van de code, zou je de motor in één richting moeten zien draaien gedurende 2 seconden, van richting moeten zien veranderen voor nog eens 2 seconden, en dan 3 seconden stoppen. Als de motor niet reageert zoals verwacht, controleer dan op veelvoorkomende valkuilen zoals omgekeerde polariteit of onjuiste pinverbindingen (in video op 08:00). Deze opstelling biedt een eenvoudige manier om de snelheid en richting van een DC-motor te regelen met behulp van de ESP32 en L293D.
Videotijdstempels
- 00:00 Start
- 2:01 Inleiding tot DC-motor
- 6:14 L293D-motorstuurmodule
- 9:17 Projectdocumentatie
- 11:04 Bedrading uitgelegd
- 14:41 Arduino-motorregeling met ESP32
- 17:10 Arduino-poorten selecteren voor ESP32-bord
- 18:52 Projectdemonstratie
- 22:08 Motorsnelheidsregeling met ESP32
- 26:22 Snelheidsregeling demo
- 28:01 Arduino-code voor snelheids- en richtingsregeling
- 29:05 Demonstratie van snelheid en richting
#define motor1A 13
#define motor2A 14
// the setup function runs once when you press reset or power the board
void setup() {
// initialize digital pin as an output.
pinMode(motor1A, OUTPUT);
pinMode(motor2A, OUTPUT);
}
// the loop function runs over and over again forever
void loop() {
// Rotate
digitalWrite(motor1A, HIGH);
digitalWrite(motor2A, LOW);
delay(2000);
// Rotate in the opposite direction
digitalWrite(motor1A, LOW);
digitalWrite(motor2A, HIGH);
delay(2000);
// Stop
digitalWrite(motor1A, LOW);
digitalWrite(motor2A, LOW);
delay(3000);
}
Common Course Links
Common Course Files
Dingen die je misschien nodig hebt
-
AmazonPurchase L293D motor driver ICamzn.to
-
eBay
-
AliExpressPurchase L293D motor driver IC from AliExpresss.click.aliexpress.com
Hulpmiddelen en referenties
-
DocumentatieESP32 Tutorial 15/55 - SunFounder motor control documentationdocs.sunfounder.com
Bestanden📁
Datasheet (pdf)
-
L293d_Quadruple_half_bridge_datasheet
l293d_Quadruple_half_bridge_datasheet.pdf0.34 MB