import machine
import time
pins = [ machine.Pin(16, machine.Pin.OUT), # 1
machine.Pin(5, machine.Pin.OUT), # 2
machine.Pin(4, machine.Pin.OUT), # 4
machine.Pin(0, machine.Pin.OUT), # 8
]
#clockwise ตามเข็มนาฬิกา
# phases = [0x1,0x2,0x4,0x8] #work-full step 1 phase
# phases = [0x3,0x6,0xc,0x9] #work-full step 2 phase
# phases = [0x1, 0x3, 0x2, 0x6, 0x4, 0xc,0x8,0x9] #work half
# #counter clockwise ทวนเข็มนาฬิกา
# phases = [0x8, 0x4, 0x2, 0x1]#work-full step 1 phase
# phases = [0xc, 6, 3, 9] #work-full step 2 phase
phases = [0x8, 0xc, 0x4, 0x6, 0x2, 0x3, 0x1, 0x9] #work half
# turn stepper motor
def turn () :
for phase in phases:
for n, p in enumerate(pins):
pins[n](phase & 1<<n)
time.sleep_ms(2)
# set 90 degree
def degree_90 ():
for r in range(128):
turn ()
print('90 degree')
# set 180 degree
def degree_180 ():
for r in range(256):
turn ()
print('180 degree')
# set 360 degree
def one_round ():
for r in range(512):
turn ()
print('360 degree')
# set degree
# set degree
def set_degree(angle):
a = int(angle * 1.422223)
for r in range(a):
turn()
print(f'{angle} องศา')
#degree_90 ()
#degree_180 ()
#one_round ()
set_degree(135)