Pilote de moteur L293D

Un pilote de moteur est une puce de circuit intégré qui est généralement utilisée pour contrôler les moteurs de robots autonomes. Le pilote de moteur agit comme une interface entre Arduino et les moteurs. Les CI de pilote de moteur les plus couramment utilisés sont de la série L293 tels que L293D, L293NE, etc. Ces CI sont conçus pour contrôler simultanément 2 moteurs CC. L293D se compose de deux ponts en H. Le pont en H est le circuit le plus simple pour contrôler un moteur à courant faible. Nous désignerons le pilote de moteur IC uniquement comme L293D. L293D a 16 broches.

Étape 1: Liste des pièces

1) IC L293D

2) 4 1 condensateur microfarad

3) 6 broches mâles d'en-tête

4) Batterie ou source 12 volts

5) Fils ou prises femelles

6) 2 moteurs

7) Arduino (Any) pour tester le pilote

8) Ordinateur avec IDE Arduino

9) Divers articles comme le fer à souder, le fil à souder, etc.

Étape 2: Schéma et fonctionnement

Le L293D est un circuit intégré à 16 broches, avec huit broches, de chaque côté, dédié au contrôle d'un moteur. Il y a 2 broches INPUT, 2 broches OUTPUT et 1 broche ENABLE pour chaque moteur. L293D se compose de deux ponts en H. Le pont en H est le circuit le plus simple pour contrôler un moteur à courant faible.

N ° de broche - Caractéristiques des broches

  • 1 - Activez 1-2, lorsque ce paramètre est ÉLEVÉ, la partie gauche du CI fonctionnera et lorsqu'il sera faible, la partie gauche ne fonctionnera pas.
  • 2 - ENTRÉE 1, lorsque cette broche est ÉLEVÉE, le courant passera par la sortie 1
  • 3 - SORTIE 1, cette broche doit être connectée à l'une des bornes du moteur
  • 4, 5 - GND, broches de terre
  • 6 - SORTIE 2, cette broche doit être connectée à l'une des bornes du moteur
  • 7 - ENTRÉE 2, lorsque cette broche est ÉLEVÉE, le courant passera par la sortie 2
  • 8 - VCC2, c'est la tension qui sera fournie au moteur.
  • 16 - VCC1, c'est la source d'alimentation du circuit intégré. Donc, cette broche doit être alimentée en 5 V
  • 15 - ENTRÉE 4, lorsque cette broche est ÉLEVÉE, le courant passera par la sortie 4
  • 14 - SORTIE 4, cette broche doit être connectée à l'une des bornes du moteur
  • 13, 12 - GND, broches de terre
  • 11 - SORTIE 3, cette broche doit être connectée à l'une des bornes du moteur
  • 10 - ENTRÉE 3, lorsque cette broche est ÉLEVÉE, le courant passera par la sortie 3
  • 9 - Activez 3-4, quand il est HAUT, la partie droite du CI fonctionnera et quand il sera bas, la partie droite ne fonctionnera pas.

Pourquoi 4 motifs dans l'IC?

Le circuit intégré de commande du moteur gère les courants forts. En raison de tant de flux de courant, le CI s'échauffe. Il nous faut donc un dissipateur thermique pour réduire le chauffage. Par conséquent, il y a 4 broches de terre. Lorsque nous soudons les broches sur le PCB, nous obtenons une énorme zone métallique entre les sols où la chaleur peut être libérée.

Pourquoi les condensateurs?

Le moteur à courant continu est une charge inductive. Ainsi, il développe un EMF arrière lorsqu'il est alimenté par une tension. Il peut y avoir des fluctuations de tension lors de l'utilisation du moteur. À ce stade, la fluctuation de la tension est assez élevée et cela peut endommager le circuit intégré. Ainsi, nous utilisons quatre condensateurs qui aident à amortir l'extrême variation de courant.

Étape 3: Mécanisme de travail et code Arduino

Maintenant, selon les valeurs de l'entrée et de l'activation, les moteurs tourneront dans le sens horaire ou antihoraire à pleine vitesse (lorsque l'activation est ÉLEVÉE) ou à une vitesse inférieure (lorsque l'activation est fournie avec PWM). Supposons pour le moteur gauche lorsque l'activation est activée. est HIGH et l'entrée 1 et l'entrée 2 sont respectivement HIGH et LOW, le moteur se déplacera dans le sens des aiguilles d'une montre.

Code Arduino que j'ai utilisé pour tester: -

// Test des moteurs DC avec
// L293D // Définir les broches // Moteur A int enableA = 2; int MotorA1 = 4; int MotorA2 = 5; // Moteur B int enableB = 3; int MotorB1 = 6; int MotorB2 = 7; void setup () {Serial.begin (9600); // configurer les modes de broche pinMode (enableA, OUTPUT); pinMode (MotorA1, OUTPUT); pinMode (MotorA2, OUTPUT); pinMode (enableB, OUTPUT); pinMode (MotorB1, OUTPUT); pinMode (MotorB2, OUTPUT); } void loop () {// activation du moteur A Serial.println ("Activation des moteurs"); digitalWrite (enableA, HIGH); digitalWrite (enableB, HIGH); retard (1000); // fait quelque chose Serial.println ("Motion Forward"); digitalWrite (MotorA1, LOW); digitalWrite (MotorA2, HIGH); digitalWrite (MotorB1, LOW); digitalWrite (MotorB2, HIGH); retard (3000); Serial.println ("Motion Backwards"); digitalWrite (MotorA1, HIGH); digitalWrite (MotorA2, LOW); digitalWrite (MotorB1, HIGH); digitalWrite (MotorB2, LOW); retard (3000); Serial.println ("Arrêt des moteurs"); // arrête digitalWrite (enableA, LOW); digitalWrite (enableB, LOW); retard (3000); }

Articles Connexes