from machine import Pin, PWM
from time import sleep
ROWS = [19, 18, 5, 17]
COLS = [16, 4, 2, 15]
keys = [
['1', '2', '3', 'A'],
['4', '5', '6', 'B'],
['7', '8', '9', 'C'],
['*', '0', '#', 'D']
]
buzzer = PWM(Pin(14),freq=440,duty=512)
row_pins = [Pin(pin, Pin.OUT) for pin in ROWS]
col_pins = [Pin(pin, Pin.IN, Pin.PULL_UP) for pin in COLS]
for row in row_pins:
row.value(1)
def read_keypad():
for i, row in enumerate(row_pins):
row.value(0)
for j, col in enumerate(col_pins):
if col.value() == 0:
while col.value() == 0:
sleep(0.01)
row.value(1)
return keys[i][j]
row.value(1)
return None
while True:
key = read_keypad()
if key:
print("Tecla presionada:", key)
buzzer.freq(10000)
buzzer.duty(512)
sleep(0.3)
else:
buzzer.duty(0)