from machine import Pin
from time import sleep
def fun1_int(z):
    global y
    y=not y
def fun2_int(f):
    global t
    t=t-0.5
    if t<0.5:
        t=1
def motor(x):
    a1.value(int(x[0]))
    b1.value(int(x[1]))
    a2.value(int(x[2]))
    b2.value(int(x[3]))
DIR=Pin(5,Pin.IN,Pin.PULL_UP)
DIR.irq(trigger=Pin.IRQ_FALLING,handler=fun1_int)
VEL=Pin(27,Pin.IN,Pin.PULL_UP)
VEL.irq(trigger=Pin.IRQ_FALLING,handler=fun2_int)
a1=Pin(23,Pin.OUT)
a2=Pin(22,Pin.OUT)
b1=Pin(21,Pin.OUT)
b2=Pin(19,Pin.OUT)
Lista=["1100","1001","0011","0110"]
y=0
t=1
m=0
while(1):
    motor(Lista[m])
    sleep(t)
    if y==0:
        m=m+1
        if m>3:
            m=0
    else:
        m=m-1
        if m<0:
            m=3