Driver motore L293D

Un driver del motore è un chip di circuito integrato che viene solitamente utilizzato per controllare i motori in robot autonomi. Il driver del motore funge da interfaccia tra Arduino e i motori. Gli IC del driver motore più comunemente usati sono della serie L293 come L293D, L293NE, ecc. Questi circuiti integrati sono progettati per controllare 2 motori CC contemporaneamente. L293D è costituito da due H-bridge. H-bridge è il circuito più semplice per il controllo di un motore a bassa corrente nominale. Faremo riferimento al driver IC del motore solo come L293D. L293D ha 16 pin.

Passaggio 1: Elenco delle parti

1) L293D IC

2) 4 condensatore 1microfarad

3) 6 pin maschio dell'intestazione

4) Batteria o sorgente da 12 Volt

5) Cavi o prese femmina

6) 2 motori

7) Arduino (Qualsiasi) per testare il Driver

8) Computer con IDE arduino

9) Temi vari come saldatore, filo per saldatura ecc

Passaggio 2: schematico e funzionante

L293D è un IC a 16 pin, con otto pin, su ciascun lato, dedicato al controllo di un motore. Ci sono 2 pin INPUT, 2 pin OUTPUT e 1 pin ENABLE per ciascun motore. L293D è costituito da due H-bridge. H-bridge è il circuito più semplice per il controllo di un motore a bassa corrente nominale.

N. pin - Caratteristiche pin

  • 1 - Abilita 1-2, quando è ALTA la parte sinistra dell'IC funzionerà e quando è bassa la parte sinistra non funzionerà.
  • 2 - INPUT 1, quando questo pin è ALTO la corrente fluirà attraverso l'uscita 1
  • 3 - USCITA 1, questo pin deve essere collegato a uno dei terminali del motore
  • 4, 5 - GND, pin di terra
  • 6 - USCITA 2, questo pin deve essere collegato a uno dei terminali del motore
  • 7 - INPUT 2, quando questo pin è ALTO la corrente fluirà attraverso l'uscita 2
  • 8 - VCC2, questa è la tensione che verrà fornita al motore.
  • 16 - VCC1, questa è la fonte di alimentazione dell'IC. Quindi, questo pin dovrebbe essere fornito con 5 V.
  • 15 - INPUT 4, quando questo pin è ALTO la corrente fluirà attraverso l'uscita 4
  • 14 - USCITA 4, questo pin deve essere collegato a uno dei terminali del motore
  • 13, 12 - GND, pin di terra
  • 11 - USCITA 3, questo pin deve essere collegato a uno dei terminali del motore
  • 10 - INPUT 3, quando questo pin è ALTO la corrente fluirà attraverso l'uscita 3
  • 9 - Abilita 3-4, quando è ALTA la parte destra dell'IC funzionerà e quando è bassa la parte destra non funzionerà.

Perché 4 motivi nel CI?

L'IC motor driver si occupa di forti correnti. A causa del flusso di corrente, l'IC si riscalda. Quindi, abbiamo bisogno di un dissipatore di calore per ridurre il riscaldamento. Pertanto, ci sono 4 pin di terra. Quando saldiamo i pin sul PCB, otteniamo un'enorme area metallica tra i motivi in ​​cui il calore può essere rilasciato.

Perché condensatori?

Il motore CC è un carico induttivo. Quindi, sviluppa un EMF posteriore quando alimentato da una tensione. Ci possono essere fluttuazioni di tensione mentre si usa il motore, quando all'improvviso si fa il contrario mentre il motore si muoveva in una certa direzione. A questo punto la fluttuazione della tensione è piuttosto elevata e questo può danneggiare l'IC. Pertanto, utilizziamo quattro condensatori che aiutano a smorzare l'estrema variazione di corrente.

Passaggio 3: meccanismo di funzionamento e codice Arduino

Ora, a seconda dei valori di Input e Enable, i motori ruoteranno in senso orario o antiorario alla massima velocità (quando Enable è ALTA) o con meno velocità (quando Enable è fornito con PWM). è ALTO e l'ingresso 1 e l'ingresso 2 sono rispettivamente ALTO e BASSO, quindi il motore si sposterà in senso orario.

Codice Arduino che ho usato per testare: -

// Test dei motori DC con
// L293D // Definisci pin // Motore A int enableA = 2; int MotorA1 = 4; int MotorA2 = 5; // Motor B int enableB = 3; int MotorB1 = 6; int MotorB2 = 7; void setup () {Serial.begin (9600); // configura le modalità pin pinMode (enableA, OUTPUT); pinMode (MotorA1, OUTPUT); pinMode (MotorA2, OUTPUT); pinMode (enableB, OUTPUT); pinMode (MotorB1, OUTPUT); pinMode (MotorB2, OUTPUT); } void loop () {// abilitazione motore A Serial.println ("Abilitazione motori"); digitalWrite (enableA, HIGH); digitalWrite (abilita B, ALTA); ritardo (1000); // fare qualcosa Serial.println ("Motion Forward"); digitalWrite (MotorA1, LOW); digitalWrite (MotorA2, HIGH); digitalWrite (MotorB1, LOW); digitalWrite (MotorB2, HIGH); ritardo (3000); Serial.println ("Motion Backwards"); digitalWrite (MotorA1, HIGH); digitalWrite (MotorA2, LOW); digitalWrite (MotorB1, HIGH); digitalWrite (MotorB2, LOW); ritardo (3000); Serial.println ("Arresto dei motori"); // stop digitalWrite (enableA, LOW); digitalWrite (enableB, LOW); ritardo (3000); }

Articoli Correlati