#este programa se desarrolla para el teclado 4x4
#modulos
from machine import Pin
from time import sleep
# creando constantes
tecla_Abajo = const (1)
tecla_Arriba = const (0)
teclas = [['1', '2', '3', 'A'],
['4', '5', '6', 'B'],
['7', '8', '9', 'C'],
['*', '0', '#', 'D']]
# definicion de los pines
filas = [2,4,5,19]
columnas = [12,27,26,25]
#definimos los pines de las filas como slaidas
pines_Filas = [Pin(pin_nombre,mode=Pin.OUT)for pin_nombre in filas]
#definimos los pines de las columasn como salidas
pines_Columnas = [Pin(pin_nombre,mode=Pin.IN,pull=Pin.PULL_DOWN)for pin_nombre in columnas]
#funcion para inicializar teclado
def inicio():
for fila in range(0,4):
for col in range(0,4):
pines_Filas[fila].value(0)
def escaner(fila,columna):
""" Escaneo de teclado """
pines_Filas[fila].value(1)
key = None
# verificando evento al presionar tecla
if pines_Columnas[columna].value() == tecla_Abajo:
key = tecla_Abajo
if pines_Columnas[columna].value() == tecla_Arriba:
key = tecla_Arriba
pines_Filas [fila].value(0)
#retorne el estado de la tecla
return key
print("iniciando ... presione una tecla: ")
#poner todas las columnas en bajo
inicio()
while True:
for fila in range(4):
for columna in range(4):
tecla = escaner(fila,columna)
if tecla == tecla_Abajo:
print("es el numero. ", teclas[fila][columna])
last_key_press = teclas[fila][columna]
sleep(0.5)