Go Down

Topic: Faire tourner un moteur pas à pas sans fin (Read 153 times) previous topic - next topic

Wally06

Bonjour,
Avec l'instruction motor.step(1) dans une boucle, le moteur tourne bien sans fin mais ça ne me semble pas très propre (trop d'impulsions).
J'arrive avec lui faire faire un tour complet avec l'instruction motor.step(2048) mais vu que je ne sais pas quand est-ce qu'il a fini son tour complet, je ne peux pas lui relancer la même instruction.

lacfab

Hello,
Dans les scripts de test tu as de quoi tester plusieurs possibilités. Essaie ceci


// Adafruit Motor shield library
// copyright Adafruit Industries LLC, 2009
// this code is public domain, enjoy!

#include <AFMotor.h>

// Connect a stepper motor with 48 steps per revolution (7.5 degree)
// to motor port #1 (M1 and M2)    to motor port #2 (M3 and M4)
AF_Stepper motor(48, 2);

void setup() {
  motor.setSpeed(10);  // 10 rpm   
}

void loop() {
  Serial.println("Single coil steps");
  motor.step(100, FORWARD, SINGLE);
  motor.step(100, BACKWARD, SINGLE);

  Serial.println("Double coil steps");
  motor.step(100, FORWARD, DOUBLE);
  motor.step(100, BACKWARD, DOUBLE);

  Serial.println("Interleave coil steps");
  motor.step(100, FORWARD, INTERLEAVE);
  motor.step(100, BACKWARD, INTERLEAVE);

  Serial.println("Micrsostep steps");
  motor.step(100, FORWARD, MICROSTEP);
  motor.step(100, BACKWARD, MICROSTEP);
}

J-M-L

#2
Jan 12, 2019, 04:25 pm Last Edit: Jan 12, 2019, 04:26 pm by J-M-L
Quote
trop d'impulsions
ben pourquoi "trop" ? un moteur pas à pas c'est fait pour faire des pas... y'a pas de mal donc à lui dire d'en faire... (ensuite c'est pas comme cela que vous gérez l'accélération ou décélération)
Hello - Please do not PM me for help,  others will benefit as well if you post your question publicly on the forums.
Bonjour Pas de messages privés SVP, postez dans le forum directement pour que ça profite à tous

Wally06

#3
Jan 12, 2019, 08:38 pm Last Edit: Jan 12, 2019, 08:39 pm by Wally06
J'avais peur qu'autant d'impulsions pendant des heures ne l'use plus vite qu'une seule après chaque révolution

J-M-L

Hello - Please do not PM me for help,  others will benefit as well if you post your question publicly on the forums.
Bonjour Pas de messages privés SVP, postez dans le forum directement pour que ça profite à tous

Wally06

Ok, je viens de comprendre... Le module qui pilote le moteur a un défaut, ça n'avait aucun sens ce qu'il se produisait et c'est pour cela que je ne comprenais pas trop ce qui se passait.
Je l'ai changé, et en écrivant simplement dans la fonction loop() motor.step(2048), il tourne sans fin car il s'agit d'une instruction bloquante qui attend que le nombre de pas soient effectués.

Go Up