DRV8833-Utiliser

De MCHobby - Wiki
Sauter à la navigation Sauter à la recherche


MCHobby investit du temps et de l'argent dans la réalisation de traduction et/ou documentation. C'est un travail long et fastidieux réalisé dans l'esprit Open-Source... donc gratuit et librement accessible.
SI vous aimez nos traductions et documentations ALORS aidez nous à en produire plus en achetant vos produits chez MCHobby.

Comment utiliser

DRV8833-Utiliser-00.png

Dans une application type, les connexions de puissances sont faites d'un côté de la carte et les connexions de contrôle de l'autre côté de la carte. La broche nSLEEP est maintenue au niveau haut par la carte (à l'aide d'une résistance pull-upp), il n'est donc pas nécessaire de la connecter (sauf si vous voulez mettre le DRV8833 en mode veille).

Chacun canal moteur dispose d'une paire d'entrées de contrôle , xIN1 et xIN2, qui active l'état de la sortie correspondante , xOUT1 et xOUT2; Ces entrées sont équipées de pull-down en interne (qui ramène le signal de la broche au niveau bas/low), ce qui désactive les sorties par défaut (méthode efficace qui évite à vos moteurs de tressauter à la mise sous tension).

Voyez la table de contrôle des entrées (dans la fiche technique) pour voir comment celles-ci influence l'état des sorties.

DRV8833-Utiliser-01.jpg
H: signifie HIGH/niveau haut. L: LOW/niveau bas

Il est possible d'appliquer un signal PWM (pulse width modulated/modulation de largeur d'impulsion) sur ces entrées, ce qui permet de contrôler la vitesse du moteur. Quand vous contrôlez la rotation en PWM, le courant tend à continuer à circuler lorsque le pilote interrompt celui-ci. Cela se s'appelle le "courant de recirculation" (cfr doc de Texas Instruments). Le pont-H peut gérer cette recirculation de deux façons différentes: en mode roue libre (Coat/Fast decay) ou en mode de freinage (Brake/Slow Decay). En mode roue libre (Coat/Fast Decay) le pont H est désactivé et le courant de recirculation circule à travers les diodes. En mode freinage, les bobines du moteur sont court-circuités, ce provoque le freinage du moteur.

Note: Il est également possible de contrôler le moteur en PWM en mode roue libre et freinage, voyez la fiche technique de Texas Instruments pour plus d'information à ce sujet.

La broche nFAULT est une sortie à drain ouvert qui est ramené au niveau bas par le circuit intégré lorsqu'il est surchargé (sur-courant), en surchauffe ou s'il fonctionne en sous-tension. Dans le cas contraire l'état de cette broche est flottant et vous devrez y connecter une résistance pull-up externe (ou utiliser une entrée de votre microcontroleur en y activant son pull-up interne). Si vous ne voulez pas surveiller cet état d'erreur, vous pouvez simplement ignorer cette broche.

Montage Arduino

DRV8833-Montage-Arduino.jpg

// --- Commande de controleur moteur DC ----------------------
// DRV8833_Test.ino
//
// Commande du DRV8833, prenant le controle de deux moteurs 
// continu.
//
// Un projet www.mchobby.be (vente de kit et composant)
// Meurisse D. - Licence CC-SA-BY
//
// Un tutoriel http://mchobby.be/wiki/index.php?title=DRV8833
// Ou Acheter un StepStick DRV8833
//    http://shop.mchobby.be/product.php?id_product=499
//

#define pinINA1 5 // Moteur A, entrée 1 - Commande en PWM possible
#define pinINA2 6 // Moteur A, entrée 2 - Commande en PWM possible

#define pinINB1 10 // Moteur B, entrée 1 - Commande en PWM possible
#define pinINB2 11 // Moteur B, entrée 2 - Commande en PWM possible

void setup(){
  Serial.begin(9600);
  Serial.println("Test DRV8833");
  
  // Initialize les broches de commandes 
  // du moteur A
  pinMode( pinINA1, OUTPUT );
  pinMode( pinINA2, OUTPUT );
  digitalWrite( pinINA1, LOW );
  digitalWrite( pinINA2, LOW ); 
}

void loop(){
  // --- Moteur A: Controle pleine puissance -------------------
  // Marche avant
  digitalWrite( pinINA1, HIGH );
  digitalWrite( pinINA2, LOW  );
  
  delay( 3000 );
  
  // Arret par frein (voir documentation)
  digitalWrite( pinINA1, LOW );
  digitalWrite( pinINA2, LOW );
  
  delay( 2000 );
  
  // Marche arriere
  digitalWrite( pinINA1, LOW );
  digitalWrite( pinINA2, HIGH );
  
  delay( 3000 );
  
  // Arret en roue libre
  digitalWrite( pinINA1, HIGH );
  digitalWrite( pinINA2, HIGH );
  
  delay( 2000 );
  
  // Arret par frein (voir documentation)
  digitalWrite( pinINA1, LOW );
  digitalWrite( pinINA2, LOW );
  
  // ---- Moteur A: Controle de vitesse en PWM ------------ 
  // Marche avant progressive
  digitalWrite( pinINA2, LOW ); // réactive la commande en digital sur la broche
  for( int i = 20; i<=240; i=i+20 ){
    analogWrite( pinINA1, i );
    Serial.println( i );
    delay( 500 ); // attentre 0.5 sec
  }
  // Arret 
  digitalWrite( pinINA1, LOW );
  digitalWrite( pinINA2, LOW );
  delay( 2000 );
  
  // arret
  digitalWrite( pinINA1, LOW );
  digitalWrite( pinINA2, LOW );  

  // Marche arriere progressive
  digitalWrite( pinINA1, LOW ); // réactive la commande en digital sur la broche
  for( int j = 20; j<=240; j=j+20 ){
    analogWrite( pinINA2, j );
    delay( 500 ); // attentre 0.5 sec
  }
 
   // Arret par frein (voir documentation)
  digitalWrite( pinINA1, LOW );
  digitalWrite( pinINA2, LOW );
 
  // Arreter le programme 
  while(true);
}

Documentation réalisée par Meurisse. D pour MCHobby.be. En partie basé sur les informations disponible sur le site de Pololu

Traduit avec l'autorisation de Pololu - Translated with the permission from Pololu - www.pololu.com

Toute référence, mention ou extrait de cette traduction doit être explicitement accompagné du texte suivant : «  Traduction par MCHobby (www.MCHobby.be) - Vente de kit et composants » avec un lien vers la source (donc cette page) et ce quelque soit le média utilisé.

L'utilisation commercial de la traduction (texte) et/ou réalisation, même partielle, pourrait être soumis à redevance. Dans tous les cas de figures, vous devez également obtenir l'accord du(des) détenteur initial des droits. Celui de MC Hobby s'arrêtant au travail de traduction proprement dit.