Arduino#

1. Arduino简介#

Arduino是一款开源电子原型平台,包含易于使用的软件和硬件,主要用于开发互动项目。Arduino开发板基于易于理解的微控制器,配合Arduino IDE,支持用户通过C/C++语言编程,创建各种应用。由于其简单易用的特性,它受到许多电子爱好者和开发者的喜爱,广泛应用于教育、艺术及科技项目。

Arduino的强大之处在于其丰富的社区和库支持,让用户能够方便地借用现成的代码和硬件模块。通过Arduino,用户可以轻松地使用不同传感器(如温度、光线、运动等)、显示器、马达和其他组件来实现自己的创意和想法。Arduino不仅适合初学者,也成为专业开发者开发原型和产品的重要工具。

2. 接线图#

3. 测试代码#

  • 下载代码以及库文件:Arduino

  • 打开Arduino IDE,选择“项目”,选择“导入库”,再选择“添加.ZIP库”。

  • 找到下载资料的存放位置,打开文件夹找到库文件,选择要导入的库,点击“打开”。

  • 安装成功出现的界面。

#include <Wire.h>  
#include "MFRC522_I2C.h"  

// 0x28 是 SDA 上的 i2c 地址。如果不匹配,请使用 i2cscanner检查您的地址  
MFRC522 mfrc522(0x28); // 创建 MFRC522 实例。  

String rfid_str = "";  

void setup() {  
    Serial.begin(115200); // 设置波特率为115200  
    Wire.begin(); // 初始化 I2C  
    mfrc522.PCD_Init(); // 初始化 MFRC522  
}  

void loop() {  
    if (!mfrc522.PICC_IsNewCardPresent() || !mfrc522.PICC_ReadCardSerial()) {  
        delay(50);  
        return;  
    }  

    rfid_str = ""; // 字符串清空  
    Serial.print(F("Card UID: "));  

    for (byte i = 0; i < mfrc522.uid.size; i++) { // 转储 UID  
        rfid_str = rfid_str + String(mfrc522.uid.uidByte[i], HEX); // 转为字符串  
    }  

    Serial.println(rfid_str);  
}  

4. 代码说明#

4.1 I2C初始化#

使用Wire.begin();进行I2C初始化,因为此模块是IIC接口的。

4.2 RFID模块初始化#

通过mfrc522.PCD_Init();来初始化MFRC522模块,以做好后续读取准备。

4.3 读取卡片#

loop()函数中,使用mfrc522.PICC_IsNewCardPresent()mfrc522.PICC_ReadCardSerial()来检测和读取IC卡的信息。若成功读取卡片,将UID打印到串口监视器。

4.4 字符串处理#

通过String(mfrc522.uid.uidByte[i], HEX);将读取到的UID转为16进制格式的字符串进行输出。

5. 测试结果#

将代码烧录到Arduino,按照接线图连接好线路,上电并打开串口监视器,设置波特率为115200。当IC卡或钥匙扣靠近RFID模块时,模块将成功读取到信息,打印在串口监视器上,示例结果如下图所示。