使用 Python3 正确嵌套步进电机的环路



我正在尝试使用Raspberry Pi和adafruit Motor HAT操作步进电机,以便转动一根举起装满小水的锅的杆。但是,我需要在缓慢的阶段执行此操作,以使水排出并防止系统对电机来说太重。

我正在尝试创建一个嵌套循环,该循环执行离散数量的步骤,暂停一段时间,然后再次执行循环。我在暂停元素方面遇到困难,因为我的嵌套尝试最终在第一次旋转后关闭了电机。

我可以使用下面的代码模拟我想要实现的效果,但它显然体积庞大、效率低下且难以精确修复循环数。

from adafruit_motorkit import MotorKit
from time import sleep
kit = MotorKit()
from adafruit_motor import stepper
for i in range(20):
kit.stepper1.onestep(direction=stepper.BACKWARD, style=stepper.INTERLEAVE)
print("Turn")
sleep(10)
for i in range(20):
kit.stepper1.onestep(direction=stepper.BACKWARD, style=stepper.INTERLEAVE)
print("Turn")
sleep(10)
for i in range(20):
kit.stepper1.onestep(direction=stepper.BACKWARD, style=stepper.INTERLEAVE)
print("Turn")
for i in range(20):
kit.stepper1.onestep(direction=stepper.BACKWARD, style=stepper.INTERLEAVE)
print("Turn")
sleep(10)
for i in range(20):
kit.stepper1.onestep(direction=stepper.BACKWARD, style=stepper.INTERLEAVE)
print("Turn")
sleep(10)
for i in range(20):
kit.stepper1.onestep(direction=stepper.BACKWARD, style=stepper.INTERLEAVE)
print("Turn") 

我将非常感谢有关如何正确嵌套循环的建议。

下面的代码应该完全符合你所拥有的

from adafruit_motorkit import MotorKit
from time import sleep
kit = MotorKit()
from adafruit_motor import stepper
for j in range(6):
for i in range(20):
kit.stepper1.onestep(direction=stepper.BACKWARD, style=stepper.INTERLEAVE)
print("Turn %s" % (j + 1))
sleep(10)

最新更新