📜  颤动如何制作数字键盘 (1)

📅  最后修改于: 2023-12-03 15:42:28.977000             🧑  作者: Mango

制作颤动数字键盘(Arduino实现)

硬件要求
  • Arduino UNO开发板
  • 颤动开关(vibration switch)
  • 4x4数字键盘
软件要求
  • Arduino IDE开发环境
步骤
连线

首先,将颤动开关与数字键盘连接到Arduino开发板上。连接方式如下:

  • 将数字键盘的数据线连接到Arduino开发板的D2-D9口(A0-A5口也可以)
  • 将数字键盘的电源线连接到Arduino开发板的5V口(VCC口)
  • 将数字键盘的接地线连接到Arduino开发板的GND口
  • 将颤动开关的一端连接到Arduino开发板的D10口,另一端连接到Arduino开发板的地线(GND口)
代码编写

接下来,我们需要编写代码实现颤动数字键盘。

首先,需要定义数字键盘的行列引脚。

const byte ROWS = 4; // 4行
const byte COLS = 4; // 4列
byte rowPins[ROWS] = { 2,3,4,5 }; // 行引脚为D2-D5口
byte colPins[COLS] = { 6,7,8,9 }; //列引脚为D6-D9口

然后,需要定义数字键盘映射的字符。

char keypadChars[ROWS][COLS] = {
  { '1', '2', '3', 'A' },
  { '4', '5', '6', 'B' },
  { '7', '8', '9', 'C' },
  { '*', '0', '#', 'D' }
};

接下来,我们需要实现颤动开关的功能。当颤动开关被触发时,数字键盘可以被使用。否则,数字键盘将被禁用。

const int VIBRATION_SWITCH_PIN = 10; // 颤动开关连接到D10口
bool vibrationEnabled = false; // 记录颤动开关状态

void setup() {
  // 初始化数字键盘
  pinMode(VIBRATION_SWITCH_PIN, INPUT); // 颤动开关为输入
  for (int i = 0; i < ROWS; i++) {
    pinMode(rowPins[i], OUTPUT);
    digitalWrite(rowPins[i], HIGH); // 行引脚为高电平
  }
  for (int i = 0; i < COLS; i++) {
    pinMode(colPins[i], INPUT_PULLUP); // 列引脚为内部上拉电阻
  }
}

void loop() {
  // 检测颤动开关状态
  if (digitalRead(VIBRATION_SWITCH_PIN) == HIGH) {
    // 颤动开关未被触发,禁用数字键盘
    vibrationEnabled = false;
  }
  else {
    // 颤动开关被触发,启用数字键盘
    vibrationEnabled = true;
  }
  // 一旦数字键盘被启用,就检测用户输入
  if (vibrationEnabled) {
    char key = getKey(); // 获取用户输入的字符
    if (key != 0) {
      // 字符不为0,表示用户按下了数字键盘上的某个键
      Serial.println(key); // 输出用户输入

      // TODO: 在此处编写数字键盘被按下时的处理逻辑
    }
  }
}

char getKey() {
  // 数字键盘扫描
  for (int r = 0; r < ROWS; r++) {
    digitalWrite(rowPins[r], LOW); // 将该行引脚设置为低
    for (int c = 0; c < COLS; c++) {
      if (!digitalRead(colPins[c])) {
        delay(10); // 延时去抖动
        // 检测到数字键盘被按下
        digitalWrite(rowPins[r], HIGH); // 将该行引脚设置为高
        return keypadChars[r][c]; // 返回对应的字符
      }
    }
    digitalWrite(rowPins[r], HIGH); // 将该行引脚设置为高
  }
  return 0; // 没有检测到任何按键
}
运行

将Arduino开发板连接到电脑,并上传上述代码。然后,输入数字键盘上的数字,Arduino将自动检测到您的输入。如果颤动开关被触发,则数字键盘将被禁用。预计程序运行很好。