diff --git a/ascenseur.ino b/ascenseur.ino index 8a55a04..f579180 100644 --- a/ascenseur.ino +++ b/ascenseur.ino @@ -1,5 +1,4 @@ #include -#include //POSITION------------------------------------------------------------------------------------------- void moveTo(float distance); void end(); @@ -15,21 +14,16 @@ void editSpeed(unsigned int speed = 1); #define M1_PIN 10 // Broche M1 du moteur X #define M2_PIN 11 // Broche M2 du moteur X -// Configuration des broches pour le moteur Y -#define Y_STEP_PIN 3 // Broche STEP du moteur Y -#define Y_DIR_PIN 6 // Broche DIR du moteur Y - // Configuration des paramètres des moteurs #define MOTOR_STEPS 200 // Nombre de pas par tour du moteur #define RPM 50 // Vitesse de rotation en tours par minute #define MICROSTEPS 16 // Configuration du microstepping (1/16 de pas) +#define SPEED 5 + // Définition des objets AccelStepper pour chaque moteur AccelStepper stepperX(AccelStepper::DRIVER, X_STEP_PIN, X_DIR_PIN); -AccelStepper stepperY(AccelStepper::DRIVER, Y_STEP_PIN, Y_DIR_PIN); -// Créer un objet MultiStepper pour synchroniser les moteurs -MultiStepper multiStepper; // Garder en mémoire la position de l'ascenseur long position; @@ -47,21 +41,19 @@ void setup() { pinMode(ENABLE_PIN, OUTPUT); // Configuration des paramètres des moteurs X et Y - editSpeed(5); + //editSpeed(5); + stepperX.setMaxSpeed((float(MOTOR_STEPS * MICROSTEPS) / 60) * RPM/SPEED); + stepperX.setAcceleration((float(MOTOR_STEPS * MICROSTEPS) / 60) * RPM/(SPEED*4)); // Activation des sorties des drivers pour les moteurs X et Y digitalWrite(ENABLE_PIN, LOW); // Activer le driver du moteur X (LOW = activé) - digitalWrite(ENABLE_PIN, LOW); // Activer le driver du moteur Y (LOW = activé) - - // Ajouter les moteurs à la MultiStepper (X et Y) - multiStepper.addStepper(stepperX); - multiStepper.addStepper(stepperY); + + moveTo(1000); } //LOOP================================================================================================== void loop() { Serial.println("[loop] starting mooving"); - moveTo(100); stepperX.runSpeedToPosition(); } @@ -70,12 +62,9 @@ void loop() { void moveTo(float distance) { float distanceSteps = distance * MOTOR_STEPS * MICROSTEPS; // TODO : Calcul du nombre de pas nécessaires stepperX.setCurrentPosition(0); - stepperY.setCurrentPosition(0); stepperX.moveTo(distanceSteps); // Déplacer les moteurs vers les positions cibles } void editSpeed(unsigned int speed = 1){ stepperX.setMaxSpeed((float(MOTOR_STEPS * MICROSTEPS) / 60) * RPM/speed); stepperX.setAcceleration((float(MOTOR_STEPS * MICROSTEPS) / 60) * RPM/(speed*4)); - stepperY.setMaxSpeed((float(MOTOR_STEPS * MICROSTEPS) / 60) * RPM/speed); - stepperY.setAcceleration((float(MOTOR_STEPS * MICROSTEPS) / 60) * RPM/(speed*4)); }