Code:
from machine import Pin,Timerimport time# setup gpios for buttonskeypadColPins = [0,1,2]keypadRowPins = [3,4,5,6,7]row = []col = []for i in keypadRowPins: row.append(Pin(i,Pin.IN,Pin.PULL_UP))for i in keypadColPins: col.append(Pin(i,Pin.OUT))# setup outputsledPins = [8,9,10,11,12,13,14,15,16,17,18,19,20,21,22]leds = []for i in ledPins: leds.append(Pin(i,Pin.OUT))# clear ALL outputsfor i in range(0,len(leds)): leds[i].low()# read buttonsdef keypadRead(): global row,col krow = -1 kcol = -1 # scan for pressed button for i in range(0,len(col)): col[i].low() time.sleep(0.005) #settling time for j in range(0,len(row)): if row[j].value() == 0: # store button pressed krow = i kcol = j col[i].high() if krow != -1: # button pressed return values print((krow*5)+kcol+1,krow,kcol,) return krow,kcol else: # if no button pressed return with -1 return -1,-1#main loopif __name__ == '__main__': while True: # read buttons krow,kcol = keypadRead() if krow != -1 and kcol != -1: # if a button has been pressed # clear ALL outputs for i in range(0,len(leds)): leds[i].low() # set the required ouput leds[(krow*5)+kcol].on()
- Image may be NSFW.
Clik here to view.
Statistics: Posted by gordon77 — Thu Aug 22, 2024 4:19 pm