Interrupt-based matrix keypad library for Raspberry Pi
pip install pad4pi
Tested on a Raspberry Pi B+ using a 4x3 matrix keypad but it should work with 4x4 and other sizes.
from pad4pi import rpi_gpio KEYPAD = [ [1, 2, 3], [4, 5, 6], [7, 8, 9], ["*", 0, "#"] ] ROW_PINS = [4, 14, 15, 17] # BCM numbering COL_PINS = [18, 27, 22] # BCM numbering factory = rpi_gpio.KeypadFactory() # Try factory.create_4_by_3_keypad # and factory.create_4_by_4_keypad for reasonable defaults keypad = factory.create_keypad(keypad=KEYPAD, row_pins=ROW_PINS, col_pins=COL_PINS) def printKey(key): print(key) # printKey will be called each time a keypad button is pressed keypad.registerKeyPressHandler(printKey)
When your program exits, call keypad.cleanup() to ensure the Raspberry Pi’s GPIO pins are reset.
Licensed under GNU Lesser General Public License Version 3 (LGPL v3).