from machine import Pin
from time import sleep
KEY_UP = const(0)
KEY_DOWN = const(1)
keys = [['1', '2', '3', 'A'],
['4', '5', '6', 'B'],
['7', '8', '9', 'C'],
['*', '0', '#', 'D']]
cols = [19,13,12,23]
rows = [2,4,5,18]
row_pins = [Pin(pin_name, mode=Pin.OUT) for pin_name in rows]
col_pins = [Pin(pin_name, mode=Pin.IN, pull=Pin.PULL_DOWN) for pin_name in cols]
def init():
for row in range(0,4):
for col in range(0,4):
row_pins[row].value(0)
def scan(row, col):
row_pins[row].value(1)
key = None
if col_pins[col].value() == KEY_DOWN:
key = KEY_DOWN
if col_pins[col].value() == KEY_UP:
key = KEY_UP
row_pins[row].value(0)
return key
init()
while True:
for row in range(4):
for col in range(4):
key = scan(row, col)
if key == KEY_DOWN:
print("You pressed :", keys[row][col])
sleep(0.3)