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 的联动案例链接如下:

https://www.bilibili.com/video/BV1fV4LeYErW/?spm_id_from=333.1387.collection.video_card.click&vd_source=dc592a717818e10a6996fe38915f71d5

results matching ""

    No results matching ""