Tutorial ESP32 15/55 - Controlul vitezei motorului DC cu ESP32 L293D | Kitul de învățare IoT ESP32 de la SunFounder
ESP32 Tutorial 15/55 - Controlul Vitezei Motorului DC cu ESP32 L293D | Kitul de Învățare IoT ESP32 de la SunFounder
Controlul unui motor DC cu un ESP32 poate părea descurajant, dar este destul de gestionabil cu componentele și înțelegerea potrivite. În acest tutorial, vom construi un proiect care ne permite să controlăm viteza și direcția unui motor DC folosind driverul de motor L293D. Până la final, vei avea o configurație funcțională care poate roti motorul înainte și înapoi, ajustându-i viteza. Pentru o referință vizuală, asigură-te că verifici videoclipul (în videoclip la 00:00).
Hardware Explicat
Componentele principale ale acestui proiect includ microcontrolerul ESP32 și driverul de motor L293D. ESP32 este un microcontroler puternic, cu capacități integrate Wi-Fi și Bluetooth, făcându-l potrivit pentru aplicații IoT. Poate controla diverse componente hardware, inclusiv motoare, prin pinii săi GPIO. L293D este un driver de motor dual H-bridge care îți permite să controlezi direcția și viteza a două motoare DC. Fiecare H-bridge poate acționa un motor în orice direcție prin inversarea polarității tensiunii aplicate la bornele motorului. În plus, L293D poate gestiona un curent de până la 600 mA pe canal, făcându-l potrivit pentru motoare mici și medii.
Detalii din Fișa Tehnică
| Producător | Texas Instruments |
|---|---|
| Număr de piesă | L293D |
| Tensiune Logică/IO | 2,5 – 7 V |
| Tensiune de alimentare | 4,5 – 36 V |
| Curent de ieșire (pe canal) | 600 mA (tip.) |
| Curent de vârf (pe canal) | 1,2 A (max) |
| Ghid de frecvență PWM | 20 kHz (tip.) |
| Praguri logice de intrare | 0,8 V (ridicat), 2,0 V (scăzut) |
| Cădere de tensiune / RDS(on) / saturație | 1,5 V (max) |
| Limite termice | 150 °C (max) |
| Pachet | 16-DIP |
| Note / variante | Driver cvadruplu jumătate-H |
- Asigură o disipare termică adecvată pentru aplicații cu curent ridicat.
- Decuplează sursa de alimentare cu condensatoare pentru a preveni vârfurile de tensiune.
- Fii atent la cablare pentru a preveni polaritatea inversată.
- Folosește PWM pentru controlul vitezei pentru a evita supraîncălzirea.
- Verifică tensiunea nominală a motorului pentru a preveni deteriorarea.
Instrucțiuni de Cablare

Pentru a cabla ESP32 și driverul de motor L293D, începe prin conectarea alimentării. Conectează pinul 16 al L293D la borna pozitivă a sursei tale de alimentare și pinul 4 la masă. Apoi, conectează motorul: o bornă la pinul 3 și cealaltă la pinul 6 pe L293D. Pentru semnalele de control, conectează pinul GPIO 13 al ESP32 la pinul 2 pe L293D și GPIO 14 la pinul 7. În final, asigură-te că conectezi masa ESP32 la masa L293D pentru a asigura o referință comună. Dacă videoclipul menționează o cablare alternativă (în videoclip la 05:00), asigură-te că urmezi modificările specifice arătate.
Exemple de Cod & Explicații
Codul pentru controlul motorului constă în definirea pinilor pentru motor și setarea modurilor lor. Iată un extras din funcția de configurare:
#define motor1A 13
#define motor2A 14
void setup() {
pinMode(motor1A, OUTPUT);
pinMode(motor2A, OUTPUT);
}
În acest fragment, definim pinii de control ai motorului ca constante și îi setăm ca ieșiri în funcția de configurare. Acest lucru este crucial, deoarece pregătește pinii pentru controlul motorului. Funcția loop este locul unde comportamentul motorului este controlat. Iată o parte cheie a buclei:
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);
}
Acest cod rotește motorul într-o direcție timp de 2 secunde, apoi inversează direcția pentru alte 2 secunde și, în final, oprește motorul timp de 3 secunde. Această buclă se va repeta la nesfârșit, permițând control continuu. Pentru informații mai detaliate și codul complet, consultă programul complet care se încarcă mai jos în articol.
Demonstrație / Ce să Te Aștepți
După cablarea și încărcarea cu succes a codului, ar trebui să vezi motorul rotindu-se într-o direcție timp de 2 secunde, schimbând direcția pentru alte 2 secunde și apoi oprindu-se timp de 3 secunde. Dacă motorul nu răspunde cum era de așteptat, verifică capcanele comune, cum ar fi polaritatea inversată sau conexiunile incorecte ale pinilor (în videoclip la 08:00). Această configurare oferă o modalitate simplă de a controla viteza și direcția unui motor DC folosind ESP32 și L293D.
Marcaje Temporale din Videoclip
- 00:00 Start
- 2:01 Introducere în motorul DC
- 6:14 Driver de motor L293D
- 9:17 Documentația proiectului
- 11:04 Explicarea cablajului
- 14:41 Controlul motorului Arduino cu ESP32
- 17:10 Selectarea porturilor Arduino pentru placa ESP32
- 18:52 Demonstrația proiectului
- 22:08 Controlul vitezei motorului folosind ESP32
- 26:22 Demo de control al vitezei
- 28:01 Cod Arduino pentru controlul vitezei și direcției
- 29:05 Demonstrația vitezei și direcției
#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
Lucruri de care ai putea avea nevoie
-
AmazonPurchase L293D motor driver ICamzn.to
-
eBay
-
AliExpressPurchase L293D motor driver IC from AliExpresss.click.aliexpress.com
Resurse și referințe
-
DocumentațieESP32 Tutorial 15/55 - SunFounder motor control documentationdocs.sunfounder.com
Fișiere📁
Fișă tehnică (pdf)
-
L293d_Quadruple_half_bridge_datasheet
l293d_Quadruple_half_bridge_datasheet.pdf0.34 MB