3. 4*4 键盘
一、功能以及原理
4*4 矩阵键盘,又称为行列式键盘,是用 4 条 I/O 线作为行线,4 条 I/O 线作为列线组成的键盘。在行线和列线的每一个交叉点上设置一个按键,因此键盘中按键的个数是 4×4 个。这种行列式键盘结构能够有效地提高单片机系统中 I/O 口的利用率,节约单片机的资源。(8 引脚控制 16 按键)

二、引脚介绍以及对应开发板可用引脚
三、代码控制
控制 4*4 矩阵键盘,需要使用 Keypad 库,下面介绍一个简单的操控代码
3.1 文本代码
#include <Keypad.h>
/* 键盘相关针脚 */
const byte KEYPAD_ROWS = 4;
const byte KEYPAD_COLS = 4;
byte rowPins[KEYPAD_ROWS] = {5, 4, 3, 2};
byte colPins[KEYPAD_COLS] = {A3, A2, A1, A0};
char keys[KEYPAD_ROWS][KEYPAD_COLS] = {
{'1', '2', '3', '+'},
{'4', '5', '6', '-'},
{'7', '8', '9', '*'},
{'.', '0', '=', '/'}
};
Keypad keypad = Keypad(makeKeymap(keys), rowPins, colPins, KEYPAD_ROWS, KEYPAD_COLS);
void setup() {
Serial.begin(9600); // 初始化串口通信
}
void loop() {
char key = keypad.getKey(); // 获取按键
if (key) {
Serial.println(key); // 如果有按键按下,则通过串口输出该键值
}
}
3.2 图形化代码
可在“控制器”中的“4*4 键盘”,找到相关的图形化代码块。

四、相关案例演示
4*4 矩阵键盘能够与 LCD 1602 联动,制作简易计算器,门锁等等案例,在 AI Lab 平台中,已有电子密码锁的课程(https://www.funcode.cc/course-learn/detail?courseId=88&from=courseList)

LCD 1602 显示键盘数字的精选项目(https://www.funcode.cc/simulate?project_id=16&type=3&share_source=0)

五、相关课程链接
矩阵键盘与 LCD 1602 的联动案例链接如下: