Tutorial ESP32 16/55 - Mini pompa ad acqua utilizzando ESP32 e L293D | Kit di apprendimento IoT ESP32 di SunFounder
In questo tutorial, impareremo a controllare una pompa d'acqua a 5V utilizzando il microcontroller ESP32 e il driver per motori L293D. Questo progetto è una grande introduzione all'uso dei driver per motori con microcontroller, consentendoti di controllare dispositivi che richiedono più corrente di quanto un microcontroller possa fornire direttamente. Alla fine di questo tutorial, avrai una pompa d'acqua funzionante che può essere attivata e disattivata programmaticamente.

L'ESP32 è un potente microcontrollore dotato di Wi-Fi e Bluetooth integrati, che lo rende adatto per applicazioni IoT. Il driver per motori L293D viene utilizzato per controllare la pompa dell'acqua gestendo l'elevato corrente necessario per far funzionare il motore. Questo sistema ci consente di avviare e fermare la pompa garantendo che l'ESP32 rimanga al sicuro da un assorbimento eccessivo di corrente.
Hardware spiegato
In questo progetto, utilizziamo il microcontrollore ESP32, noto per la sua versatilità e le opzioni di connettività. Può funzionare come un Arduino offrendo funzionalità aggiuntive come Wi-Fi e Bluetooth. Il driver per motori L293D funge da interfaccia tra l'ESP32 e la pompa dell'acqua, consentendo di controllare il funzionamento della pompa senza sovraccaricare il microcontrollore.
L'L293D presenta due H-bridge, permettendo di controllare la direzione e la velocità del motore. Ogni H-bridge può pilotare un motore in entrambe le direzioni, rendendolo adatto per applicazioni in cui è necessario il controllo del motore. In questo caso, avremo bisogno di abilitare solo la pompa per funzionare in una direzione.
Dettagli del foglio dati
| Produttore | Texas Instruments |
|---|---|
| Numero di parte | L293D |
| Tensione logica/IO | 4,5 - 36 V |
| Tensione di alimentazione | 4,5 - 36 V |
| Corrente di uscita (per canale) | 600 mA |
| Corrente di picco (per canale) | 1.2 A |
| Guida sulla frequenza PWM | 1 kHz - 10 kHz |
| Soglie di logica di ingresso | 2 V (alto), 0,8 V (basso) |
| Caduta di tensione / RDS(on)/ saturazione | 1,5 V (max) |
| Limiti termici | +150 °C (max) |
| Pacco | DIP-16 |
| Note / varianti | Include diodi integrati per la protezione da carichi induttivi. |
- Assicurati una corretta dissipazione del calore per un funzionamento continuo.
- Usa condensatori di accoppiamento per un'alimentazione stabile.
- Fai attenzione alla tensione di ingresso per prevenire danni.
- Implementa PWM per il controllo della velocità se necessario.
- Controlla il cablaggio per evitare cortocircuiti, specialmente con carichi induttivi.
Istruzioni di cablaggio

Per collegare l'ESP32 e il driver per motore L293D con la pompa d'acqua, segui attentamente questi passaggi. Innanzitutto, collega l'alimentazione al L293D. Collega il pin 1 (pin di abilitazione per il motore A) e il pin 8 (Vcc2) alla sorgente di tensione positiva (5V). Collega il pin 4 (massa) alla massa del tuo circuito.
Successivamente, collega l'ESP32 all'L293D. Collega il pin GPIO 13 dell'ESP32 al pin 2 (ingresso 1) dell'L293D e il pin GPIO 14 al pin 7 (ingresso 2). Infine, collega la pompa dell'acqua al pin 3 (uscita 1) e al pin 6 (uscita 2) dell'L293D. Assicurati che tutte le connessioni a terra siano collegate insieme per un funzionamento corretto. Se segui queste istruzioni, il tuo cablaggio dovrebbe essere semplice e funzionante.
Esempi di codice e guida passo passo
Nel codice, definiamo le connessioni dei pin per il controllo del motore. Gli identificatorimotor1Aemotor2Acorrispondono ai pin GPIO 13 e 14 sulla ESP32, rispettivamente. Questi pin controlleranno la pompa dell'acqua tramite il driver L293D.
#define motor1A 13
#define motor2A 14
void setup() {
pinMode(motor1A, OUTPUT);
pinMode(motor2A, OUTPUT);
}
Nellasetup()funzione, inizializziamo i pin di controllo del motore come uscite. Questo assicura che possiamo inviare segnali al driver L293D per controllare la pompa. Illoop()la funzione quindi controlla il funzionamento della pompa.
void loop() {
digitalWrite(motor1A, HIGH);
digitalWrite(motor2A, LOW);
delay(5);
digitalWrite(motor1A, LOW);
digitalWrite(motor2A, LOW);
delay(2000); // wait for a second
}
Nellaloop()funzione, impostiamomotor1Aa ALTA emotor2Atroppo BASSO per avviare la pompa. Dopo un breve ritardo, fermiamo la pompa impostando entrambi i pin su BASSO. Questo ciclo si ripete indefinitamente, consentendo alla pompa di funzionare per un breve periodo e poi fermarsi.
Dimostrazione / Cosa Aspettarsi
Una volta completato il cablaggio e caricato il codice, dovresti vedere la pompa dell'acqua attivarsi e disattivarsi in un ciclo. La pompa funzionerà per un breve periodo, poi si fermerà, creando un modello di accensione e spegnimento. Assicurati che la tua fonte di alimentazione sia adeguata per le esigenze della pompa per evitare problemi (nel video a 09:30).
Timestamp video
- 00:00 Inizio
- 1:50 Introduzione del Progetto
- 3:17 Perché abbiamo bisogno di L293D con Arduino?
- 5:47 Cablaggio per pompa dell'acqua spiegato
- 10:01 Spiegazione del codice Arduino
- 12:21 Selezionare la porta COM per ESp32 su Arduino IDE
- 14:03 Dimostrazione del funzionamento della pompa
- 15:25 Dimostrazione con acqua
#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
}
Common Course Links
Common Course Files
Risorse e riferimenti
-
DocumentazioneTutorial ESP32 16/55 - documentazione del motore SunFounderdocs.sunfounder.com
File📁
Scheda tecnica (pdf)
-
L293d_Quadruple_half_bridge_datasheet
l293d_Quadruple_half_bridge_datasheet.pdf0.34 MB