from time import sleep
from machine import Pin
# output pins - ROWS
# 12, 13, 14, 15
out_pins = []
for i in range(12, 16):
out_pins.append(Pin(i, Pin.OUT))
# then: 12 -> out_pins[0]
# input pins - COLS
# 8, 9, 10, 11
in_pins = []
for i in range(8, 12):
in_pins.append(Pin(i, Pin.IN, Pin.PULL_DOWN))
# then: 8 -> in_pins[0]
keys = [
['D', '#', '0', '*'],
['C', '9', '8', '7'],
['B', '6', '5', '4'],
['A', '3', '2', '1']
]
while True:
# switch output pins to log. 1
for i in range(4):
row = out_pins[i]
# switch on one of rows
row.on()
for j in range(4):
# see value of the pin
col = in_pins[j]
if (col.value() == 1):
print(i, j, keys[i][j])
# switch off the row
row.off()
sleep(0.25)