class KeyPad - 矩阵键盘

该类提供矩阵键盘接口。

构造函数

machine.KeyPad

class machine.KeyPad(row,col)

参数描述:

  • row - 行,int类型,大于0,不超过平台支持最大值。
  • col - 列,int类型,大于0,不超过平台支持最大值。

如果row和col均不设置,默认为4X4。

最大行 最大列
4 4
最大行 最大列
6(EC200UXXAA系列只支持4行,见管脚说明) 4
最大行 最大列
6 6
最大行 最大列
5 5
最大行 最大列
5 5
最大行 最大列
5(EG810MEU只支持3行) 5(EG810MEU只支持3行)
最大行 最大列
3 3
最大行 最大列
4 4
最大行 最大列
3 3
最大行 最大列
5 5
最大行 最大列
4 4

KeyPad引脚对应关系:

当不使用全部引脚时,接线按行列号从小到大顺序接线,比如EC600M使用2x2矩阵键盘时,硬件使用49、51和48、50引脚。

行号 行号引脚 列号 列号引脚
行号0 引脚号49 列号0 引脚号48
行号1 引脚号51 列号1 引脚号50
行号2 引脚号53 列号2 引脚号52
行号3 引脚号55 列号3 引脚号54
行号4 引脚号56 列号4 引脚号57
行号 行号引脚 列号 列号引脚
行号0 引脚号86 列号0 引脚号87
行号1 引脚号76 列号1 引脚号77
行号2 引脚号85 列号2 引脚号84
行号3 引脚号82 列号3 引脚号83
行号4 引脚号74 列号4 引脚号75
行号 行号引脚 列号 列号引脚
行号0 引脚号86(EG810MEU不支持) 列号0 引脚号87(EG810MEU不支持)
行号1 引脚号76 列号1 引脚号77
行号2 引脚号85(EG810MEU不支持) 列号2 引脚号84(EG810MEU不支持)
行号3 引脚号82 列号3 引脚号83
行号4 引脚号74 列号4 引脚号75
行号 行号引脚 列号 列号引脚
行号1 引脚号20 列号2 引脚号105
行号2 引脚号16 列号3 引脚号21
行号3 引脚号116 列号4 引脚号1
行号 行号引脚 列号 列号引脚
行号0 引脚号83 列号0 引脚号115
行号1 引脚号84 列号1 引脚号78
行号2 引脚号113 列号2 引脚号79
行号3 引脚号114 列号3 引脚号80
行号4 引脚号81(EC200UXXAA系列不支持) 列号4 /
行号5 引脚号82(EC200UXXAA系列不支持) 列号5 /
行号 行号引脚 列号 列号引脚
行号0 引脚号105 列号0 引脚号55
行号1 引脚号106 列号1 引脚号129
行号2 引脚号107 列号2 引脚号128
行号3 引脚号108 列号3 引脚号127
行号4 引脚号104 列号4 引脚号126
行号5 引脚号103 列号5 引脚号125
行号 行号引脚 列号 列号引脚
行号0 引脚号39 列号0 引脚号83
行号1 引脚号20 列号2 引脚号28
行号2 引脚号27 列号3 引脚号25
行号3 引脚号26 列号4 引脚号1
行号 行号引脚 列号 列号引脚
行号0 引脚号53 列号0 引脚号52
行号1 引脚号49 列号1 引脚号54
行号2 引脚号55 列号2 引脚号50
行号 行号引脚 列号 列号引脚
行号0 引脚号74 列号0 引脚号75
行号1 引脚号76 列号1 引脚号77
行号2 引脚号86 列号2 引脚号87
行号3 引脚号82 列号3 引脚号81
行号4 引脚号29 列号4 引脚号28
行号 行号引脚 列号 列号引脚
行号0 引脚号74 列号0 引脚号75
行号1 引脚号76 列号1 引脚号77
行号2 引脚号86 列号2 引脚号87
行号3 引脚号82 列号3 引脚号81

示例:

>>> # 创建keypad对象
>>> import machine
>>> keypad=machine.KeyPad(2,3)  # 设置为2行3列矩阵键盘
>>> keypad=machine.KeyPad()     # 参数缺省,默认设置为4行4列矩阵键盘
>>> keypad=machine.KeyPad(2)    # 行值设置为2,列值缺省,列值默认为4,初始化为2行4列矩阵键盘

方法

keypad.init

keypad.init()

该方法用于初始化keypad设置。

返回值描述:

设置成功返回整型值 0 ,设置失败返回整型值 -1

keypad.set_callback

keypad.set_callback(usrFun)

该方法用于设置回调函数,外接按键接入模组后,当外接键盘按键按放时会触发此回调函数。

参数描述:

  • usrFun - 矩阵键盘回调函数,回调函数原型:

    usrFun(result_list)
    

    回调函数参数描述:

    • result_list[0] :按键状态(1表示按下,0表示抬起)

    • result_list[1] :行号

    • result_list[2] :列号

以EC600M为例,假设按键连接的管脚为49,52脚,按下后产生的回调的参数为[1,0,2],松开后产生的回调的参数为[0,0,2]。

返回值描述:

设置成功返回整型值 0 ,设置失败返回整型值 -1

keypad.deinit

keypad.deinit()

该方法用于解除初始化,释放初始化的资源和回调函数设置。

返回值描述:

设置成功返回整型值 0 ,设置失败返回整型值 -1

使用示例:

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!')
型号选择: