键盘

概述

在本课中,您将学习使用键盘。键盘可应用于各种设备,包括手机、传真机、微波炉等。它常用于用户输入。

所需元件

本项目中,我们需要以下元件。

购买整套套件会更加方便,以下是链接:

名称

套件所含项目

链接

Elite Explorer 套件

300+

Elite Explorer Kit

您也可以从以下链接单独购买。

元件介绍

购买链接

Arduino Uno R4 WiFi

-

杜邦线

BUY

矩阵键盘

BUY

接线

../_images/21-keypad_bb.png

原理图

../_images/21_keypad_schematic.png

代码

备注

  • 您可以直接打开路径 elite-explorer-kit-main\basic_project\21-keypad 下的 21-keypad.ino 文件。

  • 要安装库,请使用 Arduino 库管理器搜索 “Adafruit Keypad” 并安装。

将代码上传到 UNO 板后,在串口监视器中,您可以看到键盘上当前按下的键的值。

代码分析

  1. 包含库

    首先包含 Adafruit_Keypad 库,这使我们能够轻松地与键盘交互。

    #include "Adafruit_Keypad.h"
    

    备注

    • 要安装库,请使用 Arduino 库管理器搜索 “Adafruit Keypad” 并安装。

  2. 键盘配置

    const byte ROWS = 4;
    const byte COLS = 4;
    char keys[ROWS][COLS] = {
      { '1', '2', '3', 'A' },
      { '4', '5', '6', 'B' },
      { '7', '8', '9', 'C' },
      { '*', '0', '#', 'D' }
    };
    byte rowPins[ROWS] = { 2, 3, 4, 5 };
    byte colPins[COLS] = { 8, 9, 10, 11 };
    
    • ROWSCOLS 常量定义了键盘的尺寸。

    • keys 是一个二维数组,存储键盘上每个按钮的标签。

    • rowPinscolPins 是存储连接到键盘行和列的 Arduino 引脚的数组。


  3. 初始化键盘

    创建一个名为 myKeypadAdafruit_Keypad 实例并初始化它。

    Adafruit_Keypad myKeypad = Adafruit_Keypad(makeKeymap(keys), rowPins, colPins, ROWS, COLS);
    
  4. setup() 函数

    初始化串口通信和自定义键盘。

    void setup() {
      Serial.begin(9600);
      myKeypad.begin();
    }
    
  5. 主循环

    检查按键事件并在串口监视器中显示它们。

    void loop() {
      myKeypad.tick();
      while (myKeypad.available()) {
        keypadEvent e = myKeypad.read();
        Serial.print((char)e.bit.KEY);
        if (e.bit.EVENT == KEY_JUST_PRESSED) Serial.println(" pressed");
        else if (e.bit.EVENT == KEY_JUST_RELEASED) Serial.println(" released");
      }
      delay(10);
    }