Vous êtes sur la page 1sur 3

FSB MINI PROJET

RIADH KACHBOURI
MP2 EEA
2023/2024

Sujet:

Commander Un Moteur Avec Le L293D Et Un Joystick

Cahier des charges

Ce coup ci je vous présente comment commander votre moteur à courant continue avec variation de
vitesse avec le circuit intégré L293D et un Joystick, comme vous le savez il est impossible de faire
fonctionner un moteur à courant continue (CC) en branchant ce dernier directement à votre Arduino
sous peine que votre petit moteur arrête de fonctionner prématurément ^^ et également du fait que
l'Arduino ne fournit pas assez de courant pour pouvoir supporter le fonctionnement du moteur CC de ce
fait il faut un intermédiaire pour pouvoir gérer la partie commande (Arduino) et alimentation externe du
moteur, le L293D est là .

ce circuit intégré permet de commander deux moteur à courant continue dans les deux sens de rotation
en usant du principe du pont en H qui repose tout bonnement sur la gestion de transistor commandé
pour pouvoir faire changer le sens de rotation du rotor, et également par la même occasion faire
moduler la vitesse en PWM ou Modulation de largeur d'impulsion.
Le moteur fourni dans le starter kit Elegoo opère à une très faible tension qui est de 5v de ce fait
l'Arduino peut gérer l'alimentation externe (Vcc2) du circuit c'est pour cela qu'aucune alimentation
externe n'est nécessaire.

Pour ce qui est du Joystick ce dernier va permettre de contrôler la vitesse de rotation du moteur avec le
fameux signal PWM, une seule voie est câbler puisqu'une seule nous intéresse

Matériel:

▪️Arduino Uno

▪️L293D ( VOIR DATASHEET )

▪️Joystick

▪️Moteur CC 5

▪️Quelque câble

▪️Breadboard

CODE:

int una = 6; /*broche 1A du l293d permet de gérer la vitesse en PWM*/

int deuxa = 5; /*broche 2A du l293d permet de gérer la vitesse en PWM*/

int potar = 0; /*joystick voie X seulement utilisé*/

void setup(){
pinMode(potar, INPUT);

pinMode(una, OUTPUT);

pinMode(deuxa, OUTPUT);

Serial.begin(9600);

void loop(){

int ret = analogRead(potar); /* lit la valeur du joystick */

ret = map(ret, 0, 1024, 0, 255); /* adapate la plage de valeur initiale qui va de 0-1024 à 0-255*/

/* turn right */

Serial.println(ret);

digitalWrite(una, LOW);

analogWrite(deuxa, ret); /*écrit la vitesse du moteur grâce au joystick*/

delay(125);

Vous aimerez peut-être aussi