概述
RFID-RC522射频模块采用Philips MFRC522原装芯片设计读卡电路,使用方便,成本低廉,适用于设备开发、读卡器开发等高级应用的用户、需要进行射频卡终端设计/生产的用户。本模块可直接装入各种读卡器模具。模块采用电压为5V,通过SPI接口简单的几条线就可以直接与用户任何CPU主板或单片机相连接通信。模块自带2个定位孔,方便你将模块固定在其他设备。
规格参数
工作电压:DC 5V
工作电流:13—100mA/DC 5V
空闲电流:10-13mA/DC 5V
休眠电流:<80uA
峰值电流:<100mA
工作频率:13.56MHz
最大功率:0.5W
支持的卡类型:mifare1 S50、mifare1 S70、mifare UltraLight、mifare Pro、mifare Desfire
数据传输速率:最大10Mbit/s
3.原理
RFID(Radio Frequency Identification):无线射频识别,读卡器由频射模块及高平磁场组成。Tag应答器为待感应设备,此设备不包含电池。他只包含微型集成电路芯片及存储数据的介质以及接收和发送信号的天线。读取tag中的数据,首先要放到读卡器的读取范围内。读卡器会产生一个磁场,因为磁能生电由楞次定律,RFID Tag就会供电,从而激活设备。
4.接线图
5.测试代码
#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.print(mfrc522.uid.uidByte[i] < 0x10 ? ” 0″ : ” “);
// Serial.print(mfrc522.uid.uidByte[i], HEX);
}
Serial.println(rfid_str);
}
6.代码说明
首先导入RFID522的库文件。
Wire.begin(); 我们用到的这个模块是IIC接口的,所以我们先进行IIC初始化
mfrc522.PCD_Init(); MFRC522初始化
String(mfrc522.uid.uidByte[i], HEX); 将读取到16进制格式的值转为的字符串
具体请查看代码注释。
7.测试结果
烧录好测试代码,按照接线图连接好线;上电后,打开串口监视器,设置波特率为115200.当我们用IC卡和钥匙扣靠近RFID模块时,模块读取到的信息打印出来,如下图。
8.资料下载
Arduino IDE/Mixly/Scratch编程使用资料下载链接
链接:https://pan.baidu.com/s/1UlYOL8m5bt3z8He8fyz4WA
提取码:keye