Problème avec un shield moteur non-officiel

Bonjour,
Le moteur A ne marche pas mais le moteur B marche et je suis sûr qu'il n'y ai pas de problème de contact.

Avec un shield non officiel je voulais faire avancer mon robot a l'aide de deux moteurs à courant continu. Voici mon shield : Vente 5 pièces Geekcreit? L298N Carte de pilote de moteur pas à pas à double pont en H pour - Banggood Français.

En terme de câblage, j'ai enlever les cavalier sur les broches ENA et ENB du shield moteur et relier ces broches a des sortir PWM de l'arduino (11 et 3). J'ai relier les broches IN1, IN2, IN3, IN4 au pin 7, 6, 5, 4 de l'arduino. J'ai câbler le moteur A au OUT1 et OUT2 du shield et le moteur B au OUT3 et OUT4 du shield.

Pour l'alimentation, j'ai alimenter la carte arduino avec une pile 9V (ou via l'ordinateur) et le shield avec 4 piles 1,5V.

Voici le code :

int PIN_PWM_A = 3;
int PIN_IN1_A = 7;
int PIN_IN2_A = 6;
int PIN_PWM_B = 11;
int PIN_IN1_B =5;
int PIN_IN2_B =4;

void setup(){
  pinMode(PIN_PWM_A,OUTPUT);
  pinMode(PIN_IN1_A,OUTPUT);
  pinMode(PIN_IN2,OUTPUT);
  pinMode(PIN_PWM_B,OUTPUT);
  pinMode(PIN_IN1_B,OUTPUT);
  pinMode(PIN_IN2_B,OUTPUT);

  digitalWrite(PIN_PWM_A,LOW);
  digitalWrite(PIN_PWM_B,LOW);
}
void loop(){
   digitalWrite(PIN_IN1_A,LOW);
   digitalWrite(PIN_IN2_A,HIGH);
   digitalWrite(PIN_IN1_B,LOW);
   digitalWrite(PIN_IN2_B,HIGH);

   analogWrite(PIN_PWM_A,155);
   analogWrite(PIN_PWM_B,155);
}

Merci d'avance :smiley: :smiley: :smiley: ,
Geek2005

Bonjour;
Il n'y a pas de shield officiel.

A tu le datasheet de ton pilot moteur.

Revois ton pilotage moteur.
Tu passe d'un état à l'autre à chaque tour de boucle.

Tu devrais nommer tes variables en fonction de leurs tâches tu y verrais plus claire.

A plus.

Ton module pilote n'est pas compatible avec des moteurs à courants continu !!
Il est prévu pour des moteurs pas à pas.

A plus.

Merci pour tes réponses.

Le shield que j'appelle officiel est le shield de la marque arduino.

Tu dis que je passe d'un état à un autre mais le PIN_IN1_A et le PIN_IN1_B reste à l'état bas et le PIN_IN2_A et PIN_IN2_B reste à l'état haut.

Je préfère noter mais variables sur quoi elles sont branchés, pour moi c'est plus simple.

Le module L298N permet d'utiliser un moteur pas-à-pas ou deux moteurs à courant continu.

Geek2005

Je pensais un problème au niveau du code, sur la vitesse.

Effectivement... Désolé j'ai lu trop vite !!

A tu téléversé ton programme => il y a une erreur ligne 12.

A plus.

J'ai juste oublier de rajouter "_A" mais quand je téléverse en corrigeant l'erreur, toujours le même problème mais maintenant aucune roue ne marche.

Et en te passant de la PWM et en remettant les cavaliers ?

Tu n'a pas reçu de documentation avec la carte? un schéma électronique ou autre?
C'est quoi le jumper isolé ?

Geek2005:
Je pensais un problème au niveau du code, sur la vitesse.

Moi aussi.

Et si vous coupiez tout ce qu'il y a dans loop() pour le coller à la fin de setup() ?

EDIT: Et mettez le PWM à 250

Le logiciel est simple et il semble bon.
Les masses sont bien réunis?
On ne connaît pas la taille des moteurs, ni celle des piles, mais des piles pour alimenter 2 moteurs peut-être que c'est un peu juste.
Tu peux échanger les 2 moteurs pour voir si le problème vient des moteurs ou du shield.
Revérifier une fois de plus l'interconnexion même lorsqu'on est sûr qu'il n'y a pas d'erreur ......
Tu peux aussi faire un test statique en polarisant à la main les entrées du shield pour voir si les moteurs tournent. Les essayer l'un après l'autre puis les 2 ensemble (au cas où les piles ne tiendraient pas le courant demandé).

Oui tout a l'aire bon !! ::slight_smile:

pourquoi activer les sorties PWM dans le setup()?
digitalWrite(PIN_PWM_A,LOW);
digitalWrite(PIN_PWM_B,LOW);
Retire ces lignes du Setup() et fait un essais.

Si je ne me trompe pas ton câblage ressemble à cela. Suivant ton programme.

Broche 3 o------------------o enA shiedl => Pilote sortie A.
Broche 6 o------------------o in1 shiedl => Activation sens B.
Broche 7 o------------------o in2 shiedl => Activation sens B.
Broche 4 o------------------o in3 shiedl => Activation sens A.
Broche 5 o------------------o in4 shiedl => Activation sens A.
Broche 11 o------------------o enB shiedl => Pilote sortie B.

Me suis permis de commenter ton prog. pour comprendre. dit mois si cela correspond a ce que tu a ?

//Déclarations broches voie A.
int PIN_PWM_A = 3;
int PIN_IN1_A = 7;
int PIN_IN2_A = 6;
//Déclarations broches voie B.
int PIN_PWM_B = 11;
int PIN_IN1_B = 5;
int PIN_IN2_B = 4;

void setup() {

  //Voie A.
  pinMode(PIN_PWM_A, OUTPUT);// => enA sheild / 3
  pinMode(PIN_IN1_A, OUTPUT);// => in1 sheild / 7
  pinMode(PIN_IN2_A, OUTPUT);// => in2 sheild / 6

  //digitalWrite(PIN_PWM_A, LOW);

  //Voie B.
  pinMode(PIN_PWM_B, OUTPUT);// => enB sheild / 11
  pinMode(PIN_IN1_B, OUTPUT);// => in3 sheild / 5
  pinMode(PIN_IN2_B, OUTPUT);// => in4 sheild / 4

  //digitalWrite(PIN_PWM_B, LOW);
}
void loop() {

  //Pilotage sens 1 voie A.
  digitalWrite(PIN_IN1_A, LOW);   // => in1 sheild / 7
  digitalWrite(PIN_IN2_A, HIGH);  // => in2 sheild / 6
  analogWrite(PIN_PWM_A, 155);    // => enA sheild / 3

  //Pilotage sens 1 voie B.
  digitalWrite(PIN_IN1_B, LOW);   // => in3 sheild / 5
  digitalWrite(PIN_IN2_B, HIGH);  // => in4 sheild / 4
  analogWrite(PIN_PWM_B, 155);    // => enB sheild / 11

}//Fin de loop().

Si l'une des connexion est croisées cela peut poser problème.

A plus !