Utilisation de la 2ème voie d'un motorshield

Bonjour !
Mon projet est de commander simultanément 2 vérins électriques grâce à une carte Arduino Uno. Pour cela je me suis procuré un motorshield Deek-Robot et une alimentation 24 V.
Mon code est le suivant :

const int moteurDirectionPinA = 12;
const int moteurVitessePinA = 3;
const int moteurFreinPinA = 9;
const int moteurDirectionPinB =6;
const int moteurVitessePinB =7;
const int moteurFreinPinB =11;
int k=0;

void setup() {
  Serial.begin(9600);
  // configuration du canal A
  pinMode(moteurDirectionPinA, OUTPUT); // Broche arduino réservé pour le sens du moteur A
  pinMode(moteurFreinPinA, OUTPUT); //Broche arduino réservée pour le freinage du moteur A
  pinMode(moteurDirectionPinB, OUTPUT); // Broche arduino réservé pour le sens du moteur B
  pinMode(moteurFreinPinB, OUTPUT); //Broche arduino réservée pour le freinage du moteur B
  Sortie_verinA();
  Rentree_verinB();

}

void loop() {
  while (k<3) {
  delay(10000); //attente de 1 secondes
  ArretA();
  ArretB();
  delay(1000);
  Rentree_verinA();
  Sortie_verinB();
  delay(10000); //attente de 1 secondes
  ArretA();
  delay(1000);
  Sortie_verinA();
  Rentree_verinB();
  k=k+1;
  }
}


//MOTEUR A//
void Rentree_verinA () {
  Serial.println("Rentree_verin1");
  digitalWrite(moteurDirectionPinA, HIGH); // le moteur A tourne dans le sens normal
  digitalWrite(moteurFreinPinA, LOW); //desactivation du frein moteur A
  analogWrite(moteurVitessePinA, 255); //vitesse maximale pour le moteur A
}
void Sortie_verinA () {
  Serial.println("Sortie_verin1");
  digitalWrite(moteurDirectionPinA, LOW); // le moteur A tourne dans le sens inverse
  digitalWrite(moteurFreinPinA, LOW); //desactivation du frein moteur A
  analogWrite(moteurVitessePinA, 255); //vitesse maximale pour le moteur A
}
void ArretA () {
  Serial.println("\tArret1");
  digitalWrite(moteurDirectionPinA, LOW);
  digitalWrite(moteurFreinPinA, LOW);
  analogWrite(moteurVitessePinA, 0);
}


// MOTEUR B//
void Rentree_verinB () {
  Serial.println("Rentree_verin1");
  digitalWrite(moteurDirectionPinB, HIGH); // le moteur B tourne dans le sens normal
  digitalWrite(moteurFreinPinB, LOW); //desactivation du frein moteur B
  analogWrite(moteurVitessePinB, 255); //vitesse maximale pour le moteur B
}
void Sortie_verinB () {
  Serial.println("Sortie_verin1");
  digitalWrite(moteurDirectionPinB, LOW); // le moteur B tourne dans le sens inverse
  digitalWrite(moteurFreinPinB, LOW); //desactivation du frein moteur B
  analogWrite(moteurVitessePinB, 255); //vitesse maximale pour le moteur B
}
void ArretB () {
  Serial.println("\tArret1");
  digitalWrite(moteurDirectionPinB, LOW);
  digitalWrite(moteurFreinPinB, LOW);
  analogWrite(moteurVitessePinB, 0);
}

En l'état seul le moteur A tourne et il réalise bien 3 aller-retours comme demandé dans le programme. La diode en sortie du motorshield ne s'allume que du côté A :

Mon multimètre indique qu'aucune tension ne passe du côté B
Est-ce un problème de câblage ?

Post mis dans la mauvaise section, on parle anglais dans les forums généraux. ➜ déplacé vers le forum francophone.

Merci de prendre en compte les recommandations listées dans "Les bonnes pratiques du Forum Francophone".

vous avez bien coupé la trace d'alimentation ?
motor_shield_vin2
(cf la doc)

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.