Tutorial ESP32 16/55 - Mini pompa ad acqua utilizzando ESP32 e L293D | Kit di apprendimento IoT ESP32 di SunFounder

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

ProduttoreTexas Instruments
Numero di parteL293D
Tensione logica/IO4,5 - 36 V
Tensione di alimentazione4,5 - 36 V
Corrente di uscita (per canale)600 mA
Corrente di picco (per canale)1.2 A
Guida sulla frequenza PWM1 kHz - 10 kHz
Soglie di logica di ingresso2 V (alto), 0,8 V (basso)
Caduta di tensione / RDS(on)/ saturazione1,5 V (max)
Limiti termici+150 °C (max)
PaccoDIP-16
Note / variantiInclude 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

ESP32-16-motor-pump_wiring

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

Immagini

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
Lingua: C++
Copia!

Risorse e riferimenti

File📁

Scheda tecnica (pdf)