1

我正在尝试使用 Accelstepper 库来运行我的步进电机。我的目标是让电机运行特定的步数,检查是否按下了外部开关,然后以恒定速度继续运行。但是,我发现我无法指定多个步骤然后以恒定速度运行。

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

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

1 回答 1

2

您需要将最后一个放入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 以摆脱它。

于 2019-09-05T06:55:16.230 回答