Page 1 sur 1

Rotoshield pour la commande d'un sous-marin

Message non luPosté: Sam 10 Mai 2014 14:05
de Fanch
Bonjour,

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

Re: Rotoshield pour la commande d'un sous-marin

Message non luPosté: Lun 12 Mai 2014 11:10
de Laetitia
Bonjour,

Fanch a écrit: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.

J'ai testé votre code dans nos locaux sur un Rotoshield neuf, tout a l'air de fonctionner correctement.
Pourriez-vous poster un schéma de votre montage ou une photo avec les branchements bien visibles ?

Fanch a écrit: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.

Un pont de soudure est effectivement présent entre deux des pattes du MAX7313, sous le "w" de "open hardware", c'est normal. La photo ci-dessous montre un PCB avec les CMS implantés, prêt à être mis dans un kit Rotoshield.

Pont_soudure_Rotoshield.JPG
Pont_soudure_Rotoshield.JPG (106.17 Kio) Vu 3197 fois

Re: Rotoshield pour la commande d'un sous-marin

Message non luPosté: Lun 12 Mai 2014 21:51
de Fanch
OK merci pour cette réponse !
Comme je pensais que c'était une "bouse de soudure" accidentelle sur le MAX7313, je l'ai grattée pour la dégager...
Bref, voici les photos de mon montage, c'est très simple : l'alim 12V qui arrive sur la borne Ext.Power. J'ai vérifié au voltmètre et il n'y a pas de faux contacts, je retrouve bien mes 12V sur le bornier. Les deux moteurs sont fichés sur les borniers M1 et M2
Image
Image

Re: Rotoshield pour la commande d'un sous-marin

Message non luPosté: Jeu 15 Mai 2014 09:16
de Laetitia
Bonjour,

En allant reparcourir la FAQ du Rotoshield je me suis souvenue d'un bug :

Un petit défaut est apparu sur le Rotoshield. Il peut contrôler jusqu'à 4 moteurs en courant continu. On peut donc en faire fonctionner un seul si on le souhaite ou seulement 2, ainsi jusque 4 moteurs... Mais il semblerait que certaines combinaisons ne fonctionneraient pas sur certains shields.
Pour parer à ceci, il suffit de déclarer les 4 moteurs et de tous les initialiser dans votre code. Ensuite, il suffit de continuer votre code comme vous le souhaiter. Cette parade n'affectera pas la suite de votre programme, ne fera pas démarrer les moteurs que vous n'utilisez pas et ne consommera pas la moindre puissance dans votre montage.

Faites le test et dites-nous si ça a marché :)

Re: Rotoshield pour la commande d'un sous-marin

Message non luPosté: Mar 20 Mai 2014 18:45
de Fanch
Bonjour,
J'ai ré-essayé en déclarant les 4 moteurs mais je retrouve le même problème : le programme ne parvient pas a initialiser les moteurs...