
NFC感应读写模块一般基于射频感应原理,当带有对应识别介质(如 RFID 标签、NFC 标签等)的物体进入到其有效感应范围(感应距离根据模块类型和功率有所不同,从几厘米到数米不等)内时,能自动检测识别到该物体,触发后续的数据交互操作,常用于自动门禁系统,当人员携带授权的感应卡片靠近读卡器一定距离时,门禁自动打开。

| 引脚名称 | 描述 |
|---|---|
| G | GND(电源输入负极) |
| V | VCC(电源输入正极) |
| SDA | 数据引脚 |
| SCK | 通信时钟引脚 |
| MOSI | 主设备输入/从设备输出引脚 |
| MISO | 主设备输出/从设备输入引脚 |
| RST | 复位信号引脚 |
供电电压: 3.3V-5V
连接方式:7P杜邦线线
安装方式:乐高搭建

不会使用库文件的参考这里:库文件安装使用
库文件下载:点击下载
示例程序(UNO开发板):点击下载
#include <SPI.h>
#include <MFRC522.h>
#include <Servo.h>
String card[]={"33cb0327","8ff9f659"};
String name[]={"YOU","I"};
MFRC522 rfid(10, 9);
String RFID_CardUID;
Servo servo_3;
String MFRC522_ReadCardUID(MFRC522 *_name){
String _CardUID = "";
for (byte _i = 0; _i < _name->uid.size; _i++){
if(_name->uid.uidByte[_i] < 0x10)
_CardUID += "0";
_CardUID += String(_name->uid.uidByte[_i], HEX);
}
return _CardUID;
}
boolean MFRC522_IsNewCard(MFRC522 *_name){
if(!_name->PICC_IsNewCardPresent())
return false;
if(!_name->PICC_ReadCardSerial())
return false;
return true;
}
void setup(){
Serial.begin(9600);
SPI.begin();
rfid.PCD_Init();
RFID_CardUID = "";
Serial.println("读取RFID卡号测试");
servo_3.attach(3);
}
void loop(){
servo_3.write(80);
delay(10);
if(MFRC522_IsNewCard(&rfid)){
RFID_CardUID = MFRC522_ReadCardUID(&rfid);
Serial.println(String("Card UID:") + String(RFID_CardUID));
for (int i = (0); i <= (sizeof(card)/sizeof(card[0])); i = i + (1)) {
if (RFID_CardUID == card[i]) {
Serial.println(name[i]);
servo_3.write(173);
delay(2000);
}
servo_3.write(80);
delay(10);
}
rfid.PICC_HaltA();
rfid.PCD_StopCrypto1();
}
delay(10);
}
示例程序(ESP32开发板—基于Python语言,不能用Arduino IDE上传代码):
示例程序(UNO开发板):点击下载

示例程序(ESP32开发板):点击下载
Arduino UNO 测试环境搭建
准备配件:
电路接线图:

ESP32 Python 测试环境搭建
Arduino UNO视频教程:点击查看
ESP32 Python视频教程:
Arduino UNO测试结论:
将器件连接好线之后,上传程序到Arduino UNO 开发板之后,刷卡后舵机会旋转使积木上下摆动模拟开门、关门。
