Search Code

Návod ESP32 15/55 - Riadenie rýchlosti jednosmerného motora s ESP32 L293D | Výučbová súprava ESP32 IoT od SunFounder

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).

ESP32-15_L293D_motor_schematic

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.

L293D-Motor-Driver-IC

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

ESP32-15_L293D_motor_wiring

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

Images

L293D-Motor-Driver-IC
L293D-Motor-Driver-IC
ESP32-15_L293D_motor_schematic
ESP32-15_L293D_motor_schematic
ESP32-15_L293D_motor_wiring
ESP32-15_L293D_motor_wiring
814-ESP32 Tutorial 15/55- Arduino code for L293D motor control
Language: C++
#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);
}

Things you might need

Resources & references

Files📁

Datasheet (pdf)