Arduino UHF RFID 915MHz Reader Setup with 0-6m Range
Arduino UHF RFID 915MHz Reader Setup with 0-6m Range
This guide walks through wiring and coding an Arduino to read UHF RFID cards at 915MHz frequency with a read range up to 6 meters. Suitable for parking gate systems, access control, or IoT projects that require longer reading distance than standard RFID.
Required Components
- Arduino UNO R3
- UHF RFID Reader 915MHz
- UHF RFID Key Cards 915MHz (at least 2 cards)
- Breadboard MB-102
- Jumper wires (M-M, M-F, F-F)
- Power Adapter 12V 5A with DC jack 5.5x2.5mm
- DC Jack female connector
Wiring the UHF RFID Reader to Arduino
The wiring is divided into 3 parts: data signal connection, reader power, and Arduino power.
1. Data Signal Connections (Wiegand Protocol)
The UHF RFID reader uses Wiegand protocol with 2 data lines: D0 and D1
| Arduino Pin | Reader Pin | Wire Color |
|---|---|---|
| GND | GND | Black |
| Pin 2 | D0/RX | Green |
| Pin 3 | D1/TX | White |
2. Powering the Reader (12V DC)
The UHF RFID reader requires 12V DC from an external adapter:
- Positive 12V → VCC (Red wire)
- Negative 12V → GND (Black wire)
3. Powering the Arduino
Connect the negative terminal of the 12V adapter to Arduino GND to establish a common ground reference for the entire system.
Important: All GND points must be connected together. Without common ground, data signals will not work properly.
Installing the Wiegand Protocol Library
Download the library from Mediafire: Wiegand-Protocol-Library-for-Arduino-master.zip
Installation steps:
- Extract the ZIP file using WinRAR or WinZip
- Copy the extracted folder to
Documents/Arduino/libraries/ - Restart Arduino IDE
Arduino Code for Reading UHF RFID
#include <Wiegand.h>
Wiegand wg;
void setup() {
Serial.begin(9600);
// Define pins connected to D0 and D1
wg.begin(2, 3);
Serial.println("Arduino RFID UHF Reader Ready");
Serial.println("Waiting for card...");
}
void loop() {
if (wg.available()) {
unsigned long cardData = wg.getData();
Serial.print("Card Type: ");
Serial.println(wg.getCardType());
Serial.print("Decimal: ");
Serial.println(cardData);
Serial.print("Hex: ");
Serial.println(cardData, HEX);
Serial.println("---");
}
}
Adjustable points: If you connected D0/D1 to different pins, modify the numbers in wg.begin(2, 3) to match your actual wiring.
Upload and Test Steps
- Open Arduino IDE and paste the code above
- Select Board → Arduino UNO
- Select the correct COM Port
- Click Upload (Ctrl+U)
- When upload completes, open Serial Monitor (Ctrl+Shift+M)
- Set Baud Rate to 9600
- Bring a UHF RFID card close to the reader within 0-6 meters
[image: Serial Monitor output showing card data including Card Type, Decimal value, and Hexadecimal value]
Expected Output
When a 915MHz key card is detected by the reader:
- Card Type — Type identifier of the card
- Decimal — Card number in base-10 format
- Hex — Card number in hexadecimal format
Each card has a unique identification number that can be used for access control logic.
Summary
Using UHF RFID 915MHz with Arduino differs from low-frequency RFID in that it requires separate 12V power for the reader and uses Wiegand protocol for data communication. The Wiegand Protocol Library handles this complexity, making it straightforward to integrate long-range RFID into your Arduino projects.
อยากทำโปรเจคแบบนี้?
รับทำโปรเจค Arduino / IoT จบงานไว ส่งงานครบ พร้อมสอน
If you need Arduino project service or urgent IoT development, see full service details on the home page
จ้างทำโปรเจคเลย