import machine
import time
data = machine.Pin(27,machine.Pin.OUT)
latch = machine.Pin(26,machine.Pin.OUT)
clock = machine.Pin(22,machine.Pin.OUT)
renglones = [machine.Pin(p, machine.Pin.OUT) for p in range(12,16)]
columnas = [machine.Pin(p, machine.Pin.IN,machine.Pin.PULL_DOWN) for p in range(16,20)]
digits = [
[1, 1, 1, 1, 1, 1, 0, 0],
[0, 1, 1, 0, 0, 0, 0, 0],
[1, 1, 0, 1, 1, 0, 1, 0],
[1, 1, 1, 1, 0, 0, 1, 0],
[0, 1, 1, 0, 0, 1, 1, 0],
[1, 0, 1, 1, 0, 1, 1, 0],
[1, 0, 1, 1, 1, 1, 1, 0],
[1, 1, 1, 0, 0, 0, 0, 0],
[1, 1, 1, 1, 1, 1, 1, 0],
[1, 1, 1, 0, 0, 1, 1, 0],
[1, 1, 1, 0, 1, 1, 1, 0],
[0, 0, 1, 1, 1, 1, 1, 0],
[1, 0, 0, 1, 1, 1, 0, 0],
[0, 1, 1, 1, 1, 0, 1, 0],
]
letras = [
["1","2","3","A"],
["4","5","6","B"],
["7","8","9","C"],
["*","0","#","D"]
]
def leer_tecla():
for r in range(4):
renglones[r].value(1)
for c in range(4):
if columnas[c].value():
renglones[r].value(0)
return letras[r][c]
renglones[r].value(0)
return("")
def mostrar_tecla(letra):
if (letra != "*" and letra != "#" and letra != ""):
mostrar = 0
if (letra == "A"):
mostrar= 10
if (letra == "B"):
mostrar = 11
if (letra == "C"):
mostrar = 12
if (letra == "D"):
mostrar = 13
if letra == "0":
mostrar = 0
if letra == "1":
mostrar = 1
if letra == "2":
mostrar = 2
if letra == "3":
mostrar=3
if letra == "4":
mostrar=4
if letra == "5":
mostrar=5
if letra == "6":
mostrar=6
if letra == "7":
mostrar=7
if letra == "8":
mostrar=8
if letra == "9":
mostrar=9
latch.value(0)
datos=digits[mostrar]
for x in datos:
data.value(x)
clock.value(1)
clock.value(0)
latch.value(1)
while True:
letra = leer_tecla()
mostrar_tecla(letra)
time.sleep(0.005)