Arduino Parallax RFID Reader 讀取識別碼

發表日期:
2023.10.11
/
分類:
Parallax RFID Reader(SKU28140)是一個 RFID 的讀取器,可以配合 Arduino 開發板使用。將這篇文章提供的程式碼燒錄到 Arduino 中,在感應到 RFID 標籤時將會透過序列埠

Parallax RFID Reader(SKU28140)是一個 RFID 的讀取器,可以配合 Arduino 開發板使用。將這篇文章提供的程式碼燒錄到 Arduino 中,在感應到 RFID 標籤時將會透過序列埠輸出標籤的識別碼(UID)。

Parallax RFID Reader 有四個腳位,分別是 VCC、GND、SOUT、/ENABLE。請以下列規則進行連接:

  • VCC → Arduino 5V

  • GND → Arduino GND

  • SOUT → 10 腳位

  • /ENABLE → 9 腳位

程式碼:

#include <SoftwareSerial.h>

#define enablePin  9   // Connects to the RFID's ENABLE pin
#define rxPin      10  // Serial input (connects to the RFID's SOUT pin)
#define txPin      11  // Serial output (unused)

#define BUFSIZE    11

#define RFID_START  0x0A
#define RFID_STOP   0x0D

SoftwareSerial rfidSerial =  SoftwareSerial(rxPin, txPin);

void setup()
{
  pinMode(enablePin, OUTPUT);
  pinMode(rxPin, INPUT);

  digitalWrite(enablePin, HIGH);
  
  Serial.begin(9600);
  while (!Serial);
  Serial.println("\n\nParallax RFID Card Reader");
  
  rfidSerial.begin(2400);

  Serial.flush();
}

void loop()
{
  digitalWrite(enablePin, LOW);
  
  char rfidData[BUFSIZE];
  char offset = 0;
  rfidData[0] = 0;  
  while(1)
  {
    if (rfidSerial.available() > 0)
    {
      rfidData[offset] = rfidSerial.read();
      if (rfidData[offset] == RFID_START)
      {
        offset = -1;
      }
      else if (rfidData[offset] == RFID_STOP)
      {
        rfidData[offset] = 0;
        break;
      }
          
      offset++;
      if (offset >= BUFSIZE) offset = 0;
    }
  }

  Serial.println(rfidData);
  Serial.flush();
}

原始碼來源:RFID Card Reader - Serial - Parallax

comments powered by Disqus