準備:
請參閱【RFID顯示ID】課程,安裝函式庫和接線,不再說明。






#include <SPI.h>
#include <MFRC522.h>
#define RST_PIN A0
#define SS_PIN 10
struct RFIDTag{
byte uid[4];
};
struct RFIDTag tags[] = {
{{116,201,59,91}},
};
MFRC522 mfrc522(SS_PIN, RST_PIN);

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




定義資料結構
資料為4個數字

資料的內容為括號內容
預設卡片(資料)內容

建立RC522物件



序列埠周邊設定
RC522初始化






void loop() {
if (mfrc522.PICC_IsNewCardPresent()) {
byte *id = mfrc522.uid.uidByte;
byte idSize = mfrc522.uid.size;
if (memcmp(tags[0].uid,id,idSize)==0){

Serial.println("right");
}
else{
Serial.println("worng");
}

mfrc522.PICC_HaltA();
}
}

如果感應到新卡片【後面省略要自己補】
取得卡片的UID
取得UID的長度
如果讀取到的內容和預設的資料相同
memcmp(a,b,c)->比較a,b中前c個字節
序列埠顯示【right】


序列埠顯示【right】
如何讀取複數卡片:
如果要增加可以讀取的卡片數量,依照【預設卡片(資料)內容】以相同格式輸入即可。

如果要讀取不同卡片有不同的結果,在【比較字節】的部分可以重複應用判別式。
如果改寫"tag【】"中括弧的數字,可以依照讀取到不同的卡片資料進行不同的反應。