用户工具

站点工具


侧边栏

索引

抱歉,您没有权限增加页面
传感器和模块:薄膜键盘

1、 产品图片

2、产品购买地址

3、产品概述

  • 4*4矩阵键盘有8个引脚,4个一组,分别对应行和列,通过按键扫描的方法,对不同行(列)分别输入高低电平,然后读取不同列(行)上的电平,从而知道键盘上的某一按键按下。例如,当第1行输出低电平,其他行输出高电平,分别读取依次列上的状态,如果第1列为低,结果为(1,1),按键为1,如果第2列为低,则结果为(1,2)按键为2。
  • 4*4矩阵键盘有一个8孔的排母,理论上可以直接插到0-7脚上,但0,1脚用于串口通信,所以只能选择2~13脚。

4、检测原理

检测的原理是,先送一列低电平,其余列均为高电平,然后立即轮流检测一次各行是否有低电平,若没有则说明送低电平这一列没有键被按下,然后继续轮次送低电平到其余列扫描。若一次送低电平到列,并逐检测每行的过程中有低电平,则该行有按键被按下,而送低电平的列则为被按下键的列数。行数、列数均确定后,该按键即被确定。因为Arduino逐行逐列扫描和检测的速度足够快,所以你无须担心它会遗漏被你按下的键。

5、接线方式

6、示例程序

#include <Keypad.h>

const byte ROWS = 4; //四行
const byte COLS = 4; //四列
//定义键盘上的按键标识
char hexaKeys[ROWS][COLS] = {
  {'1','2','3','A'},
  {'4','5','6','B'},
  {'7','8','9','C'},
  {'*','0','#','D'}
};
byte rowPins[ROWS] = {4, 5, 6, 7}; //连接到行扫描的输入输出端口
byte colPins[COLS] = {8, 9, 10, 11}; //连接到列扫描的输入输出端口

//定义Keypad类的实例
Keypad customKeypad = Keypad( makeKeymap(hexaKeys), rowPins, colPins, ROWS, COLS);

void setup(){
  Serial.begin(9600);
}

void loop(){
  char customKey = customKeypad.getKey();

  if (customKey){
    Serial.println(customKey);
  }
}

7、相关下载

传感器和模块/薄膜键盘.txt · 最后更改: 2019/08/21 22:51 由 ultirobot