Driver moteur MD22

Cette carte est un module de puissance avec  2 ponts en H destinés à piloter des moteurs à courant continu.

Le module nécessite 2 sources d'alimentation (+5 V/50 mA pour la logique et 5 à 50 Vcc/5A pour les moteurs).


Datasheet : md22.pdf 


Configuration de l'adresse I2C avec les 4 dip switch sur ON :

    • sur 8 bits = BO16 = 1011 00002  (datasheet MD22)  ==>  sur 7 bits=  5816 =  1011 000 ( Arduino)

Programmes pour envoyer une consigne de vitesse :

1. au moteur 1 (sans bibliothèque),

2. aux moteurs 1 et 2 (sans bibliothèque),

3. et de direction aux 2 moteurs avec bibliothèque (robot GCw),

4. au moteur 1 avec une fonction.


1. Programme pour envoyer une consigne de vitesse au moteur 1 (sans bibliothèque) :

#include <Wire.h>


void setup() {

  Wire.begin();                        // connexion au bus I2c en tant que maître

}


void loop() {

  Wire.beginTransmission(0x58);          // adresse de la carte 0x58

  Wire.write(0x01);                        // registre vitesse moteur 1

  Wire.write(byte(128));                // valeur vitesse moteur 1,  0 ( maxi arrière)  128 (arrêt)  255 (maxi avant).

  Wire.endTransmission();                 // arrêt transmission

}


2. Programme pour envoyer une consigne de vitesse aux moteurs 1 et 2 (sans bibliothèque) :

#include <Wire.h>


void setup() {

  Wire.begin();                        // connexion au bus I2c en tant que maître

}


void loop() {

  Wire.beginTransmission(0x58);          // adresse de la carte 0x58

  Wire.write(0x01);                        // registre vitesse moteur 1

  Wire.write(byte(128));                // valeur vitesse moteur 1,  0 ( maxi arrière)  128 (arrêt)  255 (maxi avant).

  Wire.endTransmission();                 // arrêt transmission


  Wire.beginTransmission(0x58);          // adresse de la carte 0x58

  Wire.write(0x02);                        // registre vitesse moteur 2

  Wire.write(byte(128));                // valeur vitesse moteur 2,  0 ( maxi arrière)  128 (arrêt)  255 (maxi avant).

  Wire.endTransmission();                 // arrêt transmission

}


3. Avec bibliothèque pour envoyer une consigne de vitesse et de direction aux 2 moteurs :


Télécharger la bibliothèque GCw_lib.zip depuis le DT robotGCW et l'installer dans Arduino (voir le tutoriel) et ouvrir l'exemple GCw_driver_moteurDC_MD22


#include <Md22.h>

#include <Wire.h>

md22 md;

       

void setup() {

  md.mode(2);                //carte MD22 configurée en mode 2

}


void loop() {

  md.vitdir(160,128);        //avant tout droit

  delay(1000);

 

  md.vitdir(160,255);        //avant tourne à gauche

  delay(1000);

     

  md.vitdir(128,128);        //arrêt

  delay(1000);

}


Méthodes et fonctions de la bibliothèque :

mode(2)

Mode 2 de la carte MD22 : commande en vitesse et en direction de 2 moteurs

vitdir(vitesse, direction)

vitesse : 0 (arrière)    128 (stop)    255 (avant)

direction :  0 (tourne à droite)    128 (tout droit)           255 (tourne à gauche)


4. Programme pour envoyer une consigne de vitesse au moteur 1 avec une fonction :

#include <Wire.h>


void setup()

{

 Wire.begin();                        

}


void loop()

{

  moteur(128);                        // valeur vitesse moteur 1,  0 ( maxi arrière)  128 (arrêt)  255 (maxi avant).

}


void moteur(byte vit)

{

  Wire.beginTransmission(0x58);          

  Wire.write(0x01);                      

  Wire.write(vit);                      

  Wire.endTransmission();                

}


















Créé avec HelpNDoc Personal Edition: Produire facilement des livres électroniques Kindle