Accueil > Arduino, Matériel > Premiers tests du châssis DFRobot 2WD

Premiers tests du châssis DFRobot 2WD

J’ai écrit un petit programme qui permet de tester le bon fonctionnement du shield moteur DFRobot DRI0001. Côté alimentation, il faut relier le PC à l’Arduino via le câble USB et ne pas oublier également d’y brancher une alimentation externe sur celui-ci. J’ai positionné le châssis sur un socle en hauteur afin que les roues tournent dans le vide.

Le programme est le suivant :

/* Programme qui permet de tester le châssis DFRobot 2WD */

// définition des broches utilisées sur le shield contrôle moteur DRI0001
int direction_moteur_2 = 7;
int controle_moteur_2 = 6;
int direction_moteur_1 = 4;
int controle_moteur_1 = 5;

void moteur_1 (int pwm, boolean sens)
{
  //sens à false avance, à true recule
  if (sens)
  {
    digitalWrite(direction_moteur_1, HIGH);
  }
  else
  {
    digitalWrite(direction_moteur_1, LOW);
  }
  //pwm à 0 arrêt, 255 vitesse maximale
  analogWrite(controle_moteur_1, pwm);
}

void moteur_2 (int pwm, boolean sens)
{
  //sens à false avance, à true recule
  if (sens)
  {
    digitalWrite(direction_moteur_2, HIGH);
  }
  else
  {
    digitalWrite(direction_moteur_2, LOW);
  }
  //pwm à 0 arrêt, 255 vitesse maximale
  analogWrite(controle_moteur_2, pwm);
}

void setup ()
{
  int i;
  for (i=4;i<=7;i++)
    pinMode(i, OUTPUT); //définit les port 4 à 7 en sortie
  Serial.begin(9600);
}

void loop ()
{
  char val;
  while(true)
  {
    val = Serial.read();
    if (val != -1)
    {
      switch(val)
      {
        case ‘a’: //avance
                  moteur_1(75,false);
                  moteur_2(75,false);
                  break;
        case ‘r’: //recule
                  moteur_1(75,true);
                  moteur_2(75,true);
                  break;
        case ‘g’: //tourne à gauche
                  moteur_1(75,true);
                  moteur_2(75,false);
                  break;
        case ‘d’: //tourne à droite
                  moteur_1(75,false);
                  moteur_2(75,true);
                  break;
        case ‘s’: //arrêt des moteurs
                  moteur_1(0,false);
                  moteur_2(0,false);
                  break;
      }
    }
    delay(200);
  }
}

Il suffit d’appuyer sur les touches a,r,g,d et s pour tester les actions du châssis. Le programme est documenté.

Attention au départ, j’avais mis une valeur de 50 pour les sorties PWM; et là les moteurs démarraient ou non aléatoirement. J’ai perdu un peu de temps car je pensais avoir effectué une erreur dans mon programme.

Le minimum pour le signal PWM devra être de 75 pour pallier au problème de démarrage des moteurs.

Publicités
Catégories :Arduino, Matériel Étiquettes : ,
  1. Aucun commentaire pour l’instant.
  1. 30/04/2013 à 14:40

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s

%d blogueurs aiment cette page :