Utilisation du Shield Moteur L298N V3 avec arduino

Comment faire pour contrôler facilement un moteur avec un arduino ?

Un moteur à courant continu peut consommer beaucoup d’intensité et nécessite souvent  une grosse tension d’alimentation.
De plus l’algorithme nécessaire à sa mise en oeuvre peut vite devenir compliqué (pour moi du moins :p ).
Pour pouvoir résoudre tous ces problèmes nous allons utiliser le Shield Moteur L298N V3.

shield_moteurIl permet de contrôler 2 moteurs en utilisant au maximum 46V et  2A .
Pour utiliser ce shield, il faut d’abord le plugger sur l’arduino (sisi c’est vrai).
Ensuite on remarque la présence de 3 boutons:

VM (Voltage Motor)      Vex/Vin  :Permet de choisir si la source d’alimentationdes moteurs:Soit le pin Vin de l’arduino soit source extérieure qui sera connecté au domino du shied..

VLO(Voltage Logic Onboard)   On/Off :Pour fonctionner ce shield a besoin de 2 tensions: une pour piloter la rotation du moteur et une autre ,la tension logique, de 5V.Le fait d’activer VLO permet d’utiliser un circuit adaptateur de tension, intégré au shield, pour obtenir la tension logique dont il a besoin à partir de la source extérieure (le Vex).Ce mode ne fonctionne que si :  6V<Vex<20v.

VLC(Voltage Logic Connected)    On/Off :Ce mode permet au shield de récupérer la tension logique directement sur l’arduino.C’est très pratique dans les cas où  le Vex ne permet pas d’utiliser le VLO.

Donc si on souhaite piloter un rover avec des moteurs peu puissants (ce qui est mon cas), alors plusieurs solutions sont possibles:

IMG_20140216_203423.

La solution optimale serait d’alimenter l’arduino par une pile 9V et de fournir

une autre alimentation qui serait réservée au shield.

Sur la photo le shield est alimenté par 6 piles en série.

Dans ce cas, VM=Vex   VLC=On    VLO=Off

.

.

.

IMG_20140216_203315.

.

On peut utiliser 6 piles AA montées en série et les connecter au Vex.

Cela servira d’alimentation à la fois au shield et à l’arduino.

La config sera: VM=Vex   VLC=On    VLO=On

.

.

.

IMG_20140216_203652

.

.

Ou bien on peut directement utiliser une pile 9V pour peu que l’on ait l’adaptateur.

Dans ce cas : VM:Vin  VLC:On   VLO:Off

.

.

.

.

Passons maintenant au code qu’il va falloir envoyer à l’arduino pour contrôles les 2 moteurs.

Les moteurs seront contrôlés selon 3 paramètres: la direction sens 1, la direction sens 2 et la vitesse de rotation.

Pin 13 du shield : direction 1 du moteur A
Pin 12 du shield : direction 2 du moteur A
Pin 10 du shield : Vitesse de rotation du moteur A
Pin 11 du shield : direction 1 du moteur B
Pin 8 du shield : direction 2 du moteur B
Pin 9 du shield : Vitesse de rotation du moteur B

Pour faire tourner un moteur A dans la direction 1 on utilisera:digitalWrite()
digitalWrite(dir1PinA, HIGH);
digitalWrite(dir2PinA, LOW);

Pour régler la vitesse de rotation du moteur on utilisera analogWrite();
analogWrite(vitessePinA, 255);
Note: la vitesse varie de 0 à 255

Exemple de code pour faire tourner les 2 moteurs dans le même sens et à la vitesse maximale:

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Vous pouvez utiliser ces balises et attributs HTML : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">