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();
}