Правильно вложенные петли с Python3 для шагового двигателя - PullRequest
0 голосов
/ 20 января 2020

Я пытаюсь управлять шаговым двигателем, используя Raspberry Pi и adafruit Motor HAT, чтобы вращать штангу, которая поднимает маленькие наполненные водой горшки. Однако мне нужно делать это медленно, чтобы дать воде стечь и предотвратить слишком тяжелую систему для двигателя.

Я пытаюсь создать вложенную l oop, которая выполняет дискретное число шаги, паузы на период, затем снова выполняет l oop. У меня возникают проблемы с элементом паузы, поскольку мои попытки вложения заканчивают тем, что я выключал двигатель после первого поворота.

Я могу смоделировать эффект, которого я хочу достичь, используя код ниже, но он, очевидно, громоздкий, неэффективно и трудно точно определить количество циклов.

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") 

Буду очень признателен за совет о том, как правильно вкладывать l oop.

1 Ответ

0 голосов
/ 20 января 2020

Код ниже должен делать именно то, что вы получили

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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...