12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091 |
- import Adafruit_BBIO.GPIO as GPIO
- import time
- import sys
- KEYPAD = [
- ["1","2","3"],
- ["4","5","6"],
- ["7","8","9"],
- ["*","0","#"]
- ]
- ROW = ["P8_8", "P8_10", "P8_12", "P8_14"]
- COLUMN = ["P8_16", "P8_17", "P8_18"]
- pin_r1 = "P8_8"
- pin_r2 = "P8_10"
- pin_r3 = "P8_12"
- pin_r4 = "P8_14"
- pin_c1 = "P8_16"
- pin_c2 = "P8_17"
- pin_c3 = "P8_18"
- GPIO.setup(pin_r1, GPIO.OUT)
- GPIO.setup(pin_r2, GPIO.OUT)
- GPIO.setup(pin_r3, GPIO.OUT)
- GPIO.setup(pin_r4, GPIO.OUT)
- GPIO.setup(pin_c1, GPIO.IN)
- GPIO.setup(pin_c2, GPIO.IN)
- GPIO.setup(pin_c3, GPIO.IN)
- def cb_keypressed(pin):
- col = COLUMN.index(pin)
- key = None
- # GPIO.output(pin_r1, GPIO.HIGH)
- GPIO.output(pin_r2, GPIO.LOW)
- GPIO.output(pin_r3, GPIO.LOW)
- GPIO.output(pin_r4, GPIO.LOW)
- if GPIO.input(pin):
- key=KEYPAD[0][col]
- GPIO.output(pin_r1, GPIO.LOW)
- GPIO.output(pin_r2, GPIO.HIGH)
- # GPIO.output(pin_r3, GPIO.LOW)
- # GPIO.output(pin_r4, GPIO.LOW)
- if GPIO.input(pin):
- key=KEYPAD[1][col]
-
- # GPIO.output(pin_r1, GPIO.LOW)
- GPIO.output(pin_r2, GPIO.LOW)
- GPIO.output(pin_r3, GPIO.HIGH)
- # GPIO.output(pin_r4, GPIO.LOW)
- if GPIO.input(pin):
- key=KEYPAD[2][col]
- # GPIO.output(pin_r1, GPIO.LOW)
- # GPIO.output(pin_r2, GPIO.LOW)
- GPIO.output(pin_r3, GPIO.LOW)
- GPIO.output(pin_r4, GPIO.HIGH)
- if GPIO.input(pin):
- key=KEYPAD[3][col]
- if key:
- print(key)
-
- GPIO.output(pin_r1, GPIO.HIGH)
- GPIO.output(pin_r2, GPIO.HIGH)
- GPIO.output(pin_r3, GPIO.HIGH)
- GPIO.output(pin_r4, GPIO.HIGH)
- GPIO.add_event_detect(pin_c1, GPIO.RISING, callback=cb_keypressed, bouncetime=50)
- GPIO.add_event_detect(pin_c2, GPIO.RISING, callback=cb_keypressed, bouncetime=50)
- GPIO.add_event_detect(pin_c3, GPIO.RISING, callback=cb_keypressed, bouncetime=50)
-
- try:
- GPIO.output(pin_r1, GPIO.HIGH)
- GPIO.output(pin_r2, GPIO.HIGH)
- GPIO.output(pin_r3, GPIO.HIGH)
- GPIO.output(pin_r4, GPIO.HIGH)
- time.sleep(1)
- print("...")
- while True:
- time.sleep(2)
- print("...")
- except Exception as e:
- print("Exception captured. Clean up and quit...")
- GPIO.cleanup()
- print(e)
|