Radares Mirando al Sur

Fundamentos, Tecnologías, Aplicaciones, Historia y Memoria

Etiqueta: UID

  • Módulos RFID para Arduino: RC522 y PN532

    Módulos RFID para Arduino: RC522 y PN532

    La identificación por radiofrecuencia (RFID) es una tecnología que permite identificar objetos mediante un identificador único (UID) transmitido por ondas de radio. Un sistema RFID se compone de dos elementos principales: la etiqueta (tag o tarjeta) y el lector. El lector genera un campo electromagnético; cuando una tarjeta pasiva se acerca, se alimenta de ese campo y responde enviando su información.

    Para proyectos con Arduino, los módulos más populares son el RC522 y el PN532. Vamos a verlos en detalle.


    1. Módulo Lector RFID RC522

    Es el caballo de batalla del maker. Usa el chip MFRC522 de NXP, un lector/escritor altamente integrado para comunicación sin contacto a 13.56 MHz.

    Especificaciones técnicas (según datasheet y fabricantes):

    ParámetroValor
    Voltaje de alimentación3.3 V (¡nunca a 5V!)
    Corriente en operación13-26 mA
    Corriente en reposo10-13 mA
    Corriente en sueño< 80 µA
    Frecuencia13.56 MHz
    Distancia de lecturahasta 50 mm (depende de la antena)
    Interfaces soportadosSPI, I2C, UART (por defecto se usa SPI)
    Tarjetas soportadasMIFARE Classic (S50, S70), MIFARE Ultralight, MIFARE DESFire, NTAG

    El módulo RC522 tiene 8 pines. La nomenclatura puede variar según el fabricante, pero los más comunes son:

    Pin del móduloFunción
    VCCAlimentación 3.3V
    GNDTierra
    RSTReset del módulo
    IRQInterrupción (opcional, casi siempre sin conectar)
    MISOSPI – Master In Slave Out
    MOSISPI – Master Out Slave In
    SCKSPI – Clock
    SDA (o SS)SPI – Slave Select

    ⚠️ Importante: El módulo trabaja con lógica de 3.3V, pero los pines de entrada suelen ser tolerantes a 5V en la mayoría de las placas. Sin embargo, VCC siempre debe ir a 3.3V; conectarlo a 5V puede dañarlo.

    Conexión a Arduino Uno

    La conexión es por SPI. Este es el esquema estándar:

    RC522Arduino Uno
    VCC3.3V
    GNDGND
    RSTPin 9 (o cualquier digital)
    SDA (SS)Pin 10 (SS por defecto)
    MOSIPin 11
    MISOPin 12
    SCKPin 13
    IRQNo conectar

    Para Arduino Mega, los pines SPI cambian: MOSI→51, MISO→50, SCK→52.


    2. Módulo RFID/NFC PN532

    El PN532 es más versátil y potente. Soporta los mismos protocolos que el RC522 (MIFARE Classic, Ultralight, NTAG) pero añade FeliCa, ISO 14443B y modo NFC peer-to-peer.

    Ventajas sobre el RC522:

    • Soporta más tipos de tarjetas y etiquetas.
    • Se puede comunicar por SPI, I2C o UART (se selecciona con switches en la placa).
    • Ideal si quieres leer etiquetas NFC de móviles o tarjetas de transporte.

    Conexión por I2C (la más común):

    PN532 (I2C)Arduino Uno
    VCC3.3V o 5V (según modelo)
    GNDGND
    SDAA4
    SCLA5

    ⚠️ Atención: algunos módulos PN532 funcionan a 3.3V y no son tolerantes a 5V, por lo que puede ser necesario un conversor de nivel lógico si se usa con Arduino Uno de 5V.


    3. Tarjetas y tags RFID

    Los tags son el otro lado del sistema. Los más comunes para estos módulos son:

    • MIFARE Classic 1K (S50): la más popular, 1 KB de memoria, viene en formato tarjeta de crédito o llavero.
    • MIFARE Ultralight: más económica, menos memoria, ideal para usos de un solo uso.
    • NTAG: variante más moderna, usada en muchas etiquetas NFC comerciales.

    Todas funcionan a 13.56 MHz y son pasivas: no llevan batería, se alimentan del campo del lector.

    Cada tarjeta tiene un UID (Unique Identifier) de 4 o 7 bytes, que es lo que leemos en la mayoría de los proyectos sencillos.


    4. Instalación de la librería

    Para el RC522, la librería de referencia es MFRC522 de Miguel Balboa (la más usada y mantenida).

    1. Abre el Arduino IDE.
    2. Ve a Sketch → Include Library → Manage Libraries.
    3. Busca «MFRC522» e instala la última versión.

    Para el PN532, la librería más común es la de Adafruit PN532.


    5. Código mínimo: leer el UID de una tarjeta

    Este es el «Hola Mundo» del RFID: leer el UID de cualquier tarjeta o llavero que se acerque al lector.

    cpp

    #include <SPI.h>
    #include <MFRC522.h>
    
    #define RST_PIN  9      // Pin de reset
    #define SS_PIN   10     // Pin Slave Select
    
    MFRC522 mfrc522(SS_PIN, RST_PIN);  // Creamos la instancia
    
    void setup() {
      Serial.begin(9600);
      SPI.begin();                // Iniciamos el bus SPI
      mfrc522.PCD_Init();         // Iniciamos el lector
      Serial.println("Lector RFID RC522 listo. Acerca una tarjeta.");
    }
    
    void loop() {
      // ¿Hay una nueva tarjeta?
      if (!mfrc522.PICC_IsNewCardPresent()) {
        return;
      }
      // ¿Se ha podido leer el serial?
      if (!mfrc522.PICC_ReadCardSerial()) {
        return;
      }
    
      // Mostramos el UID por el monitor serie
      Serial.print("UID: ");
      for (byte i = 0; i < mfrc522.uid.size; i++) {
        if (mfrc522.uid.uidByte[i] < 0x10) {
          Serial.print(" 0");
        } else {
          Serial.print(" ");
        }
        Serial.print(mfrc522.uid.uidByte[i], HEX);
      }
      Serial.println();
    
      // Detenemos la comunicación con la tarjeta
      mfrc522.PICC_HaltA();
    }

    Con este código, al abrir el monitor serie a 9600 baudios y acercar una tarjeta, verás su UID impreso en pantalla.

    A partir de ahí, el siguiente paso natural es comparar ese UID con una lista de autorizados y activar un relé, un LED o un motor. Justo lo que necesitaba ese local de atracciones infantiles que comentabas.


    6. ¿RC522 o PN532?

    CaracterísticaRC522PN532
    PrecioMuy bajoMedio
    ProtocolosMIFARE Classic, Ultralight, DESFire, NTAGLos mismos + FeliCa + NFC peer-to-peer
    InterfazSPI (principal)SPI, I2C, UART (seleccionable)
    Distancia~5 cm~5-7 cm
    DificultadBajaMedia
    Ideal paraControl de acceso básico, proyectos económicosProyectos que requieran NFC o múltiples tipos de tarjeta

    Para el 90% de los proyectos con Arduino, el RC522 es más que suficiente: es barato, fácil de conseguir y la librería es estable y bien documentada.