from machine import Pin
from time import sleep
# Mapeamento do teclado
teclas = [['1', '2', '3', 'A'],
['4', '5', '6', 'B'],
['7', '8', '9', 'C'],
['*', '0', '#', 'D']]
# Pinos conectados às linhas e colunas
linhas_pinos = [7, 6, 5, 4]
colunas_pinos = [3, 2, 1, 0]
# Configuração dos pinos
linhas = [Pin(x, Pin.OUT) for x in linhas_pinos]
colunas = [Pin(i, Pin.IN, Pin.PULL_DOWN) for i in colunas_pinos]
def teclado():
for z in range(4):
# Desliga todas as linhas
for linha in linhas:
linha.value(0)
# Ativa uma linha por vez
linhas[z].value(1)
for a in range(4):
if colunas[a].value() == 1:
# Espera a tecla ser solta (debounce simples)
while colunas[a].value() == 1:
sleep(0.01)
return teclas[z][a]
return None
while True:
tecla = teclado()
if tecla:
print(f"Tecla pressionada: {tecla}")
sleep(0.1) # Pequeno delay opcional para segurança