Î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ător
Texas Instruments
Număr de piesă
L293D
Tensiune logică/IO
4.5 - 36 V
Tensiune de alimentare
4.5 - 36 V
Curent de ieșire (pe canal)
600 mA
Curent de vârf (pe canal)
1.2 A
Ghid frecvență PWM
1 kHz - 10 kHz
Praguri logice de intrare
2 V (ridicat), 0.8 V (scăzut)
Cădere de tensiune / RDS(on) / saturație
1.5 V (max)
Limite termice
+150 °C (max)
Pachet
DIP-16
Note / variante
Include 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.
Î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.
Î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
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
}