El módulo RFID RC522 es uno de los dispositivos más versátiles y populares para proyectos de electrónica y sistemas de control de acceso. Junto con una placa Arduino, permite leer y escribir información en tarjetas RFID y llaveros mediante comunicación inalámbrica. Este tipo de tecnología es muy útil en proyectos de automatización, seguridad y monitoreo, como abrir puertas automáticamente o utilizar sistemas de identificación personalizados.
En este artículo, exploraremos de forma detallada cómo funciona el módulo RC522, cómo conectarlo con un microcontrolador como Arduino, y algunos ejemplos prácticos que te permitirán sacarle el máximo provecho. Si estás empezando con proyectos de RFID, este artículo te será de gran ayuda para entender los principios y cómo llevar a cabo una implementación sencilla y efectiva.
¿Qué es el RFID?
RFID (Identificación por Radiofrecuencia) es una tecnología que permite la lectura de etiquetas o tags de forma inalámbrica, sin necesidad de contacto físico. Estas etiquetas están disponibles en múltiples formatos, como tarjetas, llaveros e incluso etiquetas adhesivas. Dependiendo del tipo de RFID, se utilizan en una gran variedad de aplicaciones: desde el control de acceso a edificios hasta la gestión de inventarios.
El lector RFID actúa como un emisor-receptor de señales de radiofrecuencia. Cuando una etiqueta RFID está cerca del lector, esta responde enviando la información almacenada en su memoria. Al trabajar con un módulo como el RC522, puedes usar esta información para realizar diferentes acciones en tu proyecto, como habilitar el acceso a una puerta o registrar el ingreso de personas.
El Módulo RC522
El módulo RC522 es uno de los lectores RFID más populares debido a su simplicidad y versatilidad. Funciona en la frecuencia de 13.56 MHz y permite leer y escribir información en tags compatibles con este estándar.
El RC522 se comunica con el microcontrolador a través del protocolo SPI, lo que significa que es compatible no solo con Arduino, sino también con otros sistemas como PIC y Raspberry Pi. Además, tiene un rango de lectura de aproximadamente 5 a 7 cm, lo que es más que suficiente para la mayoría de los proyectos de control de acceso.
Conexión del Módulo RFID RC522 con Arduino
Una de las grandes ventajas del RC522 es lo fácil que es conectarlo a un Arduino. Lo primero que debemos hacer es asegurarnos de que todos los pines del módulo estén correctamente conectados a los pines correspondientes del Arduino. Aquí tienes una tabla con las conexiones:
Módulo RC522 | Arduino Uno/Nano | Arduino Mega |
---|---|---|
SDA (SS) | 10 | 53 |
SCK | 13 | 52 |
MOSI | 11 | 51 |
MISO | 12 | 50 |
IRQ | No conectado | No conectado |
GND | GND | GND |
RST | 9 | 9 |
3.3V | 3.3V | 3.3V |
Recuerda que el módulo RC522 trabaja con un voltaje de 3.3V, por lo que te recomendamos utilizar un conversor de niveles de voltaje si planeas hacer un uso extendido del sistema, aunque en pruebas rápidas puede funcionar correctamente conectado directamente al Arduino.
Programación del RC522 con Arduino
Para que el RC522 funcione correctamente con Arduino, necesitamos descargar e instalar la correspondiente librería RFID. Una de las más utilizadas es la desarrollada por Miguel Balboa, que puedes encontrar dentro del gestor de librerías del IDE de Arduino.
Una vez instalada la librería, aquí tienes un ejemplo simple de código para leer el UID (Identificador único) de una tarjeta RFID:
#include <SPI.h> #include <MFRC522.h> #define RST_PIN 9 #define SS_PIN 10 MFRC522 mfrc522(SS_PIN, RST_PIN); void setup() { Serial.begin(9600); SPI.begin(); mfrc522.PCD_Init(); Serial.println("Lectura del UID"); } void loop() { if ( mfrc522.PICC_IsNewCardPresent()) { if ( mfrc522.PICC_ReadCardSerial()) { Serial.print("Card UID:"); for (byte i = 0; i < mfrc522.uid.size; i++) { Serial.print(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " "); Serial.print(mfrc522.uid.uidByte[i], HEX); } Serial.println(); mfrc522.PICC_HaltA(); }} }
Este código lee el UID de cualquier tarjeta que acerques al lector y la imprime en el monitor serial.
Uso del RC522 en un Sistema de Control de Acceso
Una de las aplicaciones más útiles del módulo RFID RC522 es en control de acceso. Puedes utilizar tarjetas o llaveros RFID para otorgar permisos de entrada a una persona o para activar/desactivar sistemas como alarmas o cerraduras eléctricas.
A continuación, te mostramos un ejemplo de código modificando el programa anterior para permitir el acceso solo a tarjetas preautorizadas:
byte Usuario1[4] = {0x4B, 0x6D, 0xC8, 0x3A}; byte Usuario2[4] = {0xF2, 0x8A, 0x9D, 0x17}; void loop() { if (mfrc522.PICC_IsNewCardPresent() && mfrc522.PICC_ReadCardSerial()) { if (compareArray(mfrc522.uid.uidByte, Usuario1, 4) || compareArray(mfrc522.uid.uidByte, Usuario2, 4)) { Serial.println("Acceso permitido"); } else { Serial.println("Acceso denegado"); } mfrc522.PICC_HaltA(); }}
En este código, si se detecta una tarjeta con un UID que coincida con alguno de los almacenados, se autoriza el acceso imprimiendo un mensaje. En caso contrario, se deniega el acceso. Puedes reemplazar estos mensajes imprimiendo por código que active una salida digital para abrir una puerta, entre otras funcionalidades.