3838 /* Dessin d'un carré * 10 cm de coté = 1700 pas * angles = 1246 pas */ // Include the AccelStepper Library #include // Define step constants #define FULLSTEP 4 #define HALFSTEP 8 int etape = 8; // Nombre d'étapes // Creates two instances of motor // Pins entered in sequence IN1-IN3-IN2-IN4 for proper step sequence AccelStepper stepper2(FULLSTEP, 8, 10, 9, 11); AccelStepper stepper1(FULLSTEP, 4, 6, 5, 7); // Défini les déplacements en valeur absolue void change(int e) { Serial.print("Etape = "); Serial.println(etape); switch (e){ case 8: stepper1.moveTo(1700); stepper2.moveTo(1700); break; case 7: stepper1.moveTo(2946); stepper2.moveTo(454); break; case 6: stepper1.moveTo(4646); stepper2.moveTo(2154); break; case 5: stepper1.moveTo(5892); stepper2.moveTo(908); break; case 4: stepper1.moveTo(7592); stepper2.moveTo(2608); break; case 3: stepper1.moveTo(8838); stepper2.moveTo(1362); break; case 2: stepper1.moveTo(10538); stepper2.moveTo(3062); break; case 1: stepper1.moveTo(11784); stepper2.moveTo(1816); break; default: ; } etape--; } void setup() { Serial.begin(115200); // set the maximum speed, acceleration factor, // initial speed and the target position for motor 1 stepper1.setMaxSpeed(1000.0); stepper1.setAcceleration(200.0); stepper1.setSpeed(200); // set the same for motor 2 stepper2.setMaxSpeed(1000.0); stepper2.setAcceleration(200.0); stepper2.setSpeed(200); } void loop() { // Change direction once the motor reaches target position if ((etape > 0) && (stepper1.distanceToGo() == 0)) change(etape); // Move the motor one step if (etape >=0) { stepper1.run(); stepper2.run(); } }