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).
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.
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

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
#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(2000);
// Rotate in the opposite direction
digitalWrite(motor1A, LOW);
digitalWrite(motor2A, HIGH);
delay(2000);
// Stop
digitalWrite(motor1A, LOW);
digitalWrite(motor2A, LOW);
delay(3000);
}
Common Course Links
Common Course Files
Cose di cui potresti avere bisogno
-
Amazon
-
eBayAcquista un chip L293D da eBay.ebay.us
-
AliExpressAcquista il circuito integrato driver motore L293D da AliExpresss.click.aliexpress.com
Risorse e riferimenti
-
DocumentazioneDocumentazione sul controllo del motore SunFounder ESP32 Tutorial 15/55docs.sunfounder.com
File📁
Scheda tecnica (pdf)
-
L293d_Quadruple_half_bridge_datasheet
l293d_Quadruple_half_bridge_datasheet.pdf0.34 MB