Detección de tags RFID con el lector RC522 y M-Duino PLC

Cómo leer y comparar UIDs de tags RFID con el módulo RC522 y un M-Duino PLC
15 de junio de 2026 por
Detección de tags RFID con el lector RC522 y M-Duino PLC
Boot & Work Corp. S.L, Bernat Brunet Pedra

La tecnología RFID (Radio Frequency Identification) permite la identificación automática de objetos y personas mediante etiquetas que transmiten un UID único (Unique Identifier) cuando se acercan a un lector. Este artículo muestra cómo conectar el lector RFID RC522 a un M-Duino PLC, leer el UID de una etiqueta y compararlo con una lista de usuarios autorizados usando el IDE de Arduino.

Qué necesitas

  • M-Duino PLC
  • Fuente de alimentación
  • Módulo lector RFID RC522
  • Etiquetas o tarjetas RFID

Conexión del RC522 al M-Duino PLC

El RC522 se comunica mediante SPI y tiene 8 pines, pero el pin IRQ no se usa en este ejemplo. Conecta los 7 pines restantes de la siguiente manera:

RC522M-Duino PLC
3.3V3.3V
RSTPin 3
GNDGND
IRQSin conectar
MISO50 (SO)
MOSI51 (SI)
SCK52 (SCK)
SDAPin 2

El M-Duino tiene interruptores de hardware detrás de los pines de E/S digital. Asegúrate de que los interruptores del Pin 2 y el Pin 3 estén activados antes de subir el sketch.

Instalación de la librería MFRC522

Abre el IDE de Arduino, ve a Herramientas > Gestionar librerías (Ctrl+Shift+I), busca "MFRC522" e instala la librería de Miguel Balboa. Instala también el paquete de placas Industrial Shields para tu modelo de M-Duino:

Cómo instalar las placas Industrial Shields en el IDE de Arduino

Selecciona tu placa en Herramientas > Placa > Industrial Shields boards > M-Duino family y tu modelo en Herramientas > Modelo.

Sketch de Arduino para lectura y comparación de etiquetas RFID

El sketch siguiente detecta cualquier etiqueta RFID cerca del lector e imprime su UID en el monitor serie. Luego compara el UID con un array de usuarios almacenado. Si los UIDs coinciden, el acceso es concedido; de lo contrario, es denegado.

Antes de usar el sketch debes encontrar el UID de tu propia etiqueta RFID: sube el sketch, pasa tu etiqueta por el lector y anota el UID que aparece en el monitor serie. Sustituye los bytes del array User1 con el UID de tu etiqueta.

#include <SPI.h>
#include <MFRC522.h>

#define RST_PIN 3
#define SS_PIN  2

MFRC522 mfrc522(SS_PIN, RST_PIN);

byte ActualUID[4];
byte User1[4] = {0x31, 0x31, 0x31, 0x31}; // Sustituye por el UID de tu etiqueta

void setup() {
  Serial.begin(9600);
  SPI.begin();
  mfrc522.PCD_Init();
  Serial.println("Reading 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);
        ActualUID[i] = mfrc522.uid.uidByte[i];
      }
      if (compareArray(ActualUID, User1)) Serial.println(" Access granted");
      else Serial.println(" Access denied");
      mfrc522.PICC_HaltA();
    }
  }
}

boolean compareArray(byte array1[], byte array2[]) {
  for (byte i = 0; i < mfrc522.uid.size; i++) {
    if (array1[i] != array2[i]) return false;
  }
  return true;
}

Ampliar la lista de acceso

Para admitir más usuarios, añade arrays de bytes adicionales (User2, User3, etc.) e incorpora una comparación para cada uno dentro del bucle. Para grandes cantidades de etiquetas, almacenar los UIDs en una tarjeta SD es una alternativa práctica a incluirlos directamente en el sketch.

Buscar en nuestro blog

Detección de tags RFID con el lector RC522 y M-Duino PLC
Boot & Work Corp. S.L, Bernat Brunet Pedra 15 de junio de 2026
Compartir esta publicación
Etiquetas

¿Estás buscando tu Controlador Lógico Programable ideal?

Echa un vistazo a esta comparativa de producto de varios controladores industriales basados en Arduino.

Comparamos entradas, salidas, comunicaciones y otras especificaciones con las de los equipos de otras marcas destacadas.

Comparativa de PLCs