第四十四课--Microduino 矩阵键盘使用/zh

来自Microduino Wikipedia
Pkj讨论 | 贡献2014年3月28日 (五) 09:06的版本
跳转至: 导航搜索

目的

了解矩阵键盘的工作原理并掌握如何使用Microduino读取矩阵键盘上的每一个按键值。

设备

  • 其他硬件设备
    • USB数据连接线 一根
    • 矩阵键盘 一个
    • 杜邦线 8根
    • 万用表 一个

矩阵键盘

矩阵键盘排布类似于矩阵的键盘组,在键盘中按键数量较多时,为了减少I/O口的占用可以采用矩阵键盘,比如 4*4矩阵键盘只有8跟信号线,就可以控制16个按键。

Matrix keyboard1.jpg
  • 原理:

每条水平线和垂直线在交叉处不直接连通,而是通过一个按键加以连接。

Matrix keyboard2.jpg
  • 识别方法:

列线通过电阻接正电源,并将行线所接的Microduino的I/O口作为输出端,而列线所接的I/O口则作为输入。这样,当按键没有按下时,所有的输入端都是高电平,代表无键按下。行线输出是低电平,一旦有键按下,则输入线就会被拉低,这样,通过读入输入线的状态就可得知是否有键按下了。

实验原理图

玩家如果没有矩阵键盘,也可用独立键盘来组合。

Matrix keyboard3.jpg

程序

  • 程序用到的库:
  • 测试程序:

调试

  • 步骤一:使用测量矩阵键盘引脚

方法:我们可以从原理图看到,假如第一个按键按下,对应第一行和第一列的两根导线接通,依此类推我们可用万用表欧姆档进行判断,用表笔分别接任意两根导线,然后按下按键,看是否处于导通状态,这样就可区分8根线分别连接的是哪行哪列。

  • 步骤二:按原理图接线,注意接线顺序
  • 步骤三:下载程序
  • 将下载好的库文件夹放入Arduino IDE安装文件夹内的libraries中;
  • 启动Arduino IED,打开Microduino提供的测试程序,板卡选择Microduino Core (Atmega328P@16M,5V),直接下载即可;
  • 步骤四:测试

按下按键值观察OLED显示是否匹配。

扩展

  • 玩家在做某些应用是,引脚复用,可自定义更改矩阵键盘引脚。更改行在rowPins[ROWS]数组;更改列在byte colPins[COLS]数组。注意确定引脚是否复用,否则可能乱码。
  • 玩家可自行更改按键信息,在hexaKeys[ROWS][COLS]二维数组里。

结果

通过调试,使用Microduino能够读取矩阵按键,并把信息用OLED显示出来。玩家可以尽情发挥想象,做些好玩的应用,比如密码锁。

视频