Publié le 16 juillet 2019, modifié le 29 mars 2023 par Stéphane Robert

Le L293D est l’un des composants les plus utilisés pour tout amateur d’électronique.

Comment piloter deux moteurs DC avec un L293D et un Arduino ?

C’est quoi un L293D ?

Le L293D est un double pont-H, ce qui signifie qu’il est possible de l’utiliser pour commander quatre moteurs distincts (dans un seul sens) grâce à ses 4 canaux. En raccordant les sorties de façon appropriées, il est possible de constituer deux pont-h. Il est ainsi possible de commander deux moteurs distincts, dans les deux sens et indépendamment l’un de l’autre (ce qui est le cas de notre tutoriel).

Passons Maintenant a la pratique.

Matériel pour piloter deux moteurs DC avec un L293D et un Arduino

Le Montage:

Tout d’abord il faut savoir a quoi correspondent les pins du L293D

Comment piloter deux moteurs DC avec un L293D et un Arduino ? #2

Comment piloter deux moteurs DC avec un L293D et un Arduino ? #3

Finalement le code

le code permet de reculer puis attendre une seconde ensuite avancer et attendre une autre seconde puis tourner a droite et attendre encore une fois une seconde puis tourner a droite et ça recommence.

int GA=11,GB=10,DA=5,DB=6; //initialisation des pins (GA & GB pour le moteur gauche / DA & DB pour le moteur droite)

void setup() {
  Serial.begin(9600);  
  pinMode(DA,OUTPUT);
  pinMode(DB,OUTPUT);
  pinMode(GA,OUTPUT);
  pinMode(GB,OUTPUT);
}
/*********************/
/*** Les Fonctions ***/
/*********************/

void ar() //arriére
          {
      digitalWrite(DA,HIGH);
      digitalWrite(DB,LOW);
      digitalWrite(GA,HIGH);
      digitalWrite(GB,LOW);
          }
void av() //avant
        {
      digitalWrite(DA,LOW);
      digitalWrite(DB,HIGH);
      digitalWrite(GA,LOW);
      digitalWrite(GB,HIGH);
          }
void g()//gauche
        {
      digitalWrite(DA,LOW);
      digitalWrite(DB,HIGH);
      digitalWrite(GA,HIGH);
      digitalWrite(GB,LOW);
          }
void d()//droite
       {
      digitalWrite(DA,HIGH);
      digitalWrite(DB,LOW);
      digitalWrite(GA,LOW);
      digitalWrite(GB,HIGH);
          }
/*****************************/
void loop()
{
  av();
  delay(1000);
  ar();
  delay(1000);
  g();
  delay(1000);
  d();
  delay(1000);
}

L293d arduino
Catégories : ArduinoProgrammer un Arduino

Stéphane Robert

Stéphane Robert