当前位置:首页Arduino > 正文

Arduino数字密码锁项目使用矩阵键盘

作者:野牛程序员:2023-08-18 10:12:37Arduino阅读 3602

制作一个 Arduino 数字密码锁项目使用矩阵键盘是一个很有趣的项目。以下是一个基本的示例代码,展示如何使用矩阵键盘来实现一个简单的数字密码锁。

准备材料

  • Arduino 开发板

  • 矩阵键盘

  • 杜邦线

连接矩阵键盘: 连接矩阵键盘的行和列引脚到 Arduino 的数字引脚。具体连接方式可能因您所使用的矩阵键盘和 Arduino 型号而异。以下示例使用 4x4 矩阵键盘:

  • 行引脚(R1, R2, R3, R4)连接到 Arduino 的引脚(2, 3, 4, 5)

  • 列引脚(C1, C2, C3, C4)连接到 Arduino 的引脚(6, 7, 8, 9)

示例代码

#include <Keypad.h>

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}; // 行引脚连接到 Arduino 2, 3, 4, 5
byte colPins[COLS] = {6, 7, 8, 9}; // 列引脚连接到 Arduino 6, 7, 8, 9

Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );

char password[5] = "1234"; // 设置密码
char enteredPassword[5];  // 用于存储输入的密码
int passwordIndex = 0;    // 输入密码的当前位置

void setup(){
  Serial.begin(9600);
}

void loop(){
  char key = keypad.getKey();

  if (key) {
    Serial.print(key);
    enteredPassword[passwordIndex] = key;
    passwordIndex++;

    if (passwordIndex == 4) {
      if (strcmp(enteredPassword, password) == 0) {
        Serial.println("\\n密码正确,开锁!");
      } else {
        Serial.println("\\n密码错误,锁定!");
      }
      delay(1000);
      Serial.println("\\n请输入密码:");
      passwordIndex = 0;
      memset(enteredPassword, 0, sizeof(enteredPassword));
    }
  }
}

在这个示例中,使用 Keypad 库来处理矩阵键盘输入。首先,定义了密码和输入密码的数组。然后,在 loop() 函数中监听按键事件,逐步接收输入的密码。当输入完整的密码时,与预设的密码进行比较,如果匹配则开锁,否则锁定。

请注意,这只是一个简单的示例,实际项目可能需要更多的安全性措施和功能。可以根据需要对代码进行修改和扩展。


野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892
野牛程序员教少儿编程与信息学竞赛-微信|电话:15892516892
相关推荐

最新推荐

热门点击