Je me suis lancé dans un petit projet de sous-marin filoguidé et pour ça j'ai besoin de commander 3 petits moteurs CC 12V (0.18A sans charge). C'est la raison pour laquelle je me suis équipé du Rotoshield (acheté en kit ). Je l'ai monté en respectant scrupuleusement la notice, j'ai bien mis les 2 circuits intégrés dans le bon sens. Je l'ai ensuite connecté sur ma carte arduino UNO pour faire les premiers tests. Pour l'alimentation je me sers d'une petite alim 12V que je branche sur le bornier Ext. Power.
J'ai câblé 2 moteurs CC sur les bornes M1 et M2 et j'ai utilisé le programme "basic_DC_motor" que j'ai issue de la dernière version de la librairie snootor téléchargée sur Github.
Lorsque je compile, il n'y a pas de problème et il n'y en a pas non plus lorsque je téléverse mais par contre il ne se passe rien, les moteurs ne tournent pas.
- Code: Tout sélectionner
#include <Wire.h>
#include <snootor.h>
SnootorDC Motor_1;
SnootorDC Motor_2;
int i;
void setup(){
int i=0;
Serial.begin(115200);
Serial.println("lulu");
Wire.begin();
Serial.println("lili");
Motor_1.init(1);
Serial.println("lala");
Motor_2.init(2);
Serial.println("init ok");
}
void loop(){
//affichage du compteur
Serial.println(i++);
Motor_1.setSpeed(255);
Motor_2.setSpeed(255);
// run Motor_1 forward at maximal speed, the Motor_2 is stopped
Motor_1.run(BACKWARD);
Motor_2.run(RELEASE);
delay(2000);
// stop for 2 seconds
Motor_1.run(RELEASE);
Motor_2.run(RELEASE);
delay(2000);
}
Comme vous pouvez le voir, j'ai essayé 2-3 trucs avec le code, histoire de voir dans le moniteur d'où pouvait venir le problème : dans le setup, j'ai intercalé des Serial.print("blablabla") entre les différentes lignes du code initial.
Lorsque je lance le programme, je m’aperçois sur le moniteur que les chaines de caractères que j'affiche avant d'attaquer l'initialisation des moteurs apparaissent mais ça s’arrête là. Ça veut donc dire que je n'arrive pas à initialiser mes moteurs, le programme se bloque au niveau du setup.
Je ne sais pas quelles conclusions en tirer, j'ai vérifié mes soudures mais ça me semble tout à fait correct.
C'est en faisant cette inspection au dos du shield avec un collègue d'atelier que je me suis aperçu d'un court-circuit sur deux des pattes du MAX7313. Une petite bouse de soudure relie 2 pattes. Comme c'est moi qui ai monté cette carte, il est difficile de dire si je suis responsable de ce défaut ou si je l'ai reçu comme ça.
J'ai regardé à quoi correspondent les 2 pattes en question (numérotées 2 et 3) sur la doc du MAX7313. Il s'agirait de deux pattes reliées à la masse, ce qui voudrait dire que le court-circuit constaté n'a pas d'impact sur le fonctionnement de la carte.
Du coup, je me retrouve un peu à court d'idées et je cracherais pas sur un petit coup de main ! Si jamais ça vous inspire hésitez pas !
Merci d'avance