Search Code

Mafunzo ya ESP32 15/55 - Udhibiti wa Kasi ya Motor ya DC na ESP32 L293D | Kifurushi cha Kujifunza cha IoT cha ESP32 cha SunFounder

Mafunzo ya ESP32 15/55 - Udhibiti wa Kasi ya Motor ya DC na ESP32 L293D | Kifurushi cha Kujifunza cha IoT cha ESP32 cha SunFounder

Mafunzo ya ESP32 15/55 - Udhibiti wa Kasi ya Motor ya DC na ESP32 L293D | Kifurushi cha Kujifunza cha IoT cha SunFounder ESP32

Kudhibiti motor ya DC na ESP32 kunaweza kuonekana kuwa kigumu, lakini ni rahisi kusimamiwa kwa vipengele sahihi na uelewa. Katika mafunzo haya, tutajenga mradi unaoturuhusu kudhibiti kasi na mwelekeo wa motor ya DC kwa kutumia kiendesha motor cha L293D. Mwishoni, utakuwa na mpangilio unaofanya kazi unaoweza kuzungusha motor mbele na nyuma huku ukirekebisha kasi yake. Kwa marejeo ya kuona, hakikisha umeangalia video kwenye (video kwenye 00:00).

Mchoro wa motor ya ESP32-15_L293D

Vifaa Vilivyoelezwa

Vipengele vikuu vya mradi huu vinajumuisha microcontroller ya ESP32 na kiendesha motor cha L293D. ESP32 ni microcontroller yenye nguvu iliyo na uwezo wa Wi-Fi na Bluetooth uliojengewa ndani, na kuifanya kufaa kwa matumizi ya IoT. Inaweza kudhibiti vipengele mbalimbali vya vifaa, ikiwa ni pamoja na motors, kupitia pini zake za GPIO. L293D ni kiendesha motor cha daraja-H mbili (dual H-bridge) kinachokuruhusu kudhibiti mwelekeo na kasi ya motors mbili za DC. Kila daraja-H linaweza kuendesha motor katika mwelekeo wowote kwa kubadilisha polarity ya voltage inayotumika kwenye terminal za motor. Zaidi ya hayo, L293D inaweza kushughulikia mkondo wa hadi 600 mA kwa kila channel, na kuifanya kufaa kwa motors ndogo hadi za kati.

IC ya Kiendesha Motor cha L293D

Maelezo ya Datasheet

Mtengenezaji Texas Instruments
Nambari ya sehemu L293D
Voltage ya Logic/IO 2.5 – 7 V
Voltage ya usambazaji 4.5 – 36 V
Mkondo wa pato (kwa kila channel) 600 mA (typ.)
Mkondo wa kilele (kwa kila channel) 1.2 A (max)
Mwongozo wa mzunguko wa PWM 20 kHz (typ.)
Viwango vya kizingiti cha logic ya kuingiza 0.8 V (juu), 2.0 V (chini)
Kushuka kwa voltage / RDS(on) / kueneza 1.5 V (max)
Mipaka ya joto 150 °C (max)
Kifurushi 16-DIP
Vidokezo / lahaja Kiendesha nusu-H mara nne

 

  • Hakikisha uondoaji wa joto sahihi kwa matumizi ya mkondo wa juu.
  • Tenganisha usambazaji wa nguvu na capacitors ili kuzuia spikes za voltage.
  • Kuwa makini na wiring ili kuzuia polarity iliyogeuzwa.
  • Tumia PWM kwa udhibiti wa kasi ili kuepuka kupasha joto kupita kiasi.
  • Angalia voltage iliyokadiriwa ya motor ili kuzuia uharibifu.

Maagizo ya Wiring

ESP32-15_L293D_motor_wiring

Ili kuunganisha ESP32 na kiendesha motor cha L293D, anza kwa kuunganisha nguvu. Unganisha pini 16 ya L293D kwenye terminal chanya ya usambazaji wako wa nguvu, na pini 4 kwenye ardhi. Ifuatayo, unganisha motor: terminal moja kwenye pini 3 na nyingine kwenye pini 6 ya L293D. Kwa ishara za udhibiti, unganisha pini ya GPIO 13 ya ESP32 kwenye pini 2 ya L293D na pini ya GPIO 14 kwenye pini 7. Hatimaye, hakikisha umeunganisha ardhi ya ESP32 kwenye ardhi ya L293D ili kuhakikisha marejeo ya kawaida. Ikiwa video inataja wiring mbadala (video kwenye 05:00), hakikisha unafuata mabadiliko maalum yaliyoonyeshwa.

Mifano ya Msimbo & Mwongozo

Msimbo wa kudhibiti motor unajumuisha kufafanua pini za motor na kuweka modes zao. Hapa kuna sehemu kutoka kwenye kazi ya setup:

#define motor1A 13
#define motor2A 14

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

Katika kipande hiki, tunafafanua pini za udhibiti wa motor kama constants na kuziweka kama outputs katika kazi ya setup. Hii ni muhimu kwani inatayarisha pini kwa ajili ya kudhibiti motor. Kazi ya loop ndipo tabia ya motor inapodhibitiwa. Hapa kuna sehemu muhimu ya 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);
}

Msimbo huu unazungusha motor katika mwelekeo mmoja kwa sekunde 2, kisha unabadilisha mwelekeo kwa sekunde nyingine 2, na hatimaye unasimamisha motor kwa sekunde 3. Loop hii itarudiwa bila kikomo, ikiruhusu udhibiti unaoendelea. Kwa maarifa ya kina zaidi na msimbo kamili, rejea programu kamili inayopakia chini ya makala.

Maonyesho / Nini cha Kutarajia

Baada ya kufanikiwa kuunganisha na kupakia msimbo, unapaswa kuona motor ikizunguka katika mwelekeo mmoja kwa sekunde 2, kubadilisha mwelekeo kwa sekunde nyingine 2, na kisha kusimama kwa sekunde 3. Ikiwa motor haijibu kama inavyotarajiwa, angalia mitego ya kawaida kama vile polarity iliyogeuzwa au miunganisho ya pini isiyo sahihi (video kwenye 08:00). Mpangilio huu unatoa njia rahisi ya kudhibiti kasi na mwelekeo wa motor ya DC kwa kutumia ESP32 na L293D.

Vidokezo vya Muda wa Video

  • 00:00 Anza
  • 2:01 Utangulizi wa motor ya DC
  • 6:14 Kiendeshaji cha motor L293D
  • 9:17 Nyaraka za Mradi.
  • 11:04 Uelekezaji wa Wiring
  • 14:41 Udhibiti wa motor ya Arduino na ESP32
  • 17:10 Kuchagua Ports za Arduino kwa bodi ya ESP32
  • 18:52 Maonyesho ya mradi
  • 22:08 Udhibiti wa kasi ya motor kwa kutumia ESP32
  • 26:22 Maonyesho ya Udhibiti wa Kasi
  • 28:01 Msimbo wa Arduino wa kudhibiti Kasi na Mwelekeo
  • 29:05 Maonyesho ya Kasi na Mwelekeo

Bilder

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
Språk: 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);
}

Tänker att du kanske behöver

Resurser och referenser

Filer📁

Datablad (pdf)