Soek Kode

ESP32 Tutoriaal 15/55 - GS-motorspoedbeheer met ESP32 L293D | SunFounder se ESP32 IoT-leerkit

ESP32 Tutoriaal 15/55 - GS-motorspoedbeheer met ESP32 L293D | SunFounder se ESP32 IoT-leerkit

ESP32 Tutoriaal 15/55 - GS-motor Spoedbeheer met ESP32 L293D | SunFounder se ESP32 IoT-leerkit

Om 'n GS-motor met 'n ESP32 te beheer kan skrikwekkend lyk, maar dit is redelik hanteerbaar met die regte komponente en begrip. In hierdie tutoriaal gaan ons 'n projek bou wat ons in staat stel om die spoed en rigting van 'n GS-motor te beheer met behulp van die L293D-motorbestuurder. Aan die einde sal jy 'n werkende opstelling hê wat die motor vorentoe en agtertoe kan draai terwyl jy sy spoed aanpas. Vir 'n visuele verwysing, maak seker dat jy die video by (in video by 00:00) kyk.

ESP32-15_L293D_motor_schematic

Hardeware Verduidelik

Die hoofkomponente van hierdie projek sluit die ESP32-mikrobeheerder en die L293D-motorbestuurder in. Die ESP32 is 'n kragtige mikrobeheerder met ingeboude Wi-Fi- en Bluetooth-vermoëns, wat dit geskik maak vir IoT-toepassings. Dit kan verskeie hardeware-komponente, insluitend motors, deur sy GPIO-penne beheer. Die L293D is 'n dubbele H-brug-motorbestuurder wat jou in staat stel om die rigting en spoed van twee GS-motors te beheer. Elke H-brug kan 'n motor in enige rigting dryf deur die polariteit van die spanning wat op die motorklemme toegepas word, om te keer. Daarbenewens kan die L293D 'n stroom van tot 600 mA per kanaal hanteer, wat dit geskik maak vir klein tot mediumgrootte motors.

L293D-Motorbestuurder-IC

Datablad Besonderhede

Vervaardiger Texas Instruments
Deelnommer L293D
Logika/IO-spanning 2.5 – 7 V
Toevoerspanning 4.5 – 36 V
Uitsetstroom (per kanaal) 600 mA (tip.)
Piekstroom (per kanaal) 1.2 A (maks.)
PWM-frekwensie-riglyn 20 kHz (tip.)
Inset-logikadrempels 0.8 V (hoog), 2.0 V (laag)
Spanningsval / RDS(on) / versadiging 1.5 V (maks.)
Termiese limiete 150 °C (maks.)
Pakket 16-DIP
Notas / variante Viervoudige half-H-bestuurder

 

  • Verseker behoorlike hitte-afvoer vir hoëstroomtoepassings.
  • Ontkoppel die kragtoevoer met kapasitors om spanningspulse te voorkom.
  • Wees versigtig met bedrading om omgekeerde polariteit te voorkom.
  • Gebruik PWM vir spoedbeheer om oorverhitting te vermy.
  • Kontroleer die motor se gegradeerde spanning om skade te voorkom.

Bedradingsinstruksies

ESP32-15_L293D_motor_wiring

Om die ESP32 en die L293D-motorbestuurder te bedraad, begin deur die krag te koppel. Koppel pen 16 van die L293D aan die positiewe terminaal van jou kragtoevoer, en pen 4 aan grond. Koppel volgende die motor: een terminaal aan pen 3 en die ander aan pen 6 op die L293D. Vir beheerseine, koppel die ESP32 se GPIO-pen 13 aan pen 2 op die L293D en GPIO-pen 14 aan pen 7. Maak laastens seker dat jy die ESP32 se grond aan die L293D-grond koppel om 'n gemeenskaplike verwysing te verseker. As die video alternatiewe bedrading noem (in video by 05:00), maak seker dat jy die spesifieke veranderinge wat gewys word, volg.

Kode Voorbeelde & Deurloop

Die kode vir die beheer van die motor bestaan uit die definiëring van die penne vir die motor en die stel van hul modusse. Hier is 'n uittreksel uit die opstellingsfunksie:

#define motor1A 13
#define motor2A 14

void setup() {
  pinMode(motor1A, OUTPUT);
  pinMode(motor2A, OUTPUT);  
}

In hierdie uittreksel definieer ons die motorbeheerpenne as konstantes en stel hulle as uitsette in die opstellingsfunksie. Dit is noodsaaklik aangesien dit die penne voorberei vir die beheer van die motor. Die lusfunksie is waar die motor se gedrag beheer word. Hier is 'n sleuteldeel van die lus:

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);
}

Hierdie kode draai die motor in een rigting vir 2 sekondes, keer dan die rigting om vir nog 2 sekondes, en stop uiteindelik die motor vir 3 sekondes. Hierdie lus sal onbepaald herhaal, wat deurlopende beheer moontlik maak. Vir meer gedetailleerde insigte en die volledige kode, verwys na die volledige program wat onder die artikel laai.

Demonstrasie / Wat om te VerwAg

Na suksesvolle bedrading en oplaai van die kode, behoort jy te sien dat die motor in een rigting vir 2 sekondes draai, van rigting verander vir nog 2 sekondes, en dan vir 3 sekondes stop. As die motor nie reageer soos verwag nie, kyk vir algemene slaggate soos omgekeerde polariteit of verkeerde penverbindings (in video by 08:00). Hierdie opstelling bied 'n eenvoudige manier om die spoed en rigting van 'n GS-motor te beheer met behulp van die ESP32 en L293D.

Video Tydstempels

  • 00:00 Begin
  • 2:01 Inleiding tot GS-motor
  • 6:14 L293D-motorbestuurder
  • 9:17 Projekdokumente
  • 11:04 Bedrading verduidelik
  • 14:41 Arduino-motorbeheer met ESP32
  • 17:10 Kies Arduino-poorte vir ESP32-bord
  • 18:52 Projekdemonstrasie
  • 22:08 Motorspoedbeheer met ESP32
  • 26:22 Spoedbeheer-demo
  • 28:01 Spoed- en rigtingbeheer Arduino-kode
  • 29:05 Demonstrasie van spoed en rigting

Beelde

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
Taal: 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);
}

Goedere wat jy dalk nodig het

Hulpbronne en verwysings

Lêers📁

Datasheet (pdf)