本單元使用的 MF522-AN 讀寫器模組的外觀與接腳定義如下,

Arduino SPI功能之接口在PIN10(SS),PIN11(MOSI),PIN12(MISO),PIN13(SCK),如下圖所示,

1. 實驗材料

Arduino*1

USB傳輸線*1

麵包板跳線*N

MF522-AN*1

RFID卡*N

2. 電路接線圖

3. 匯入LiquidCrystal_I2C程式庫
草稿碼->匯入程式庫->管理程式庫

在上方搜尋輸入"MFRC522",找到MFRC522進行安裝,安裝完成就可使用MFRC522程式庫

4. Arduino參考程式

#include <SPI.h>
#include <MFRC522.h> // 引用程式庫

#define RST A0 // 讀卡機的重置腳位
#define SS 10 // 晶片選擇腳位
MFRC522 rfid(SS, RST); // 建立MFRC522物件

void setup() {
  Serial.begin(9600);
  SPI.begin();
  rfid.PCD_Init(); // 初始化MFRC522讀卡機模組
}
void loop() {
  // 確認是否有新卡片
  if (rfid.PICC_IsNewCardPresent() && rfid.PICC_ReadCardSerial()) {
    
    byte *id = rfid.uid.uidByte; // 取得卡片的UID
    byte idSize = rfid.uid.size; // 取得UID的長度
    
    Serial.print("PICC type: "); // 顯示卡片類型
    // 根據卡片回應的SAK值
    MFRC522::PICC_Type piccType = rfid.PICC_GetType(rfid.uid.sak);
    Serial.println(rfid.PICC_GetTypeName(piccType));
    
    Serial.print("UID Size: "); // 顯示卡片的UID長度值
    Serial.println(idSize);
    for (byte i = 0; i < idSize; i++) { // 逐一顯示UID碼
      Serial.print(id[i], HEX); // 以16進位顯示UID值
      Serial.print(" "); 
    }
    Serial.println();
    rfid.PICC_HaltA(); // 讓卡片進入停止模式
  }
}

5. 實驗結果

將RFID卡放在上方感應MFRC522,開啟"序列埠監控視器",可看到此RFID卡相關資訊

 

 

文章標籤
全站熱搜
創作者介紹
創作者 鄭智遠 的頭像
鄭智遠

Michael_Jheng的部落格

鄭智遠 發表在 痞客邦 留言(0) 人氣(6,605)