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.


Arduino Uno driver moteur MD22

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