from time import *
from machine import Pin, Timer
class Stepper:
def __init__(self, step_pin, dir_pin):
self.step_pin = Pin(step_pin, Pin.OUT)
self.dir_pin = Pin(dir_pin, Pin.OUT)
self.position = 0
def set_speed(self, speed):
self.delay = 1 / abs(speed) # delay in seconds
def set_direction(self, direction):
self.dir_pin.value(direction)
def move_to(self, position):
self.set_direction(1 if position > self.position else 0)
while self.position != position:
self.step_pin.value(1)
sleep(self.delay)
self.step_pin.value(0)
self.position += 1 if position > self.position else -1
sleep(0.1) # Wait for USB to become ready
dir_pin3 = 10
step_pin3 = 11
dir_pin4 = 14
step_pin4 = 15
stepper3 = Stepper(step_pin3, dir_pin3)
stepper4 = Stepper(step_pin4, dir_pin4)
while True:
stepper3.set_speed(500)
# stepper3.move_to(float('inf')) # или ставим количество шагов, которое должен сделать двигатель или пишем float('inf'), чтобы двигатель крутился безконечно
stepper4.set_speed(300)
stepper4.move_to(float('inf')) # программа работает последовательно, поэтому пока двигатель 3 не закончит, двигатель 4 не включится
sleep(1)
# код сделан на основе кода из ссылки: https://how2electronics.com/control-stepper-motor-with-a4988-raspberry-pi-pico/