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)
BOOTSELLED1239USBRaspberryPiPico©2020RP2-8020/21P64M15.00TTT