Pourquoi le moteur 2 ne tourne pas quand je module la vitesse ?

Bonjour à tous, j'ai ce montage avec un l9110 (voir schéma attaché)

Et par exemple pour faire tourner les moteurs dans un sens je vais avoir :

#define moteur1A  10
#define moteur1B 11
#define moteur2A 6
#define moteur2B 9

 int vitesse = 150;


void setup() {


//moteur 1
  analogWrite(moteur1A, 0);
  analogWrite(moteur1B, vitesse);
  //moteur 2
  analogWrite(moteur2A, 0);
  analogWrite(moteur2B, vitesse);

}

void loop() {


}

Sur cette exemple de code, lorsque la vitesse est sur "255" aucun problème les deux moteurs tournent comme prévu

Si par exemple je passe la vitesse a "150", je n'ai plus que un moteur qui tourne

Savez-vous m'indiquer la raison à cela ?

Cordialement

Bonjour,

La pin 8 ne peut pas fonctionner en pwm.

Je viens de changer de pin 8 vers 7, même résultat sachant que si je fais faire une marche arrière, j'ai le même résultat mais c'est l'autre moteur qui tourne uniquement ... :o

Pas de chance !! Le 7 non plus ne fais pas le pwm.

Regarde la entre autre,

Merci pour le schéma, je viens de tester de la pin 7 vers 6, même résultat :o

Après une petite reflexion, mon soucis ne provient il pas du fait que j'alimente de façon externe mes moteurs, depuis l'arduino au finale je ne peux contrôler que l'activation et le sens du moteur ?

Ce qui me parait curieux c'est que ca fonctionne pour un moteur uniquement :o

Je suis tombé sur cet article :

La configuration est la même, mais lorsque je module la vitesse 0-255 (ex: 150), le deuxième moteur ne tourne pas

Bonjour ArduinoTesteur09 ,

Pour être cohérent, il faudrait utiliser les pins 3, 9, 10, et 11 (fréquence PMW à 490Hz).

Sur votre schéma, la masse alimentation n'est pas reliée à l'Arduino.

Il faut joindre le code utilisé COMPLET.

Cordialement,
bidouilleelec

Bonjour bidouilleelec, j'ai fais le montage sur 3,9,10 et 11, même résultat

le code donné dans le premier post est mon code complet car celui ci est uniquement du test pour l'instant je fais au plus simple pour vérifier que ca fonctionne avant de tenter plus compliqué

Lorsque je passe :

int vitesse = 255;

Les deux moteurs tournent à plein régime tout fonctionne

Lorsque je passe :

int vitesse = 150;

Seul le premier moteur fonctionne ici le : moteur 1
Le moteur 2 ne tourne pas du tout

pour la masse (gnd?), elle bien connecté sur l'arduino il s'agit d'une petite erreur de représentation sur mon schéma fritzing

Ça peut aussi être un problème de moteur ou de driver. Commence par échanger les deux moteurs pour vérifier qu'ils fonctionnent bien tous les deux.

Et en échangeant les moteurs sur le L9110S?

bidouilleelec

en échangeant les moteurs sur le 9110, le second moteur tourne correctement mais j'ai les mêmes symptomes

un seul moteur sur les deux tourne >:(

Disons que tu as deux moteurs qu'on appelle moteur 1 et moteur 2. L'un est branché sur une sortie du driver, disons sortie droite et l'autre sur la sortie gauche. Lorsque tu échanges les moteurs, est-ce que c'est toujours le même moteur qui fonctionne ou celui qui est branché une sortie donnée ?

Oui c'est bien le test que j'ai effectué, et le deuxieme moteur réagit comme le premier donc je peux en déduire que les moteurs ne présente pas de défaut

En lisant ce tuto, on voit que ce n'est pas très compliqué à utiliser. Ton code devrait fonctionner. Teste le code fourni dans le tuto pour voir. Si ça ne marche pas, c'est peut-être ton driver qui a un problème.

Edit : un autre tuto utilise un digitalWrite pour la direction (pins 1A et 2A dans ton cas). Je ne sais pas si ça changera quelque chose

Oui il s'agit du tuto que j'ai posté plus haut, la différence entre ce tuto et mon schéma c'est que j'utilise une alimentation externe en 12v pour alimenter les moteurs comme indiqué sur le schéma
j'en déduis donc cela doit provenir de la surement