Caută cod

Tutorial ESP32 16/55 - Mini pompă de apă folosind ESP32 și L293D | Kitul de învățare IoT ESP32 de la SunFounder

Tutorial ESP32 16/55 - Mini pompă de apă folosind ESP32 și L293D | Kitul de învățare IoT ESP32 de la SunFounder

În acest tutorial, vom învăța cum să controlăm o pompă de apă de 5V folosind microcontrolerul ESP32 și driverul de motor L293D. Acest proiect este o introducere excelentă în utilizarea driverelor de motor cu microcontrolere, permițându-vă să controlați dispozitive care necesită mai mult curent decât poate furniza un microcontroler direct. La finalul acestui tutorial, veți avea o pompă de apă funcțională care poate fi activată și dezactivată programatic.

ESP32 este un microcontroler puternic care vine cu capacități integrate de Wi-Fi și Bluetooth, fiind potrivit pentru aplicații IoT. Driverul de motor L293D este utilizat pentru a controla pompa de apă prin gestionarea curentului mai mare necesar pentru a opera motorul. Această configurație ne permite să pornim și să oprim pompa, asigurând în același timp că ESP32 rămâne în siguranță față de consumul excesiv de curent.

Hardware Explicat

În acest proiect, utilizăm microcontrolerul ESP32, cunoscut pentru versatilitatea și opțiunile sale de conectivitate. Acesta poate funcționa ca un Arduino, oferind în același timp caracteristici suplimentare precum Wi-Fi și Bluetooth. Driverul de motor L293D acționează ca o interfață între ESP32 și pompa de apă, permițând controlul funcționării pompei fără a supraîncărca microcontrolerul.

L293D dispune de două punți H, permițând controlul direcției și vitezei motorului. Fiecare punte H poate acționa un motor în ambele direcții, făcându-l potrivit pentru aplicații unde este necesar controlul motorului. În acest caz, vom avea nevoie doar să permitem pompei să funcționeze într-o singură direcție.

Detalii din Fișa Tehnică

ProducătorTexas Instruments
Număr de piesăL293D
Tensiune logică/IO4.5 - 36 V
Tensiune de alimentare4.5 - 36 V
Curent de ieșire (pe canal)600 mA
Curent de vârf (pe canal)1.2 A
Ghid frecvență PWM1 kHz - 10 kHz
Praguri logice de intrare2 V (ridicat), 0.8 V (scăzut)
Cădere de tensiune / RDS(on) / saturație1.5 V (max)
Limite termice+150 °C (max)
PachetDIP-16
Note / varianteInclude diode integrate pentru protecția sarcinilor inductive

  • Asigurați o disipare adecvată a căldurii pentru funcționare continuă.
  • Utilizați condensatoare de decuplare pentru o sursă de alimentare stabilă.
  • Fiți atenți la tensiunea de intrare pentru a preveni deteriorarea.
  • Implementați PWM pentru controlul vitezei dacă este necesar.
  • Verificați cablajul pentru a evita scurtcircuitele, mai ales cu sarcini inductive.

Instrucțiuni de Cablare

ESP32-16-motor-pump_wiring

Pentru a cabla ESP32 și driverul de motor L293D cu pompa de apă, urmați acești pași cu atenție. Mai întâi, conectați sursa de alimentare la L293D. Conectați pinul 1 (pinul de activare pentru motorul A) și pinul 8 (Vcc2) la sursa de tensiune pozitivă (5V). Conectați pinul 4 (masă) la masa circuitului dumneavoastră.

Apoi, cablați ESP32 la L293D. Conectați pinul GPIO 13 de la ESP32 la pinul 2 (intrare 1) de pe L293D, și pinul GPIO 14 la pinul 7 (intrare 2). În final, conectați pompa de apă la pinul 3 (ieșire 1) și pinul 6 (ieșire 2) al L293D. Asigurați-vă că toate conexiunile de masă sunt legate împreună pentru o funcționare corectă. Dacă urmați aceste instrucțiuni, cablarea dumneavoastră ar trebui să fie simplă și funcțională.

Exemple de Cod și Explicații

În cod, definim conexiunile pinilor pentru controlul motorului. Identificatorii motor1A și motor2A corespund pinilor GPIO 13 și 14 de pe ESP32, respectiv. Acești pini vor controla pompa de apă prin driverul L293D.

#define motor1A 13
#define motor2A 14

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

În funcția setup(), inițializăm pinii de control ai motorului ca ieșiri. Aceasta asigură că putem trimite semnale către driverul L293D pentru a controla pompa. Funcția loop() controlează apoi funcționarea pompei.

void loop() {
  digitalWrite(motor1A, HIGH);     
  digitalWrite(motor2A, LOW);   
  delay(5);
  
  digitalWrite(motor1A, LOW);     
  digitalWrite(motor2A, LOW);    
  delay(2000); // așteaptă o secundă
}

În funcția loop(), setăm motor1A la HIGH și motor2A la LOW pentru a porni pompa. După o scurtă întârziere, oprim pompa setând ambii pini la LOW. Acest ciclu se repetă la nesfârșit, permițând pompei să funcționeze pentru o perioadă scurtă și apoi să se oprească.

Demonstrație / Ce să Vă Așteptați

Odată ce ați finalizat cablarea și ați încărcat codul, ar trebui să vedeți pompa de apă activându-se și dezactivându-se într-un ciclu. Pompa va funcționa pentru o durată scurtă, apoi se va opri, creând un model pornit-oprit. Asigurați-vă că sursa de alimentare este adecvată pentru cerințele pompei pentru a evita orice probleme (în video la 09:30).

Marcaje Temporale Video

  • 00:00 Început
  • 1:50 Introducere proiect
  • 3:17 De ce avem nevoie de L293D cu Arduino?
  • 5:47 Cablarea pentru pompa de apă explicată
  • 10:01 Codul Arduino explicat
  • 12:21 Selectarea portului COM pentru ESP32 în Arduino IDE
  • 14:03 Demonstrația funcționării pompei
  • 15:25 Demonstrație cu apă

Imagini

ESP32-15_L293D_motor_schematic
ESP32-15_L293D_motor_schematic
ESP32-16-motor-pump_wiring
ESP32-16-motor-pump_wiring
5V DC water pump
5V DC water pump
815-ESP32 Tutorial 16/55 - Arduino code to control DC water pump
Limba: 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(5);

  // Stop
  digitalWrite(motor1A, LOW);     
  digitalWrite(motor2A, LOW);    
  delay(2000); // wait for a second
}

Resurse și referințe

Fișiere📁

Fișă tehnică (pdf)