如何使用 accelstepper arduino 库移动指定数量的步数,检查外部输入,然后继续?

How do you use the accelstepper arduino library to move a specified number of steps, check an external input, then continue?

我正在尝试将 Accelstepper 库用于 运行 我的步进电机。我的objective是让电机运行走特定步数,检查是否有外部开关被按下,然后匀速继续。但是,我发现我无法指定步数然后以恒定速度运行。

我当前的代码 运行 是一个 while 循环,运行 是我指定的步数,同时忽略了关于我的开关的任何代码。

motor.setCurrentPosition(0);
while(motor.currentPosition()!=50){
  motor.setSpeed(500);
  motor.runSpeed();
}
delay(1000);
if (digitalRead(switchPin)==LOW){
  motor.setSpeed(500);
  motor.runSpeed();
}

您需要将最后一个 motor.runSpeed() 置于无限循环中。现在,如果 switchpin 很低,它只会执行一次。 之后程序退出if条件终止。

motor.setSpeed(500);
motor.setCurrentPosition(0);

while(motor.currentPosition()!=50){
    motor.runSpeed();
}

delay(1000);

if (digitalRead(switchPin)==LOW){

    while (1) {
        motor.runSpeed();
    }

}

在 while 循环中,如果需要,您可以检查另一个 vlag 以打破它。