以下紀錄RFID-RC522 model在 Arduino的使用方法
首先必須先下載 [程式庫]
---
library download from:
https://github.com/miguelbalboa/rfid
file name:
rfid-master.zip
草稿碼->匯入程式庫 -> 加入ZIP程式庫 -> 選擇上方下載的 rfid-master.zip 檔案
成功匯入後,在
草稿碼->匯入程式庫 -> 貢獻程式庫 就會看到 MFRC522
---
之後,需要搞定硬體接線
RFID-RC522 8 pins 與Arduino 接法如下:
RFID-RC522 Arduino
-------------------------------------
SDA/SS pin 10
SCK pin 13
MOSI pin 11
MISO pin 12
IRQ N/A不接
GND GND
RST pin 9
3.3V 3.3V
--------------
硬體接線搞定後,開始搞軟體
===程式碼===
#include <SPI.h>
#include <MFRC522.h>
#define RESET 9 //重置腳位
#define SS 10 //晶片選擇腳位
MFRC522 mfrc522(SS, RESET);
void setup() {
Serial.begin(9600);
SPI.begin();
mfrc522.PCD_Init(); //初始化
Serial.print("RFID ready to read card-----");
Serial.println();
}
void loop() {
if (mfrc522.PICC_IsNewCardPresent()) { //是否有新卡片
if (mfrc522.PICC_ReadCardSerial()){
byte *id = mfrc522.uid.uidByte; //讀取卡片ID
byte idSize = mfrc522.uid.size; //卡片ID的長度
for (byte i = 0; i < idSize; i++) {
Serial.print("0x");
Serial.print(id[i], HEX); //顯示id
Serial.print(" ");
}
Serial.println();
}
mfrc522.PICC_HaltA(); //暫停,避免重複讀取
}
}
=====
使用方法,將NFC TAG靠近RFID-RC522,就可以經由 Arduino UART log 輸出TAG的 UID
===進階應用,加上 buzzer,當掃到TAG時,BEEP一聲===
根據上方的硬體狀態,再加上 buzzer元件上去
FC-07 有三個pin , GND,I/O, VCC (3.3-5V) ,是低源觸發
依照下列將FC-07 接到 Arduino UNO上
FC07 Arduino
--------------------------
VSS 5V
I/O 7
GND GND
--------------------------------
軟體修改:
===
#include <SPI.h>
#include <MFRC522.h>
#define RESET 9 //重置腳位
#define SS 10 //晶片選擇腳位
MFRC522 mfrc522(SS, RESET);
int buzzer = 7;
void setup() {
pinMode(buzzer, OUTPUT);
digitalWrite(buzzer, HIGH);
Serial.begin(9600);
SPI.begin();
mfrc522.PCD_Init(); //初始化
Serial.print("RFID ready to read card-----");
Serial.println();
}
void loop() {
if (mfrc522.PICC_IsNewCardPresent()) { //是否有新卡片
if (mfrc522.PICC_ReadCardSerial()){
byte *id = mfrc522.uid.uidByte; //讀取卡片ID
byte idSize = mfrc522.uid.size; //卡片ID的長度
for (byte i = 0; i < idSize; i++) {
Serial.print("0x");
Serial.print(id[i], HEX); //顯示id
Serial.print(" ");
}
Serial.println();
digitalWrite(buzzer, LOW);
delay(100);
digitalWrite(buzzer, HIGH);
}
mfrc522.PICC_HaltA(); //暫停,避免重複讀取
}
}
===
實際操作:
將卡片靠近讀取區,成功讀取將會beep一聲。
以上作紀錄
留言列表