#20260705
from machine import Pin
from time import sleep, sleep_us
dir_m1 = Pin(14, Pin.OUT)
step_m1 = Pin(15, Pin.OUT)
en_m1 = Pin(16, Pin.OUT)
steps_por_vuelta = 200 #Pasos por vuelta del motor
paso_rosca = 4 #Paso rosca del tornillo en mm
microstep = 1 # 1 = Full step, 2 = Half Step
# 4 = 1/4, 8 = 1/8, 16 = 1/16, 32 = 1/32
steps_por_mm = steps_por_vuelta * microstep / paso_rosca #Calcula pasos/mm
def RPM_2_delay(RPM):
rev_por_seg = RPM / 60 #Convierte RPM a Revs/Segundo
steps_por_seg = steps_por_vuelta * rev_por_seg #Calcula pasos/Segundo
delay = round((1 / steps_por_seg) * 1000000/2) #Calcula pausa en microseconds
return delay
def girar():
for v in range(3):
for s in range(200):
step_m1.high()
sleep_us(delay)
step_m1.low()
sleep_us(delay)
while True:
en_m1.high()
RPM = 10
while RPM <= 500:
delay = RPM_2_delay(RPM) #Calcula la pausa entre pasos
dir_m1.high()
girar()
dir_m1.low()
girar()
RPM*=5
sleep_us(5000)
break