我想用加速步进程序库来运行我的步进电机。我的目标是将电机运行特定的步数,检查是否按下外部开关,然后以恒定速度继续。但是,我发现我不能指定一些步骤,然后以恒定的速度运行。
我当前的代码运行一个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来打破它。

关于c - 如何使用accelstepper arduino库移动指定数量的步骤,检查外部输入,然后继续?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57799226/

10-11 21:30