Motor Shield R3 et moteur Pas à Pas


bonjour à tous,
je suis actuellement sur le déplacement d'un moteur pas à pas avec un motor shield r3, j'arrive à le faire tourner simplement dans un sens et dans l'autre avec ce code:
code: [select]

#include <stepper.h>

const int stepsperrevolution = 200;  // change fit number of steps per revolution
                          // motor

// initialize stepper library on motor shield
stepper mystepper(stepsperrevolution, 12,13);    

// give motor control pins names:
const int pwma = 3;
const int pwmb = 11;
const int brakea = 9;
const int brakeb = 8;
const int dira = 12;
const int dirb = 13;

int x = 0;
void setup() {
serial.begin(9600);
// set pwm , brake pins direction pins  // can used control motor:
pinmode(pwma, output);
pinmode(pwmb, output);
pinmode(brakea, output);
pinmode(brakeb, output);
digitalwrite(pwma, high);
digitalwrite(pwmb, high);
digitalwrite(brakea, low);
digitalwrite(brakeb, low);

// initialize serial port:
serial.begin(9600);
// set motor speed (for multiple steps only):
mystepper.setspeed(40);
}


void loop() {

  mystepper.step(400);
   delay(2000);
  mystepper.step(-400);

  delay(2000);

}


mais lorsque je souhaite compliquer la chose un soucis se présente, je souhaite faire un déplacement d'un pas déposer une goutte, un pas une goutte ( ça x fois) et revenir au début de ma ligne ainsi formée voici mon code :
code: [select]

#include <stepper.h>

const int stepsperrevolution = 200;  // change fit number of steps per revolution
const int stepsinimpresion=1;
// motor

// initialize stepper library on motor shield
stepper mystepper(stepsperrevolution, 12, 13);

// give motor control pins names:
const int pwma = 3;
const int pwmb = 11;
const int brakea = 9;
const int brakeb = 8;
const int dira = 12;
const int dirb = 13;


const int piezo = 7;
const int butpin = 4;
int buttonstate=0;
int k =0;
int longueurligne=2;

void setup() {
  serial.begin(9600);
  // set pwm , brake pins direction pins  // can used control motor:
  pinmode(piezo, output);
  pinmode(butpin, input_pullup);

  pinmode(pwma, output);
  pinmode(pwmb, output);
  pinmode(brakea, output);
  pinmode(brakeb, output);
  digitalwrite(pwma, high);
  digitalwrite(pwmb, high);
  digitalwrite(brakea, low);
  digitalwrite(brakeb, low);

  // set motor speed (for multiple steps only):
  mystepper.setspeed(40);

}


void loop()
{
  buttonstate = digitalread(butpin);
  if (buttonstate == high) {
    for (k = 1; k = longueurligne; 1)
    {
      // envoie un créneau sur le piézo=demande de goutte d'encre
      digitalwrite(piezo, high);
      delay(2);
      digitalwrite(piezo, low);
      delay(500);
      mystepper.step(stepsinimpresion);// après le dépot d'une goutte on bouge un peux pour la suivante(1 pas)
    }
    mystepper.step((-2*stepsinimpresion)); // retour en début de ligne
  }
}

ici la boucle k tourne un grand nombre de fois alors que elle devrait tourner 2 fois et revenir au digitalread, des idées ?

bonjour,


je ne comprends pas ton utilisation de la boucle ?!!!


boucle arduino

cordialement

pierre


Arduino Forum > International > Français (Moderators: jfs, Snootlab) > Motor Shield R3 et moteur Pas à Pas


arduino

Comments

Popular posts from this blog

DHT11 Time out error using v0.4.1library

Sketch upload fails with Java error (___REMOVE___/bin/avrdude)!

Arduino Uno + KTY81/210 temperature sensor