RFID內部的構造。
RFID是「無線射頻辨識」(Radio Frequency IDentification)的縮寫,可以在不接觸的情況下進行訊號的辨識和讀寫。
相比於條碼RFID可以嵌在物體之內,因此有更多的應用方式。例如圖書館可以一次借一疊書不用一本一本掃描。

我們使用的是「RC522」這個模組,需要下載函式庫【MFRC522】,可觀看「紅外線遙控」這個單元學習安裝函式庫。






SDA接到10。
SCK接到13。
NDSI接到11。
NISD接到12。
GND接到GND。
RST接到9。
3.3v接到3.3v。
需要注意安裝的方向,也可以使用公母頭的杜邦線。






#include <SPI.h>
#include <MFRC522.h>
#define RST_PIN A0
#define SS_PIN 10
MFRC522 mfrc522(SS_PIN, RST_PIN);

void setup() {
Serial.begin(9600);
SPI.begin();
mfrc522.PCD_Init();
}


讀卡機重制腳位
晶片選擇腳位
建立MFRC522物件

初始化設定
設定鮑率為9600
序列埠周邊設定
RC522初始化
void loop() {
if (mfrc522.PICC_IsNewCardPresent() && mfrc522.PICC_ReadCardSerial()) {
byte *id = mfrc522.uid.uidByte;
byte idSize = mfrc522.uid.size;
Serial.print("PICC type: ");
MFRC522::PICC_Type piccType = mfrc522.PICC_GetType(mfrc522.uid.sak);
Serial.println(mfrc522.PICC_GetTypeName(piccType));
Serial.print("UID Size: ");
Serial.println(idSize);
for (byte i = 0; i < idSize; i++) {
Serial.print("id[");
Serial.print(i);
Serial.print("]: ");
Serial.println(id[i]);
}
mfrc522.PICC_HaltA();
}
}

如果感應到新卡片
取得卡片的UID
取得卡片UID的長度

取得卡片的UID類型
顯示卡片的UID類型


逐一顯示UID碼

以16進位顯示UID值



讓卡片進入停止模式
新概念:
每一張卡片都有預設的UID,以16進位的方式顯示,所以必須要先知道每一張卡片的UID,才能後續在後續判別讀取到哪一張卡片。
16進位是指從1~9以後接續A、B、C、D、E、F,其中A代表10、F代表15。

我們採用的RFID卡片有四碼。