Module RFID RC522 13.56MHz
RC522 là module đọc/ghi thẻ RFID tần số 13.56MHz (chuẩn Mifare), giao tiếp SPI với MCU. Đọc UID thẻ/keyfob, ghi dữ liệu vào block — dùng làm khóa cửa, chấm công, điểm danh, hệ thống định danh.
Thông số kỹ thuật
| Tần số | 13.56 MHz |
| Giao tiếp | SPI (≤ 10 MHz) |
| Điện áp hoạt động | 3.3 V |
| Dòng làm việc | 13 ~ 26 mA |
| Chuẩn thẻ | Mifare S50/S70, NTAG |
| Khoảng cách đọc | ~0 ~ 60 mm |
Sơ đồ chân
| Chân | Chức năng |
|---|---|
| SDA / SS | Chip select SPI |
| SCK | SPI clock |
| MOSI | SPI master out |
| MISO | SPI master in |
| IRQ | Ngắt (thường không dùng) |
| GND | Mass |
| RST | Reset |
| 3.3V | Nguồn 3.3V (không cấp 5V!) |
Kết nối với Arduino/ESP32
| RC522 | Arduino UNO | ESP32 |
|---|---|---|
| 3.3V | 3.3V | 3V3 |
| GND | GND | GND |
| RST | D9 | GPIO22 |
| SDA (SS) | D10 | GPIO21 |
| MOSI | D11 | GPIO23 |
| MISO | D12 | GPIO19 |
| SCK | D13 | GPIO18 |
Cấp đúng 3.3V, cấp 5V có thể hỏng module. Chân tín hiệu chịu được mức 5V của Arduino.
Code mẫu (đọc UID)
#include <SPI.h>
#include <MFRC522.h>
#define SS_PIN 21
#define RST_PIN 22
MFRC522 rfid(SS_PIN, RST_PIN);
void setup() {
Serial.begin(115200);
SPI.begin();
rfid.PCD_Init();
Serial.println("Đưa thẻ lại gần...");
}
void loop() {
if (!rfid.PICC_IsNewCardPresent() || !rfid.PICC_ReadCardSerial()) return;
Serial.print("UID:");
for (byte i = 0; i < rfid.uid.size; i++) Serial.printf(" %02X", rfid.uid.uidByte[i]);
Serial.println();
rfid.PICC_HaltA();
}
Cần thư viện MFRC522 (Library Manager).