

The EM-18 RFID Reader Module is a compact and efficient device designed for reading RFID tags. Operating at a frequency of 125 kHz, it can detect and read RFID tags from a distance of up to 10 cm. The module outputs the tag data in a serial format, making it highly compatible with microcontrollers, such as Arduino, and other digital systems.








Below are the key technical details and pin configuration for the EM-18 RFID Reader Module:
| Parameter | Value |
|---|---|
| Operating Frequency | 125 kHz |
| Operating Voltage | 4.5V to 5.5V DC |
| Current Consumption | 50 mA (typical) |
| Communication Interface | UART (TTL) and Wiegand |
| Baud Rate (UART) | 9600 bps |
| Reading Distance | Up to 10 cm |
| Supported RFID Tags | 125 kHz passive tags |
| Dimensions | 32 mm x 32 mm x 8 mm |
| Operating Temperature | -10°C to +70°C |
The EM-18 module has a total of 7 pins. The table below describes each pin:
| Pin Number | Pin Name | Description |
|---|---|---|
| 1 | VCC | Power supply input (4.5V to 5.5V DC). |
| 2 | GND | Ground connection. |
| 3 | TX | UART serial data output (transmits RFID tag data). |
| 4 | RX | UART serial data input (not commonly used; for advanced configurations). |
| 5 | BEEP | Buzzer control pin (active high). |
| 6 | LED | LED control pin (active high). |
| 7 | ANT | Antenna pin (internally connected; not used externally). |
Below is an example of how to connect and use the EM-18 RFID Reader Module with an Arduino UNO:
| EM-18 Pin | Arduino UNO Pin |
|---|---|
| VCC | 5V |
| GND | GND |
| TX | D2 (Digital Pin 2) |
// EM-18 RFID Reader Module Example with Arduino UNO
// Connect EM-18 TX pin to Arduino D2 (SoftwareSerial RX)
#include <SoftwareSerial.h>
// Define SoftwareSerial pins for EM-18
SoftwareSerial RFID(2, 3); // RX = Pin 2, TX = Pin 3 (TX not used here)
void setup() {
Serial.begin(9600); // Initialize Serial Monitor at 9600 bps
RFID.begin(9600); // Initialize SoftwareSerial for EM-18 at 9600 bps
Serial.println("EM-18 RFID Reader Ready");
}
void loop() {
if (RFID.available()) { // Check if data is available from EM-18
String tagData = ""; // Variable to store RFID tag data
while (RFID.available()) {
char c = RFID.read(); // Read each character from EM-18
tagData += c; // Append character to tagData
}
Serial.print("RFID Tag ID: ");
Serial.println(tagData); // Print the tag ID to Serial Monitor
}
}
| Issue | Solution |
|---|---|
| No data received from the module | - Check the power supply connections. |
| - Ensure the TX pin of the EM-18 is connected to the RX pin of the MCU. | |
| - Verify the baud rate is set to 9600 bps. | |
| RFID tag not detected | - Ensure the tag is within the 10 cm range. |
| - Use a compatible 125 kHz passive RFID tag. | |
| Intermittent or erratic readings | - Avoid placing the module near metal objects or sources of interference. |
| - Use a stable 5V DC power supply. |
Can the EM-18 read multiple tags simultaneously?
What is the maximum range of the EM-18?
Can I use the EM-18 with a 3.3V microcontroller?
Does the module support 13.56 MHz RFID tags?
By following this documentation, you can effectively integrate the EM-18 RFID Reader Module into your projects for reliable RFID tag reading.