Controler des moteur pas a pas

Bonjour, j'ai actuellement 3 moteur Néma 17 avec un cnc Shield et un Arduino uno, j'aimerais contrôler précisément l'accélération, la vitesse maximum, et la décélération.
Pour être plus claire, j'aimerais avoir une variable contenant le nombre de pas du moteur, et qu'ensuite l'Arduino gère tout seul la rampe d'accélération et de décélération.

Concernant les composant j'ai :
_Un arduino UNO
_Un CNC shield, voici le lien : Shield CNC pour Uno ARD-CNC-K1 - Shields moteurs | GO TRONIC
_Des driver A4988
_ Des moteurs pas a pas Quimat, voici le lien : 17HD48002-22B Motor Datasheet, Distributor, Stock and Price

Les moteurs tournent très bien avec un programme simple comme celui ci :

#define EN 8 /* Enable pin for all stepper outputs */
#define X_DIR 5 /* Direction-Pin for X-axis */
#define X_STEP 2 /* Step-Pin for X-axis */
#define Y_DIR 6 /* Direction-Pin for Y-axis*/
#define Y_STEP 3 /* Step-Pin for Y-axis */
#define Z_DIR 7 /* Direction-Pin for Z-axis */
#define Z_STEP 4 /* Step-Pin for Z-axis */
#define A_DIR 13 /* Direction-Pin for A-axis*/
#define A_STEP 12 /* Step-Pin for A-axis */
int Count = 0; /* Counter to count number of steps made */
boolean Direction = LOW; /* Rotational direction of stepper motors*/
void setup()
{
Serial.begin(9600);
/* Configure the stepper drive pins as outputs */
pinMode(EN, OUTPUT);
pinMode(X_DIR, OUTPUT);
pinMode(X_STEP, OUTPUT);
pinMode(Y_DIR, OUTPUT);
pinMode(Y_STEP, OUTPUT);
pinMode(Z_DIR, OUTPUT);
pinMode(Z_STEP, OUTPUT);
pinMode(A_DIR, OUTPUT);
pinMode(A_STEP, OUTPUT);
digitalWrite(EN, LOW); //Low to enable
}

Cependant dès que j'utilise la bibliotèque Accelstepper, le moteur ne tourne plus du tout, j'utilise ce code la :

#include <AccelStepper.h>

// Définir les pins pour le moteur pas à pas
#define EN 8 /* Pin d'activation pour toutes les sorties du moteur */
//#define X_DIR 6 /* Pin de direction pour l'axe X */
//#define X_STEP 3 /* Pin de pas pour l'axe X */

const byte dirPin = 6;
const byte stepPin = 3;
AccelStepper stepper = AccelStepper(AccelStepper::DRIVER, stepPin, dirPin);

void setup() {
  stepper.setMaxSpeed(1000); // vitesse max souhaitée en nombre de pas par seconde
  stepper.setSpeed(200);     // nombre de pas par seconde souhaité dans runSpeed
}

void loop() {
  stepper.runSpeed();    // on fait tourner quand il faut
}

je n'arrive pas a trouver une solution, si quelqu'un peut m'aider ?

Bonsoir kylian_bravo

Pour ce qui est de AccelStepper, tu as oublié le signal Enable (actif à LOW) qui est commun aux 3 MPAP, sur la pin 8.

Le programme complété:

#include <AccelStepper.h>  // https://www.airspayce.com/mikem/arduino/AccelStepper/classAccelStepper.html

// Définir les pins pour le moteur pas à pas
//#define EN 8 /* Pin d'activation pour toutes les sorties du moteur */
//#define X_DIR 6 /* Pin de direction pour l'axe X */
//#define X_STEP 3 /* Pin de pas pour l'axe X */

const byte dirPin = 6;
const byte stepPin = 3;
const byte enablePin = 8;

AccelStepper stepper = AccelStepper(AccelStepper::DRIVER, stepPin, dirPin);

void setup() {
	pinMode(enablePin, OUTPUT);
	digitalWrite(enablePin, LOW);  // Activer les signaux ENABLE des axes X,Y et Z

	stepper.setMaxSpeed(1000); // vitesse max souhaitée en nombre de pas par seconde
	stepper.setSpeed(200);     // nombre de pas par seconde souhaité dans runSpeed

	stepper.enableOutputs ();
}

void loop() {
	stepper.runSpeed();    // on fait tourner quand il faut
}

Bonjour,

Ahh d’accord merci jpbbricole,

Je vais essayer ça et je vous redirais si le problème est toujours là merci