Page 1 sur 1

code minimal pour moteur DC

Message non luPosté: Lun 26 Nov 2012 15:21
de Xav83
Bonjour,
je suis novice et j'essai de faire tourner un moteur DC avec un code mini pour bien comprendre le fonctionnement.
donc je suis parti de l'exemple basic_DC_motor avec 2 moteurs et j'ai voulu modifier le code pour faire tourner 1 seul moteur.

[code]
#include <Wire.h>

#include <snootor.h>

SnootorDC Motor_1;

void setup(){
  Motor_1.init(1);
}

void loop(){
  Motor_1.setSpeed(255);
  Motor_1.run(BACKWARD);
  SC.delay(2000);
  SC.stop();
}

/code]

voici le code que j'essai de faire fonctionner mais je n'y arrive pas et j'ai du mal à comprendre pourquoi?

Par avance merci
Xavier

Re: code minimal pour moteur DC

Message non luPosté: Lun 26 Nov 2012 17:47
de SesechXP
Salut,

Je crois que tu as dégraissé un peu trop :D

Il te faut initialiser le bus I2C (bibliothèque Wire) :
Code: Tout sélectionner
void setup(){
  Wire.begin();
  Motor_1.init(1);
}


++

Re: code minimal pour moteur DC

Message non luPosté: Lun 26 Nov 2012 17:57
de Xav83
Salut,

J'avais essaye avec cette ligne
et je viens de re tester. ca ne fonctionne toujours pas.

Merci
Xavier

Re: code minimal pour moteur DC

Message non luPosté: Lun 26 Nov 2012 18:25
de SesechXP
Il est impératif d'initialiser le bus I2C, donc la ligne Wire.begin() est indispensable.

Du coup je ne vois pas pourquoi ça ne fonctionne pas :oops: Qu'en est-il du câblage ?

Re: code minimal pour moteur DC

Message non luPosté: Lun 26 Nov 2012 18:43
de Xav83
Re,

le câblage est très simple, j'ai mon alimentation sur le bornier (M+,gnd)
et le moteur DC sur le bornier M1.

Quand je test avec le code exemple "basic_DC_motor" ca fonctionne bien.
les leds et le moteur. pour tester le code mini je ne touche pas au câblage.

A++

Re: code minimal pour moteur DC

Message non luPosté: Lun 26 Nov 2012 20:26
de SesechXP
Je n'ai jamais utilisé le Rotoshield, mais entre le sketch d'exemple "basic_DC_motor" et le tien, je ne vois que ces deux lignes que tu as ajoutées :
Code: Tout sélectionner
  SC.delay(2000);
  SC.stop();


Peut-être que ça vient de là ?

Re: code minimal pour moteur DC

Message non luPosté: Lun 26 Nov 2012 20:31
de Xav83
Bonsoir,
à priori il faut déclaré les 2 moteurs M1 et M2 et mettre le M2 en (RELEASE).

[code]
#include <Wire.h>
#include <snootor.h>

SnootorDC Motor_1;
SnootorDC Motor_2;

void setup(){
Wire.begin();
Motor_1.init(1);
Motor_2.init(2);
}

void loop(){
Motor_1.setSpeed(255);
Motor_2.setSpeed(255);
Motor_1.run(BACKWARD);
Motor_2.run(RELEASE);
delay(2000);

Motor_1.setSpeed(255);
Motor_2.setSpeed(255);
Motor_1.run(RELEASE);
Motor_2.run(RELEASE);
delay(2000);

}/code]

je pensais pouvoir déclarer qu'un seul Moteur dans le code,
Mais ca n'a pas l'air possible.
Merci

Re: code minimal pour moteur DC

Message non luPosté: Jeu 14 Fév 2013 10:00
de john_lenfr
Ah!
Donc j'ai le meme problème aussi.
On ne peut pas commander soit le 1 soit le 2 soit le 3 soit le 4? On est obligé de déclarer les 1+2 et 3+4 et de mettre en realease?
C'est dommage je pensais que les 3 commandes étaient indépendante...
:?:

Re: code minimal pour moteur DC

Message non luPosté: Jeu 21 Fév 2013 22:02
de japimpact
Idem pour moi, j'ai perdu pas loin d'une journée bêtement avec sa ... je pensais ne pouvoir déclarer qu'un seul moteur, mais non, sa ne fonctionne que par couple

Re: code minimal pour moteur DC

Message non luPosté: Ven 22 Fév 2013 18:47
de john_lenfr
Moi je pensais au début que j'avais mal soudé :P