Módulo RFID, MFRC522 con interfaz UART, SPI, I²C
Resumen
Módulo lector RFID de 13,56 MHz basado en NXP MFRC522 con tres interfaces seleccionables: SPI, I²C o UART. Lee y escribe tags ISO/IEC 14443 Type A — MIFARE Classic 1K, MIFARE Ultralight, NTAG21x. Alcance típico: 30-50 mm. Ideal para sistemas de control de acceso, fichaje, seguimiento de inventario y proyectos maker personalizados.
Especificaciones
| Especificación | Valor |
|---|---|
| Reader IC | NXP MFRC522 |
| Operating Frequency | 13.56 MHz |
| Supported Protocols | ISO/IEC 14443 Type A (MIFARE Classic, Ultralight, NTAG21x) |
| Read Range | ~30–50 mm (depends on tag and antenna) |
| Interfaces | SPI (up to 10 Mbit/s), I²C, UART |
| Operating Voltage | 3.3 V (with onboard regulator from 5 V) |
| Logic Level | 3.3 V or 5 V tolerant |
| Pins | 8 (3.3V, RST, GND, IRQ, MISO, MOSI, SCK, SDA) |
| Card Memory (MIFARE Classic 1K) | 1 KB |
| Read/Write | Both (with appropriate authentication) |
| Package Contents | Module + 1× MIFARE Classic 1K card + 1× keychain tag |
Usos comunes
- Sistemas de control de acceso (puerta, taquilla)
- Fichaje y presencia (tarjetas de empleados)
- Seguimiento de inventario y activos
- Lectores NFC personalizados
- Proyectos maker (cofres RFID, disparadores musicales)
Programación
#include <SPI.h>
#include <MFRC522.h>
#define SS_PIN 10
#define RST_PIN 9
MFRC522 rfid(SS_PIN, RST_PIN);
void setup() {
Serial.begin(9600);
SPI.begin();
rfid.PCD_Init();
Serial.println("Tap a card...");
}
void loop() {
if (!rfid.PICC_IsNewCardPresent() || !rfid.PICC_ReadCardSerial()) return;
Serial.print("UID: ");
for (byte i = 0; i < rfid.uid.size; i++) {
Serial.print(rfid.uid.uidByte[i] < 0x10 ? " 0" : " ");
Serial.print(rfid.uid.uidByte[i], HEX);
}
Serial.println();
rfid.PICC_HaltA();
}