close

14.JPG

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

05.jpg

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

05.png

1. 實驗材料

Arduino*1

402868.jpg

USB傳輸線*1

402867.jpg

麵包板跳線*N

402985.jpg

MF522-AN*1

408795.jpg

RFID卡*N

408808.jpg

2. 電路接線圖

10.jpg

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

01.jpg

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

06.JPG

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(); // 讓卡片進入停止模式
  }
}

08.JPG

09.JPG

5. 實驗結果

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

408807.jpg

07.JPG

 

 

arrow
arrow

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