Návod ESP32 15/55 - Riadenie rýchlosti jednosmerného motora s ESP32 L293D | Výučbová súprava ESP32 IoT od SunFounder
ESP32 Návod 15/55 - Riadenie rýchlosti DC motora s ESP32 L293D | SunFounder ESP32 IoT výučbová súprava
Riadenie DC motora s ESP32 sa môže zdať náročné, ale s správnymi komponentmi a pochopením je to celkom zvládnuteľné. V tomto návode vytvoríme projekt, ktorý nám umožní riadiť rýchlosť a smer DC motora pomocou motorového ovládača L293D. Na konci budete mať funkčné zapojenie, ktoré dokáže otáčať motor dopredu a dozadu a zároveň upravovať jeho rýchlosť. Pre vizuálnu referenciu si pozrite video (vo videu o 00:00).
Vysvetlenie hardvéru
Hlavné komponenty tohto projektu zahŕňajú mikrokontrolér ESP32 a motorový ovládač L293D. ESP32 je výkonný mikrokontrolér so zabudovanou Wi-Fi a Bluetooth podporou, vďaka čomu je vhodný pre IoT aplikácie. Dokáže ovládať rôzne hardvérové komponenty, vrátane motorov, prostredníctvom svojich GPIO pinov. L293D je duálny H-mosťový motorový ovládač, ktorý vám umožňuje riadiť smer a rýchlosť dvoch DC motorov. Každá H-mosť dokáže poháňať motor v oboch smeroch obrátením polarity napätia aplikovaného na svorky motora. Okrem toho L293D zvládne prúd až 600 mA na kanál, čo ho robí vhodným pre malé až stredne veľké motory.
Podrobnosti z datasheetu
| Výrobca | Texas Instruments |
|---|---|
| Označenie súčiastky | L293D |
| Logické/IO napätie | 2,5 – 7 V |
| Napájacie napätie | 4,5 – 36 V |
| Výstupný prúd (na kanál) | 600 mA (typ.) |
| Špičkový prúd (na kanál) | 1,2 A (max.) |
| Odporúčaná PWM frekvencia | 20 kHz (typ.) |
| Logické prahové hodnoty vstupu | 0,8 V (vysoká), 2,0 V (nízka) |
| Pokles napätia / RDS(on) / saturácia | 1,5 V (max.) |
| Tepelné limity | 150 °C (max.) |
| Puzdro | 16-DIP |
| Poznámky / varianty | Štvornásobný polovičný H-mosťový ovládač |
- Zabezpečte správne odvádzanie tepla pre aplikácie s vysokým prúdom.
- Odpájajte napájací zdroj kondenzátormi, aby ste zabránili napäťovým špičkám.
- Buďte opatrní pri zapájaní, aby ste zabránili obrátenej polarite.
- Použite PWM na riadenie rýchlosti, aby ste zabránili prehriatiu.
- Skontrolujte menovité napätie motora, aby ste zabránili poškodeniu.
Pokyny na zapojenie

Na zapojenie ESP32 a motorového ovládača L293D začnite pripojením napájania. Pripojte pin 16 L293D na kladný pól vášho napájacieho zdroja a pin 4 na zem. Ďalej pripojte motor: jednu svorku na pin 3 a druhú na pin 6 L293D. Pre riadiace signály pripojte GPIO pin 13 ESP32 na pin 2 L293D a GPIO pin 14 na pin 7. Nakoniec nezabudnite pripojiť zem ESP32 na zem L293D, aby ste zabezpečili spoločnú referenciu. Ak video spomína alternatívne zapojenie (vo videu o 05:00), postupujte podľa konkrétnych zmien, ktoré sú zobrazené.
Príklady kódu a vysvetlenie
Kód na riadenie motora pozostáva z definovania pinov pre motor a nastavenia ich režimov. Tu je ukážka z funkcie setup:
#define motor1A 13
#define motor2A 14
void setup() {
pinMode(motor1A, OUTPUT);
pinMode(motor2A, OUTPUT);
}
V tomto úryvku definujeme riadiace piny motora ako konštanty a nastavíme ich ako výstupy vo funkcii setup. Toto je kľúčové, pretože pripraví piny na riadenie motora. Funkcia loop je miesto, kde sa riadi správanie motora. Tu je kľúčová časť slučky:
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);
}
Tento kód otáča motor v jednom smere počas 2 sekúnd, potom obráti smer na ďalšie 2 sekundy a nakoniec zastaví motor na 3 sekundy. Táto slučka sa bude opakovať donekonečna, čo umožňuje nepretržité riadenie. Pre podrobnejšie informácie a kompletný kód si pozrite celý program, ktorý sa načíta pod článkom.
Demonštrácia / Čo očakávať
Po úspešnom zapojení a nahraní kódu by ste mali vidieť, ako sa motor otáča v jednom smere počas 2 sekúnd, zmení smer na ďalšie 2 sekundy a potom sa zastaví na 3 sekundy. Ak motor nereaguje podľa očakávaní, skontrolujte bežné problémy, ako je obrátená polarita alebo nesprávne pripojenie pinov (vo videu o 08:00). Toto zapojenie poskytuje jednoduchý spôsob riadenia rýchlosti a smeru DC motora pomocou ESP32 a L293D.
Časové značky videa
- 00:00 Začiatok
- 2:01 Úvod do jednosmerného motora
- 6:14 L293D motorový ovládač
- 9:17 Dokumentácia projektu
- 11:04 Vysvetlenie zapojenia
- 14:41 Ovládanie motora Arduino s ESP32
- 17:10 Výber portov Arduino pre dosku ESP32
- 18:52 Ukážka projektu
- 22:08 Ovládanie rýchlosti motora pomocou ESP32
- 26:22 Ukážka ovládania rýchlosti
- 28:01 Kód Arduino pre ovládanie rýchlosti a smeru
- 29:05 Ukážka rýchlosti a smeru
#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
Things you might need
-
AmazonPurchase L293D motor driver ICamzn.to
-
eBay
-
AliExpressPurchase L293D motor driver IC from AliExpresss.click.aliexpress.com
Resources & references
-
DocumentationESP32 Tutorial 15/55 - SunFounder motor control documentationdocs.sunfounder.com
Files📁
Datasheet (pdf)
-
L293d_Quadruple_half_bridge_datasheet
l293d_Quadruple_half_bridge_datasheet.pdf0.34 MB