from machine import Pin
from time import sleep
A = Pin(23, Pin.OUT)
B = Pin(22, Pin.OUT)
C = Pin(21, Pin.OUT)
D = Pin(19, Pin.OUT)
E = Pin(18, Pin.OUT)
F = Pin(5, Pin.OUT)
G = Pin(17, Pin.OUT)
DP = Pin(16, Pin.OUT)
canal_A = Pin(14, Pin.IN)
canal_B = Pin(12, Pin.IN)
def contador (x, punto):
A.value(x[0])
B.value(x[1])
C.value(x[2])
D.value(x[3])
E.value(x[4])
F.value(x[5])
G.value(x[6])
DP.value(punto)
numeros = [
[1,1,1,1,1,1,0], # 0
[0,1,1,0,0,0,0], # 1
[1,1,0,1,1,0,1], # 2
[1,1,1,1,0,0,1], # 3
[0,1,1,0,0,1,1], # 4
[1,0,1,1,0,1,1], # 5
[1,0,1,1,1,1,1], # 6
[1,1,1,0,0,0,0], # 7
[1,1,1,1,1,1,1], # 8
[1,1,1,1,0,1,1] ] # 9
def isrA (y):
global direccion, cnt, n
if canal_B.value()==1:
direccion = 0
cnt = cnt + 1
else:
direccion = 1
cnt = cnt - 1
if cnt >= pulsos:
cnt = 0
if n < 9:
n = n + 1
if cnt <= -pulsos:
cnt = 0
if n > -9:
n = n - 1
def isrB (y):
global direccion
if canal_A.value()==1:
direccion = not direccion
canal_A.irq(trigger=Pin.IRQ_FALLING, handler=isrA)
canal_B.irq(trigger=Pin.IRQ_FALLING, handler=isrB)
direccion = 0
cnt = 0
n = 0
pulsos = 20
while(1):
if n >= 0:
contador(numeros[n], 0)
else:
contador(numeros[0 - n], 1)
print(cnt)