RFID,NFC Module(RC522) CN

아두위키 : Arduwiki
ArduWiki (토론 | 기여)님의 2025년 3월 21일 (금) 17:02 판 (새 문서: {{#seo:|title=Arduino维基:Arduino RFID、NFC模块(RC522)指南|title_mode=append|keywords=Arduino, 信息科学, 创客学习, 性能评估, RFID, NFC模块(RC522), Arduino项目, 毕业设计项目, Arduino示例代码|description=介绍如何使用Arduino控制RFID、NFC模块(RC522)(基本信息、电路、示例代码)。可用于信息科学和创客课程。}}가운데|class=coders100 这是一个使用NFC通信方式的RFID读取...)
(차이) ← 이전 판 | 최신판 (차이) | 다음 판 → (차이)

这是一个使用NFC通信方式的RFID读取器。

可用于Arduino和树莓派板。


规格

  • 工作电压:3.3V
  • 工作电流:13mA ~ 26mA
  • 接口:SPI
  • 工作频率:13.56MHz


硬件

  • Arduino
  • RC522、NFC卡钥匙
  • 跳线


连接

RC522 Arduino
3.3V 3.3V
RST 9
GND GND
MISO 12
MOSI 11
SCK 13
SDA 10


Libraries

  • MFRC522 (by GithubCommunity)
  • SPI (default included library)

Arduino Libraries

示例代码

此代码将标记的ID值输出到串行监视器。

#include <SPI.h>
#include <MFRC522.h>
 
#define RST_PIN   9                            // Reset pin is set to pin 9
#define SS_PIN    10                           // SS pin is set to pin 10
                                               // SS pin is the pin responsible for data exchange (SS = Slave Selector)
 
MFRC522 mfrc(SS_PIN, RST_PIN);                 // Creating the mfrc object to utilize the MFR522
 
void setup() {
  Serial.begin(9600);                          // Serial communication, baud rate is set to 9600
  SPI.begin();                                 // Initializing SPI
                                               // (SPI: Communication method between one master and multiple slaves)
  mfrc.PCD_Init();                             // Initializing MFRC522
}
 
void loop() {
  if (!mfrc.PICC_IsNewCardPresent() || !mfrc.PICC_ReadCardSerial()) {   
                                               // When no tag is detected or ID is not read
    delay(500);                                // 0.5 second delay
    return;                                    // Return
  } 
    
  Serial.print("Card UID:");                   // Printing the tag's ID
  
  for (byte i = 0; i < 4; i++) {               // Loop to print the tag's ID, up to the tag's ID size (4)
    Serial.print(mfrc.uid.uidByte[i]);        // Printing from mfrc.uid.uidByte[0] to mfrc.uid.uidByte[3]
    Serial.print(" ");                         // Printing space between IDs
  }
  Serial.println(); 
}


执行结果