From d35e62758dd7d70d4397f13461cc5b3e3167093e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?F=C3=A9lix=20MARQUET?= <72651575+BreizhHardware@users.noreply.github.com> Date: Sat, 7 Dec 2024 17:30:40 +0100 Subject: [PATCH] It work on my computer --- ascenseur.ino | 91 ++++++++++++++++----------------------------------- 1 file changed, 28 insertions(+), 63 deletions(-) diff --git a/ascenseur.ino b/ascenseur.ino index f579180..815f944 100644 --- a/ascenseur.ino +++ b/ascenseur.ino @@ -1,70 +1,35 @@ -#include -//POSITION------------------------------------------------------------------------------------------- -void moveTo(float distance); -void end(); -void editSpeed(unsigned int speed = 1); + #include -//MOTEURS-------------------------------------------------------------------------------------------- -// Configuration des broches pour le moteur X -#define X_STEP_PIN 2 // Broche STEP du moteur X -#define X_DIR_PIN 5 // Broche DIR du moteur X -#define ENABLE_PIN 8 // Broche ENABLE du moteur - -#define M0_PIN 9 // Broche M0 du moteur X -#define M1_PIN 10 // Broche M1 du moteur X -#define M2_PIN 11 // Broche M2 du moteur X - -// 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); - -// Garder en mémoire la position de l'ascenseur -long position; - - -//SETUP================================================================================================ -void setup() { - Serial.begin(9600); - - while (!Serial) {} - Serial.println("[setup] Starting ascensor programm"); - - //CONFIG MOTEURS-------------------------------------------------------------------------------------------- // Configuration des broches pour le moteur X - pinMode(ENABLE_PIN, OUTPUT); + #define STEP_PIN 2 // Broche STEP du moteur X + #define DIR_PIN 5 // Broche DIR du moteur X + #define ENABLE_PIN 8 // Broche ENABLE du moteur - // Configuration des paramètres des moteurs X et Y - //editSpeed(5); - stepperX.setMaxSpeed((float(MOTOR_STEPS * MICROSTEPS) / 60) * RPM/SPEED); - stepperX.setAcceleration((float(MOTOR_STEPS * MICROSTEPS) / 60) * RPM/(SPEED*4)); + // Créer une instance de la classe AccelStepper + AccelStepper stepper(AccelStepper::DRIVER, STEP_PIN, DIR_PIN); - // Activation des sorties des drivers pour les moteurs X et Y - digitalWrite(ENABLE_PIN, LOW); // Activer le driver du moteur X (LOW = activé) - - moveTo(1000); -} + void setup() { + pinMode(ENABLE_PIN, OUTPUT); + digitalWrite(ENABLE_PIN, LOW); + // Configurer la vitesse et l'accélération + stepper.setMaxSpeed(1000000); // Vitesse maximale (steps par seconde) + stepper.setAcceleration(50000); // Accélération (steps par seconde^2) -//LOOP================================================================================================== -void loop() { - Serial.println("[loop] starting mooving"); - stepperX.runSpeedToPosition(); -} + // Initialisation du mouvement + Serial.begin(9600); + Serial.println("Moteur prêt"); + } -//FONCTION================================================================================================ -// Fonction pour faire avancer le robot sur une distance donnée en mm -void moveTo(float distance) { - float distanceSteps = distance * MOTOR_STEPS * MICROSTEPS; // TODO : Calcul du nombre de pas nécessaires - stepperX.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)); -} + void loop() { + // Déplacer vers une position spécifique + stepper.moveTo(100000); // Aller à 1000 pas + stepper.runToPosition(); // Attendre d'arriver à la position + + delay(1000); // Pause d'une seconde + + stepper.moveTo(-100000); // Retour à la position d'origine + stepper.runToPosition(); + + delay(1000); // Pause d'une seconde + }