from machine import Pin
from time import sleep, ticks_ms
rij = [19, 18, 5 , 23]
kol = [16, 4, 2 , 15]
rij_pin_obj = []
kol_pin_obj = []
toetsen = [["1","2","3","A"],["4","5","6","B"],["7","8","9","C"],["*","0","#","D"]]
gewenste_code = "7ADC"
ingegeven_code = ""
alarm_status = 0
for pin in rij:
obj = Pin(pin, Pin.IN)
rij_pin_obj.append(obj)
# obj.value(1)
for pin in kol:
obj = Pin(pin, Pin.IN, Pin.PULL_UP)
kol_pin_obj.append(obj)
print(rij_pin_obj)
print(kol_pin_obj)
vorige_toets = ""
ingegeven_code = ""
print("Alarm opgestart, geef je code om aan/uit te toggelen")
def scan_keyboard():
global vorige_toets, ingegeven_code, alarm_status
is_toets_ingedrukt = False
for obj in rij_pin_obj:
obj.init(mode=Pin.OUT)
obj.value(0)
for obj_k in kol_pin_obj:
if obj_k.value() == 0:
is_toets_ingedrukt = True
index_k = kol_pin_obj.index(obj_k)
index_r = rij_pin_obj.index(obj)
#print("r=", index_r ,"k=",index_k)
toets = toetsen [index_r][index_k]
if toets != vorige_toets:
vorige_toets = toets
print( toets , "werd ingedrukt")
ingegeven_code += toets
#print("ingegeven_code=", ingegeven_code)
if len(ingegeven_code) > 4:
ingegeven_code = ingegeven_code [1:]
#print("ingegeven_code nu=", ingegeven_code)
print("ingegeven_code nu=", ingegeven_code)
if ingegeven_code == gewenste_code:
print("Juiste code ingegeven!")
alarm_status = not alarm_status
print("alarm switched to", alarm_status)
obj.init(mode=Pin.IN)
if not is_toets_ingedrukt:
vorige_toets = ""
return ingegeven_code
while True:
scan_keyboard()