from machine import Pin
import time
KEY_UP = const(0)
KEY_DOWN = const(1)
keys = [
["1", "2", "3", "A"],
["4", "5", "6", "B"],
["7", "8", "9", "C"],
["*", "0", "#", "D"]
]
cols = [16,4,0,2]
rows = [23,22,21,19]
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):
""" scan the keypad """
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
print("starting")
init()
while True:
for row in range(4):
for col in range(4):
key = scan(row, col)
if key == KEY_DOWN:
print("Key Pressed", keys[row][col])
last_key_press = keys[row][col]
time.sleep(0.5)