Tutorial ESP32 15/55 - Controllo della velocità del motore CC con ESP32 L293D | Kit di apprendimento IoT ESP32 di SunFounder

Tutorial ESP32 15/55 - Controllo della velocità del motore CC con ESP32 L293D | Kit di apprendimento IoT ESP32 di SunFounder

Tutorial ESP32 15/55 - Controllo della Velocità del Motore DC con ESP32 L293D | Kit di Apprendimento IoT ESP32 di SunFounder

Controllare un motore DC con un ESP32 può sembrare scoraggiante, ma è abbastanza gestibile con i componenti giusti e una buona comprensione. In questo tutorial, costruiremo un progetto che ci permette di controllare la velocità e la direzione di un motore DC utilizzando il driver per motori L293D. Alla fine, avrai un impianto funzionante che può far ruotare il motore in avanti e indietro, mentre regoli la sua velocità. Per un riferimento visivo, assicurati di controllare il video (nel video a 00:00).

ESP32-15_L293D_schema_motore

Hardware spiegato

I principali componenti di questo progetto includono il microcontrollore ESP32 e il driver per motori L293D. L'ESP32 è un potente microcontrollore con funzionalità Wi-Fi e Bluetooth integrate, rendendolo adatto per applicazioni IoT. Può controllare vari componenti hardware, inclusi i motori, attraverso i suoi pin GPIO. L'L293D è un driver per motori a doppio H-bridge che consente di controllare la direzione e la velocità di due motori DC. Ogni H-bridge può alimentare un motore in entrambe le direzioni invertendo la polarità della tensione applicata ai terminali del motore. Inoltre, l'L293D può gestire una corrente di fino a 600 mA per canale, rendendolo adatto per motori di piccole e medie dimensioni.

L293D-Driver-Motore-IC

Dettagli del datasheet

Produttore Texas Instruments
Numero di parte L293D
Tensione di logica/IO 2,5 - 7 V
Tensione di alimentazione 4.5 - 36 V
Corrente di uscita (per canale) 600 mA (tip.)
Corrente di picco (per canale) 1,2 A (max)
Indicazioni sulla frequenza PWM 20 kHz (tip.)
Soglie logiche di ingresso 0,8 V (alto), 2,0 V (basso)
Caduta di tensione / RDS(on)/ saturazione 1,5 V (max)
Limiti termici 150 °C (max)
Pacchetto 16-DIP
Note / varianti Quattro mezzi-H driver

  • Assicurati di avere un adeguato dissipatore di calore per applicazioni ad alta corrente.
  • Decoupla l'alimentazione con condensatori per prevenire picchi di tensione.
  • Fai attenzione con il cablaggio per evitare polarità invertite.
  • Usa il PWM per il controllo della velocità per evitare il surriscaldamento.
  • Controlla la tensione nominale del motore per prevenire danni.

Istruzioni di cablaggio

ESP32-15_L293D_motor_wiring

Per collegare l'ESP32 e il driver per motori L293D, inizia collegando l'alimentazione. Collega il pin 16 del L293D al terminale positivo della tua alimentazione e il pin 4 a terra. Successivamente, collega il motore: un terminale al pin 3 e l'altro al pin 6 del L293D. Per i segnali di controllo, collega il pin GPIO 13 dell'ESP32 al pin 2 del L293D e il pin GPIO 14 al pin 7. Infine, assicurati di collegare la massa dell'ESP32 a quella del L293D per garantire un riferimento comune. Se il video menziona un cablaggio alternativo (nel video a :05:00), assicurati di seguire le specifiche modifiche mostrate.

Esempi di codice e guida passo passo

Il codice per controllare il motore consiste nel definire i pin per il motore e impostare le loro modalità. Ecco un estratto dalla funzione di setup:

#define motor1A 13
#define motor2A 14

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

In questo frammento, definiamo i pin di controllo del motore come costanti e li impostiamo come uscite nella funzione di setup. Questo è cruciale poiché prepara i pin per controllare il motore. La funzione loop è dove viene controllato il comportamento del motore. Ecco una parte chiave del 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);
}

Questo codice ruota il motore in una direzione per 2 secondi, poi inverte la direzione per altri 2 secondi e infine ferma il motore per 3 secondi. Questo ciclo si ripeterà indefinitamente, permettendo un controllo continuo. Per ulteriori approfondimenti e il codice completo, fai riferimento al programma completo che si carica sotto l'articolo.

Dimostrazione / Cosa Aspettarsi

Dopo aver collegato e caricato con successo il codice, dovresti vedere il motore ruotare in una direzione per 2 secondi, cambiare direzione per altri 2 secondi e poi fermarsi per 3 secondi. Se il motore non risponde come previsto, controlla i problemi comuni come polarità invertita o connessioni dei pin errate (nel video a :00). Questa configurazione fornisce un modo semplice per controllare la velocità e la direzione di un motore DC utilizzando l'ESP32 e l'L293D.

Timestamp video

  • 00:00 Inizio
  • 2:01 Introduzione al motore DC
  • 6:14 L293D Motore driver
  • 9:17 Documenti di progetto.
  • 11:04 Cablaggio Spiegato
  • 14:41 Controllo motore Arduino con ESP32
  • 17:10 Selezione delle porte Arduino per la scheda ESP32
  • 18:52 Dimostrazione del progetto
  • 22:08 Controllo della Velocità del Motore utilizzando ESP32
  • 26:22 Dimostrazione del Controllo di Velocità
  • 28:01 Controllo della velocità e della direzione codice Arduino
  • 29:05 Dimostrazione di Velocità e Direzione

Immagini

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

Risorse e riferimenti

File📁

Scheda tecnica (pdf)