

The RFID RC522 is a compact and cost-effective RFID reader/writer module that communicates via the I2C interface. Operating at a frequency of 13.56 MHz, it is capable of reading and writing to RFID tags. This module is widely used in applications such as access control, inventory management, and automation systems. Its small size, low power consumption, and ease of integration make it a popular choice for both hobbyists and professionals.








The RFID RC522 module is designed for efficient and reliable RFID communication. Below are its key technical details:
| Parameter | Specification |
|---|---|
| Operating Voltage | 3.3V |
| Communication Interface | I2C (4-pin configuration) |
| Operating Frequency | 13.56 MHz |
| Maximum Data Rate | 10 Mbps |
| Current Consumption | 13-26 mA (active mode) |
| Supported RFID Tags | ISO/IEC 14443 Type A cards |
| Operating Temperature | -20°C to 80°C |
| Dimensions | 40mm x 60mm |
The RFID RC522 I2C module uses a 4-pin interface for communication. Below is the pinout description:
| Pin | Name | Description |
|---|---|---|
| 1 | VCC | Power supply input (3.3V) |
| 2 | GND | Ground connection |
| 3 | SDA | I2C data line (connect to Arduino SDA pin) |
| 4 | SCL | I2C clock line (connect to Arduino SCL pin) |
To use the RFID RC522 module with an Arduino UNO, follow these steps:
MFRC522 library from the Arduino Library Manager.The following Arduino sketch demonstrates how to initialize the RFID RC522 module and read an RFID tag's UID:
#include <Wire.h>
#include <MFRC522.h> // Include the MFRC522 library
#define RST_PIN 9 // Reset pin for the RC522 module
#define SDA_PIN 10 // SDA pin for the RC522 module
MFRC522 rfid(SDA_PIN, RST_PIN); // Create an instance of the MFRC522 class
void setup() {
Serial.begin(9600); // Initialize serial communication
Wire.begin(); // Initialize I2C communication
rfid.PCD_Init(); // Initialize the RC522 module
Serial.println("Place an RFID tag near the reader...");
}
void loop() {
// Check if an RFID tag is present
if (!rfid.PICC_IsNewCardPresent() || !rfid.PICC_ReadCardSerial()) {
return; // Exit if no tag is detected
}
// Print the UID of the detected tag
Serial.print("Tag UID: ");
for (byte i = 0; i < rfid.uid.size; i++) {
Serial.print(rfid.uid.uidByte[i], HEX); // Print each byte in hexadecimal
Serial.print(" ");
}
Serial.println();
rfid.PICC_HaltA(); // Halt communication with the tag
}
Module Not Detected:
Unable to Read Tags:
Intermittent Communication:
Q: Can I use the RFID RC522 module with a 5V microcontroller?
A: Yes, but you must use a logic level shifter to step down the 5V signals to 3.3V for the module.
Q: What is the maximum range of the RFID RC522 module?
A: The module typically has a range of 2-5 cm, depending on the tag and environmental conditions.
Q: Can the module write data to RFID tags?
A: Yes, the RC522 module supports both reading and writing to compatible RFID tags.
By following this documentation, you can effectively integrate the RFID RC522 I2C module into your projects.