Arduino UNO 4X4矩阵键盘
连接矩阵键盘的8个IO全部上拉,先使行线变为输入,列线变为输出并为低电平,若有按键按下,则对应的行线接地,判断哪个行线为低电平,则可读出第几行有按键被按下;然后使列线变为输入,行线变为输出并为低电平,若有按键按下,则对应的列线接地,判断哪个列线为低电平,则可读出第几列有按键被按下;根据第几行第几列就可以知道哪个按键被按下。
·
目录
一,硬件
- Arduino UNO
- 4X4矩阵键盘
二,原理
连接矩阵键盘的8个IO全部上拉,先使行线变为输入,列线变为输出并为低电平,若有按键按下,则对应的行线接地,判断哪个行线为低电平,则可读出第几行有按键被按下;然后使列线变为输入,行线变为输出并为低电平,若有按键按下,则对应的列线接地,判断哪个列线为低电平,则可读出第几列有按键被按下;根据第几行第几列就可以知道哪个按键被按下。
三,电路图
四,代码
#include <Keypad.h>
const byte ROWS = 4; //行
const byte COLS = 4; //列
char hexaKeys[ROWS][COLS] = {
{'1','2','3','U'},
{'L','6','5','4'},
{'R','9','8','7'},
{'D','B','A','0'}
};
byte rowPins[ROWS] = {6, 7, 8, 9};
byte colPins[COLS] = {5, 4, 3, 2};
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);
}
}
五,实物图
更多推荐
已为社区贡献1条内容
所有评论(0)