Arduino Parallax RFID Reader 讀取識別碼

2023.10.11 / Arduino

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

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 腳位

程式碼:

 1#include <SoftwareSerial.h>
 2
 3#define enablePin  9   // Connects to the RFID's ENABLE pin
 4#define rxPin      10  // Serial input (connects to the RFID's SOUT pin)
 5#define txPin      11  // Serial output (unused)
 6
 7#define BUFSIZE    11
 8
 9#define RFID_START  0x0A
10#define RFID_STOP   0x0D
11
12SoftwareSerial rfidSerial =  SoftwareSerial(rxPin, txPin);
13
14void setup()
15{
16  pinMode(enablePin, OUTPUT);
17  pinMode(rxPin, INPUT);
18
19  digitalWrite(enablePin, HIGH);
20  
21  Serial.begin(9600);
22  while (!Serial);
23  Serial.println("\n\nParallax RFID Card Reader");
24  
25  rfidSerial.begin(2400);
26
27  Serial.flush();
28}
29
30void loop()
31{
32  digitalWrite(enablePin, LOW);
33  
34  char rfidData[BUFSIZE];
35  char offset = 0;
36  rfidData[0] = 0;  
37  while(1)
38  {
39    if (rfidSerial.available() > 0)
40    {
41      rfidData[offset] = rfidSerial.read();
42      if (rfidData[offset] == RFID_START)
43      {
44        offset = -1;
45      }
46      else if (rfidData[offset] == RFID_STOP)
47      {
48        rfidData[offset] = 0;
49        break;
50      }
51          
52      offset++;
53      if (offset >= BUFSIZE) offset = 0;
54    }
55  }
56
57  Serial.println(rfidData);
58  Serial.flush();
59}

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

相關文章

Ted Liou

雲科碩士在讀中,專注於 Unity C#、TouchDesigner 技術,常把技術筆記分享到部落格,偶爾還直接挪用文章來當教材的研究生。