本單元使用的 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卡相關資訊
留言列表