RC522 RFID读卡器怎么接线?Arduino读取门禁卡UID的方法

2026-10-20 23:00:14 28阅读

想把门禁、抽屉锁或工位系统做成"刷一下卡就开门",RC522射频读卡器是最便宜实用的方案。它基于NXP的MFRC522芯片,工作在13.56MHz,通过SPI接口和Arduino通信,读出MIFARE卡或钥匙扣的UID(唯一识别码),刷到预设卡号就放行。这篇讲清楚它的引脚、怎么接、怎么读卡号。

RC522引脚和模块特性

RC522模块引出7个脚:VCC是电源(只能接3.3V,接5V会烧芯片)、RST是复位、GND接地、IRQ是中断输出、MISO、MOSI、SCK、SS/SDA是SPI通信脚,其中SS/SDA即片选。它和卡之间是无线感应,读卡距离通常在3到5厘米,把卡靠近模块天线就能读到,支持ISO/IEC 14443 Type A标准。

这是RC522模块的引脚分布图,把SPI四根脚和供电、复位都标清楚了,VCC按要求接3.3V。读卡时模块上的板载天线发射13.56MHz电磁场给卡片供电并取回卡内数据,Arduino拿到一串16进制的UID编号。

RC522接Arduino的SPI接线

在Arduino UNO上走硬件SPI最稳:SS/SDA接D10、SCK接D13、MOSI接D11、MISO接D12、RST接D9、VCC接3.3V、GND接地,IRQ本方案不用悬空即可。接好在Arduino IDE里装MFRC522库(Miguel Balboa),程序里指定SS和RST引脚,就能读卡了。

这是RC522和Arduino的完整接线图,SPI四线加复位、供电。注意一定用3.3V供电,别和图里的其他5V器件混接,否则模块容易烧。

读UID的代码思路和做门禁

核心代码很简洁:include SPI库和MFRC522库,声明MFRC522对象传SS_PIN和RST_PIN,setup里SPI.begin()和PCD_Init()初始化,loop里判断PICC_IsNewCardPresent()有新卡、PICC_ReadCardSerial()读卡串,然后把UID按字节用HEX打印出来。

做门禁就是先把一张管理员卡的UID存进变量,刷来的卡UID和它比对,一致就驱动一颗继电器或电磁锁开门,不一致提示"卡未授权"。可以再多存几张卡做成白名单,配合OLED显示卡号,一套真正能用的刷卡门禁就落地了。


作者:写launch的皮皮
链接:https://www.aiddithome.com/p/86de6250ba64.html
本作版权归作者所有,未经允许请勿转载。若存在违规行为,您可以点击 “举报”。


登录 后发表评论
4条评论
老张装机
1楼 · 2026-10-20 23:00:16

装了MFRC522库按例程改两个引脚就行,小白也好上手

电烙铁爱好者
2楼 · 2026-10-20 23:00:15

UID读出来是一串16进制,比对卡号再驱动继电器,一套刷卡门禁就齐了

胶佬憨憨
3楼 · 2026-10-20 23:00:15

卡要离天线3到5厘米才读得到,太远没反应

触底反弹的Tony
4楼 · 2026-10-20 23:00:14

接的时候最要紧就是VCC只能接3.3V,接5V模块基本就烧了,先记住这条