- #include <AccelStepper.h>
- #include <MultiStepper.h>
-
- #define STEPPER1_DIR_PIN 6
- #define STEPPER1_STEP_PIN 7
- #define STEPPER2_DIR_PIN 8
- #define STEPPER2_STEP_PIN 9
-
- #define Ena_PIN 10 //使能位为引脚10。(低电平电机禁止运动,高电平电机有效)
-
- AccelStepper stepper1(AccelStepper::DRIVER, STEPPER1_STEP_PIN, STEPPER1_DIR_PIN); // 配置电机1 的脉冲引脚 方向引脚
- AccelStepper stepper2(AccelStepper::DRIVER, STEPPER2_STEP_PIN, STEPPER2_DIR_PIN); // 配置电机2 的脉冲引脚 方向引脚
- MultiStepper steppers;
-
- #define CIRCLE_Puls 1600 //电机旋转一圈的脉冲数
- long positions[2]; //2个电机坐标位置
-
- void setup()
- {
- //
- Serial.begin(9600);
- //
- pinMode(Ena_PIN, OUTPUT);
- digitalWrite(Ena_PIN, 1);
-
- //
- stepper1.setMaxSpeed(CIRCLE_Puls*1.5); //设置1#电机最大速度
- stepper1.setSpeed(CIRCLE_Puls*1); //设置1#电机速度
- stepper1.setAcceleration(CIRCLE_Puls/4); //设置1#电机加速度
- stepper2.setMaxSpeed(CIRCLE_Puls*1.5);
- stepper2.setSpeed(CIRCLE_Puls*1);
- stepper2.setAcceleration(CIRCLE_Puls/4);
-
- /*==============1、转动=========================*/
- //设置电机的目标位置
- positions[0] = CIRCLE_Puls*3;
- positions[1] = CIRCLE_Puls*3;
-
- //添加到多轴中
- steppers.addStepper(stepper1);
- steppers.addStepper(stepper2);
- //电机运行执行
- steppers.moveTo(positions);
- steppers.runSpeedToPosition();
-
- //串口反馈1#电机当前的位置
- Serial.print("1# Motor Current Position is: ");
- Serial.println(stepper1.currentPosition());
- delay(2000);
-
- /*==============2、反转=========================*/
- //设置电机的目标位置
- //positions[0] = CIRCLE_Puls*0;
- //positions[1] = CIRCLE_Puls*0;
- positions[0] = 1;
- positions[1] = 1;
-
- //添加到多轴中
- steppers.addStepper(stepper1);
- steppers.addStepper(stepper2);
- //电机运行执行
- steppers.moveTo(positions);
- steppers.runSpeedToPosition();
-
- //串口反馈1#电机当前的位置
- Serial.print("1# Motor Current Position is: ");
- Serial.println(stepper1.currentPosition());
- delay(2000);
-
- }
-
- void loop()
- {
- // put your main code here, to run repeatedly:
-
- }
|