from machine import Pin
from time import sleep
Tecla_Arriba = const(0)
Tecla_Abajo = const(1)
teclas = [["1", "2", "3", "A"],
["4", "5", "6", "B"],
["7", "8", "9", "C"],
["*", "0", "#", "D"]]
filas = [2, 4, 5, 19]
columnas = [12, 27, 26, 25]
pines_Filas = [Pin(pin, mode=Pin.OUT) for pin in filas]
pines_Columnas = [Pin(pin, mode=Pin.IN, pull=Pin.PULL_DOWN) for pin in columnas]
def escanear():
for fila in range(4):
# Activa la fila actual
pines_Filas[fila].value(1)
for columna in range(4):
# Verifica si la columna está en estado bajo (tecla presionada)
if pines_Columnas[columna].value() == Tecla_Abajo:
# Espera hasta que se suelte la tecla
while pines_Columnas[columna].value() == Tecla_Abajo:
pass
# Desactiva la fila actual y retorna la tecla
pines_Filas[fila].value(0)
return teclas[fila][columna]
# Desactiva la fila actual
pines_Filas[fila].value(0)
return None
print("Iniciando ................. Presione una tecla: ")
while True:
tecla = escanear()
if tecla:
print("La tecla es:", tecla)
sleep(0.5)