以下紀錄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一聲。

 

以上作紀錄

arrow
arrow
    文章標籤
    RFID-RC522 Arduino
    全站熱搜
    創作者介紹
    創作者 CuteParrot 的頭像
    CuteParrot

    馴龍窩

    CuteParrot 發表在 痞客邦 留言(0) 人氣()