from machine import Pin
from time import sleep
start = 16
key = None
schematic = [
["1", "2", "3", "A"],
["4", "5", "6", "B"],
["7", "8", "9", "C"],
["*", "0", "#", "D"]
]
guess = []
correct = ["1", "2", "3", "4"]
r1 = Pin(start, Pin.OUT)
r2 = Pin(start + 1, Pin.OUT)
r3 = Pin(start + 2, Pin.OUT)
r4 = Pin(start + 3, Pin.OUT)
c1 = Pin(start + 4, Pin.IN, Pin.PULL_DOWN)
c2 = Pin(start + 5, Pin.IN, Pin.PULL_DOWN)
c3 = Pin(start + 6, Pin.IN, Pin.PULL_DOWN)
c4 = Pin(start + 10, Pin.IN, Pin.PULL_DOWN)
led = Pin(10, Pin.OUT)
rows = [r1, r2, r3, r4]
cols = [c1, c2, c3, c4]
def get_key_and_password():
global key, guess, correct
for r in range(4):
for c in range(4):
rows[r].on()
key = None
if cols[c].value():
print(f"Key: {schematic[r][c]}")
key = schematic[r][c]
sleep(0.2)
guess.append(key)
if len(guess) == len(correct):
if guess == correct:
print("Correct")
print("")
sleep(0.5)
led.toggle()
guess = []
else:
print("WRONG")
print("")
sleep(0.5)
guess = []
rows[r].off()
while True:
get_key_and_password()
sleep(0.25)