Arduino > DFRobot Dual H-Bridge

1.  Introduction

2.  Description des broches

TRÈS IMPORTANT: retirer le cavalier «VD=VS»

Commun :

VDAlimentation 5V du circuit logique
GNDAlimentation GND du circuit logique et du moteur
VSAlimentation positive du moteur

Moteur 1 (M1+ et M1-) :

E1Vitesse de M1+ et M1-
M1Contrôle de direction de M1+ et M1-

Moteur 2 (M2+ et M2-) :

E2Vitesse de M2+ et M2-
M2Contrôle de direction de M2+ et M2-

3.  Contrôle de moteur CC

3.1  Branchement


Branchement de deux moteurs CC

3.2  Logique

Tableau de logique du moteur 1:

E1M1Résultat
LOW?Circuit est désactivé
HIGHLOWMoteur tourne dans un sens à sa vitesse maximale
HIGHHIGHMoteur tourne dans l'autre sens à sa vitesse maximale
PWMLOWMoteur tourne dans un sens à la vitesse déterminée par le PWM
PWMHIGHMoteur tourne dans l'autre sens à la vitesse déterminée par le PWM

Tableau de logique du moteur 2:

E2M2Résultat
LOW?Circuit est désactivé
HIGHLOWMoteur tourne dans un sens à sa vitesse maximale
HIGHHIGHMoteur tourne dans l'autre sens à sa vitesse maximale
PWMLOWMoteur tourne dans un sens à la vitesse déterminée par le PWM
PWMHIGHMoteur tourne dans l'autre sens à la vitesse déterminée par le PWM

3.3  Exemple


/*
L'exemple suivant permet de contrôler un moteur CC
branché au circuit 1 du DFRobot Dual H-Bridge.

MOTEUR              <-> DFROBOT DUAL H-BRIDGE:
Un des fils         <-> M1+
L'autre fil         <-> M1-

PLAQUETTE           <-> DFROBOT DUAL H-BRIDGE:
Sortie numérique 4  <-> M1
Sortie analogique 5 <-> E1
5V                  <-> VD
GND                 <-> GND

ALIMENTATION DU MOTEUR <-> DFROBOT DUAL H-BRIDGE:
+                      <-> GND
-                      <-> VS

*/

// Sortie analogique
#define BROCHE_VITESSE 5
// Sortie numérique
#define BROCHE_DIRECTION 4

int vitesse;
int direction;

void setup() {


        pinMode(BROCHE_DIRECTION,OUTPUT);

        // Changer à LOW pour changer
        // de direction:
        direction = HIGH;

        // Choisir un nombre entre 0 et
        // 255 pour déterminer la vitesse:
        vitesse = 125; // 0-255

}


void loop () {

        analogWrite(BROCHE_VITESSE,vitesse);
        digitalWrite(BROCHE_DIRECTION,direction);

}

4.  Contrôle de moteur à pas

4.1  Moteur à pas unipolaire

Branchement


Branchement d'un moteur à pas unipolaire
VSFil rouge et + de l'alimentation du moteur
M1+Fil noir
M1-Fil brun
M2+Fil orange
M2-Fil jaune

Logique

Fil noir1
Fil orange2
Fil brun3
Fil jaune4
Fil rouge«common»

4.2  Exemple

#include <Stepper.h>

#define STEPS_PER_REVOLUTION 48

#define BROCHE_ACTIF_1   12
#define BROCHE_SORTIE_1  11
#define BROCHE_ACTIF_2   10
#define BROCHE_SORTIE_2  9


Stepper objetStepper(STEPS_PER_REVOLUTION, BROCHE_SORTIE_1, BROCHE_SORTIE_2 );

void setup() {

        // Activer le moteur:
        pinMode(BROCHE_ACTIF_1,OUTPUT);
        pinMode(BROCHE_ACTIF_2,OUTPUT);
        digitalWrite(BROCHE_ACTIF_1,HIGH);
        digitalWrite(BROCHE_ACTIF_2,HIGH);

}

void loop() {
        // Faire un pas dans une direction.
        // Changer le 1 pour -1 pour effectuer
        // un pas dans l'autre direction.
        objetStepper.step(1);
        // Attendre 500 millisecondes:
        delay(500);
}