Lezione 95: Utilizzare uno shield per motori DC L293D | Corso Arduino passo dopo passo

Lezione 95: Utilizzare uno shield per motori DC L293D | Corso Arduino passo dopo passo

In questo tutorial, esploreremo come controllare quattro motori DC utilizzando lo scudo motore L293D con Arduino. Questa configurazione è particolarmente utile per le applicazioni di robotica, come la costruzione di un'auto robot, dove il controllo preciso del motore è essenziale. Alla fine di questa lezione, avrai un modello funzionante che può far funzionare più motori contemporaneamente.

Lo scudo motore L293D semplifica il processo di cablaggio e ti consente di controllare i motori con solo poche connessioni. Imparerai a cablare lo scudo all'Arduino, impostare il codice e eseguire i comandi di controllo del motore in modo efficace. Per una spiegazione più visiva, puoi fare riferimento al video a timestamp specifici per dettagli sul cablaggio e la codifica (nel video a mm:ss).

Hardware spiegato

Il componente principale di questo progetto è il driver per motori L293D, che è un driver per motori a ponte H quadruplo. Ciò significa che può controllare due motori in entrambe le direzioni, consentendo un controllo completo sulla rotazione del motore. Lo scudo si collega direttamente all'Arduino, rendendo facile gestire l'alimentazione e i segnali di controllo senza cablaggi disordinati.

Ogni chip L293D può gestire fino a 600 mA di corrente per canale e opera a voltaggi che vanno da 4,5V a 36V. Questo intervallo lo rende adatto a una varietà di motori DC. Inoltre, il modulo è dotato di un jumper che consente di alimentare sia i motori che l'Arduino da un'unica fonte di alimentazione esterna.

Dettagli della scheda tecnica

Produttore Texas Instruments
Numero di parte L293D
Tensione logica/IO 5 V
Tensione di alimentazione 4,5 - 36 V
Corrente di uscita (per canale) 600 mA
Corrente di picco (per canale) 1.2 A
Linee guida sulla frequenza PWM 1 kHz - 20 kHz
Soglie logiche di ingresso 2 V min (alto), 0.8 V max (basso)
Caduta di tensione / RDS(on)/ saturazione 1,5 V max
Limiti termici 150 °C
Pacco 16-DIP
Note / varianti Configurazione a doppio H-Bridge

  • Assicurati che i motori non superino i 600 mA per prevenire danni.
  • Utilizza dissipatori di calore adeguati per applicazioni ad alta corrente.
  • Collegare l'alimentazione esterna prima di accendere l'Arduino.
  • Controlla il posizionamento dei jumper per alimentare lo shield e l'Arduino.
  • Testa la direzione del motore scambiando le connessioni se necessario.

Istruzioni per il cablaggio

L293d_Shield_wiring

Inizia collegando lo scudo motore L293D al tuo Arduino Uno o Mega. Allinea i pin dello scudo con i connettori dell'Arduino e premi fermamente. Successivamente, collega i tuoi motori CC ai terminali contrassegnati.M1,M2,M3, eM4sullo scudo. Ogni motore richiederà due terminali, quindi assicurati di collegarli correttamente per la giusta direzione di rotazione.

Per l'alimentazione, collegare una batteria esterna o un alimentatore ai terminali di ingresso di alimentazione dello shield, assicurandosi che la tensione sia compresa nell'intervallo di 4,5V a 36V. Non dimenticare di collegare il jumper sullo shield per consentire il passaggio di corrente all'Arduino. Infine, collegare il polo negativo dell'alimentatore al pin di terra dell'Arduino per completare il circuito.

Installa la libreria richiesta

clicca sull'icona della Libreria e cerca:Adafruit Motor Sheild Librarye fai clic su Installa per installarlo.

Esempi di codice e guida passo passo

AF_DCMotor motor1(1);
AF_DCMotor motor2(2);
AF_DCMotor motor3(3);
AF_DCMotor motor4(4);

Nel codice, inizializziamo quattro oggetti motore:motor1,motor2,motor3, emotor4Ogni motore è assegnato a un numero di canale corrispondente alle connessioni dei terminali dello scudo motore. Questo ci consente di controllare ogni motore singolarmente.

void setup() {
  Serial.begin(9600); // set up Serial library at 9600 bps
  Serial.println("Robojax L293D Example");
}

Ilsetup()La funzione inizializza la comunicazione seriale, permettendoci di inviare e ricevere messaggi dall'Arduino IDE. Questo è utile per il debug e il monitoraggio del processo di controllo del motore.

motor1.setSpeed(speed(50)); //set speed for motor 1 at 50%
motor1.run(FORWARD); //send motor 1 to Forward rotation

Per controllare i motori, impostiamo la velocità usando ilsetSpeed()metodo, che assume un valore compreso tra 0 e 255. Ilrun()metodo quindi avvia il motore nella direzione specificata, comeFORWARDoBACKWARDLa velocità può essere regolata dinamicamente secondo necessità.

Dimostrazione / Cosa Aspettarsi

Una volta che tutto è cablato e il codice è caricato, dovresti vedere i motori ruotare in base ai comandi nel codice. Inizialmente, un motore si accenderà, seguito dagli altri in sequenza, ciascuno funzionando per una durata prestabilita. Se i motori non funzionano come previsto, controlla il tuo cablaggio, assicurati che il jumper sia collegato e verifica che l'alimentazione sia adeguata (nel video a mm:ss).

Timestamp video

  • 00:00 Introduzione
  • 03:00 Scheda dati per L293D
  • 03:56 Spiegazione del cablaggio
  • 07:21 Codice e libreria
  • 13:51 Dimostrazione del controllo di 4 motori

Immagini

L293D-Sheild-1
L293D-Sheild-1
L293D-Sheild-2
L293D-Sheild-2
L293D-Sheild-3
L293D-Sheild-3
L293d_sheild_main
L293d_sheild_main
L293d_Shield_wiring
L293d_Shield_wiring
439-Lesson 95: Using L293D 4 DC Motor Shield | Arduino Step-by-Step Course
Lingua: C++
Copia!

Risorse e riferimenti

File📁

Nessun file disponibile.