【发布时间】:2021-07-10 14:56:38
【问题描述】:
我有四个数字引脚存储在数组inPins[4] 中,它们为步进电机的不同相位供电。波函数很简单,因为永远不会超过一个相位。我的波函数如下所示:
void waveClockwise()
{
for (int i = 0; i < 4; i++)
{
digitalWrite(inPins[i], HIGH);
delay(delayTime);
digitalWrite(inPins[i], LOW);
}
return;
}
这个 ^ 在循环中被重复调用。然而,在实现 halfStep 函数时,我很难理解如何在 for 循环中完成。
对于halfStep,顺序如下:
- in1:开
- in2:开
- in1:关闭
- in3:开
- in2:关闭
... 以此类推,因为它围绕阶段走了半步。我用下面的代码完成了它,但我只是好奇我怎么能在一个循环中做到这一点。有什么建议或想法吗?
void halfStepClockwise()
{
digitalWrite(inPins[0], HIGH);
delay(delayTime);
digitalWrite(inPins[1], HIGH);
delay(delayTime);
digitalWrite(inPins[0], LOW);
delay(delayTime);
digitalWrite(inPins[2], HIGH);
delay(delayTime);
digitalWrite(inPins[1], LOW);
delay(delayTime);
digitalWrite(inPins[3], HIGH);
delay(delayTime);
digitalWrite(inPins[2], LOW);
delay(delayTime);
digitalWrite(inPins[0], HIGH);
delay(delayTime);
digitalWrite(inPins[3], LOW);
delay(delayTime);
}
【问题讨论】:
标签: c for-loop arduino stepper