KeyPad - Matrix Keyboard

This class provides the matrix keyboard interface.

Constructor

machine.KeyPad

class machine.KeyPad(row,col)

Parameter:

  • row - Integer type. Row number. It shall be greater than 0 and cannot exceed the maximum value supported by the module.
  • col - Integer type. Column number. It shall be greater than 0. The value cannot exceed the maximum value supported by the module.

If you do not set the row and column value, the default value is 4X4.

Maximum Row Maximum Column
4 4
Maximum Row Maximum Column
6(series only suprrort 4 Row,see Pin Correspondences) 4
Maximum Row Maximum Column
6 6
Maximum Row Maximum Column
5 5
Maximum Row Maximum Column
5 5
Maximum Row Maximum Column
5(EG810MEU series only suprrort 3 Row,see Pin Correspondences) 5(EG810MEU series only suprrort 3 Row,see Pin Correspondences)
Maximum Row Maximum Column
3 3
Maximum Row Maximum Column
4 4
Maximum Row Maximum Column
3 3
Maximum Row Maximum Column
5 5
Maximum Row Maximum Column
4 4

KeyPad Pin Correspondences:

When part of pins are used, you shall connect the keyboard and the pin according to row and column numbers in ascending order. For example, for EC600M, when a 2x2 matrix keyboard is used, the hardware will use 49, 51 and 48, 50 pins.

Row number Row PIN Column number Column PIN
Row number0 pin49 Column number0 pin48
Row number1 pin51 Column number1 pin50
Row number2 pin53 Column number2 pin52
Row number3 pin55 Column number3 pin54
Row number4 pin56 Column number4 pin57
Row number Row PIN Column number Column PIN
Row number0 pin86 Column number0 pin87
Row number1 pin76 Column number1 pin77
Row number2 pin85 Column number2 pin84
Row number3 pin82 Column number3 pin83
Row number4 pin74 Column number4 pin75
Row number Row PIN Column number Column PIN
Row number0 pin86(EG810MEU series not support) Column number0 pin87(EG810MEU series not support)
Row number1 pin76 Column number1 pin77
Row number2 pin85(EG810MEU series not support) Column number2 pin84(EG810MEU series not support)
Row number3 pin82 Column number3 pin83
Row number4 pin74 Column number4 pin75
Row number Row PIN Column number Column PIN
Row number1 pin20 Column number2 pin105
Row number2 pin16 Column number3 pin21
Row number3 pin116 Column number4 pin1
Row number Row PIN Column number Column PIN
Row number0 pin83 Column number0 pin115
Row number1 pin84 Column number1 pin78
Row number2 pin113 Column number2 pin79
Row number3 pin114 Column number3 pin80
Row number4 pin81(EC200UXXAA series not support) Column number4 /
Row number5 pin82(EC200UXXAA series not support) Column number5 /
Row number Row PIN Column number Column PIN
Row number0 pin105 Column number0 pin55
Row number1 pin106 Column number1 pin129
Row number2 pin107 Column number2 pin128
Row number3 pin108 Column number3 pin127
Row number4 pin104 Column number4 pin126
Row number5 pin103 Column number5 pin125
Row number Row PIN Column number Column PIN
Row number0 pin39 Column number0 pin83
Row number1 pin20 Column number2 pin28
Row number2 pin27 Column number3 pin25
Row number3 pin26 Column number4 pin1
Row number Row PIN Column number Column PIN
Row number0 pin53 Column number0 pin52
Row number1 pin49 Column number1 pin54
Row number2 pin55 Column number2 pin50
Row number Row PIN Column number Column PIN
Row number0 pin74 Column number0 pin75
Row number1 pin76 Column number1 pin77
Row number2 pin86 Column number2 pin87
Row number3 pin82 Column number3 pin81
Row number4 pin29 Column number4 pin28
Row number Row PIN Column number Column PIN
Row number0 pin74 Column number0 pin75
Row number1 pin76 Column number1 pin77
Row number2 pin86 Column number2 pin87
Row number3 pin82 Column number3 pin81
Row number4 pin29(EG800K series not support) Column number4 pin28(EG800K series not support)

Example:

>>> # Creates a keypad object
>>> import machine
>>> keypad=machine.KeyPad(2,3)  # Sets a matrix keyboard with 2 rows and 3 columes
>>> keypad=machine.KeyPad()     # Default parameter. The default setting is a matrix keyboard with 4 rows and 4 columns
>>> keypad=machine.KeyPad(2)    # Sets the row value to 2. Default column Value. The default column value is 4. A matrix keyboard with 2 rows and 4 columes is initialized. 

Methods

keypad.init

keypad.init()

This method initializes keypad settings.

Return Value:

0 - Successful execution

-1 - Failed execution

keypad.set_callback

keypad.set_callback(usrFun)

This method sets callback function. After the external keyboard button is connected to the module, this callback function will be triggered when the external keyboard button is pressed and released.

Parameter:

  • usrFun - Matrix keyboard callback function. Prototype:

    usrFun(result_list)
    

    Parameter of callback function:

    • result_list[0] : Key status (1 indicates the button is pressed and 0 indicates the button is released).

    • result_list[1] : Row number

    • result_list[2] : Column number

for example,the EC600M module, suppose the key connect pin 49 and pin 52,if press the key, the parameter of callback is [1,0,2],if release the key, the parameter of callback is [0,0,2].

Return Value:

0 - Successful execution

-1 - Failed execution

keypad.deinit

keypad.deinit()

This method deinitializes to release initialized resources and callback function settings.

Return Value:

0 - Successful execution

-1 - Failed execution

Example:

import machine
import utime
is_loop = 1
keypad=machine.KeyPad()  
keypad.init()
def userfun(l_list):
    global is_loop 
    if  l_list[0] != 1 :
        is_loop = 0
        print('will exit')
    print(l_list)
keypad.set_callback(userfun)
loop_num = 0
while is_loop == 1 and loop_num < 10:
    utime.sleep(5)
    loop_num = loop_num +1
    print(" running..... ",is_loop,loop_num)
keypad.deinit()
print('exit!')
型号选择: