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:
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 :
ici la boucle k tourne un grand nombre de fois alors que elle devrait tourner 2 fois et revenir au digitalread, des idées ?
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 ?
Arduino Forum > International > Français (Moderators: jfs, Snootlab) > Motor Shield R3 et moteur Pas à Pas
arduino
Comments
Post a Comment