"Teclado matricial"
#Se da por filas y columnas, cada número por una ubicación.
#columnas out. MAPEO DE CADA PIN
from machine import Pin
from time import sleep
# Constantes
#Tecla_Arriba = 0
#Tecla_Abajo = 1
teclas = [['1', '2', '3', 'A'], ['4', '5', '6', 'B'], ['7', '8', '9', 'C'], ['*', '0', '#', 'D']]
# Defininicón de Pines
filas = [2,4,5,19]
columnas = [12,27,26,25]
# Definimos los pines de las filas como salida
pines_Filas = [Pin(pin_nombre, mode=Pin.OUT) for pin_nombre in filas]
# Definimos los pines de las columnas de entrada
pines_Columnas = [Pin(pin_nombre, mode=Pin.IN, pull=Pin.PULL_DOWN) for pin_nombre in columnas]
#Funciónpara inicializar el teclado
def inicio():
for fila in range(0,4):
pines_Filas[fila].value(0)
def escanear(fila, columna):
""" Escaneo del teclado """
# poner todas las filas en alto
pines_Filas[fila].value(1)
key = 0
# verificación al presionar una tecla o evento
if (pines_Columnas[columna].value()==0):
key = 0
if (pines_Columnas[columna].value() == 1):
key = 1
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 = escanear(fila, columna)
if tecla == 1:
print("Es el numero: ", teclas[fila][columna])
last_key_press = teclas[fila][columna]