Cómo usar el lector RFID PN532 con Arduino

  • El PN532 permite lectura, escritura y emulación de etiquetas NFC.
  • Soporta múltiples interfaces: I2C, SPI y UART.
  • Es ideal para proyectos de seguridad, domótica y control de acceso.

pn532

El lector RFID PN532 es uno de los módulos más versátiles y avanzados disponibles para trabajar con la tecnología NFC (Near Field Communication). Este pequeño dispositivo permite leer, grabar e incluso emular etiquetas NFC, lo que lo convierte en una herramienta imprescindible para proyectos de seguridad, domótica o automatización.

Conectar y configurar este módulo con una placa Arduino puede ser más sencillo de lo que parece. A continuación, te enseñaremos no solo cómo realizar las conexiones físicas con el Arduino, sino también cómo instalar las bibliotecas necesarias, entender los modos de comunicación y utilizar ejemplos prácticos de código. Prepárate para descubrir el potencial de este módulo en tus proyectos.

¿Qué es el módulo RFID PN532?

[amazon box=»B07ZWV1XZ1″ image_size=»large» description_items=»0″ template=»widget»]

El módulo PN532 es un controlador NFC ampliamente utilizado, que permite la comunicación entre dispositivos NFC y otros elementos como tarjetas RFID, teléfonos móviles compatibles o incluso actuar como una etiqueta NFC. Entre sus prestaciones destacan:

  • Compatibilidad: Puede operar con tarjetas y dispositivos compatibles con el estándar MIFARE.
  • Flexibilidad de comunicación: Permite conexiones mediante SPI, I2C y UART (HSU).
  • Soporte de múltiples modos: Incluye capacidades lectoras/escritoras, emulación de tarjeta y comunicación Peer-to-Peer.
  • Facilidad de integración: Compatible con placas Arduino y microcontroladores similares.

Materiales necesarios

Para comenzar a trabajar con el módulo PN532, necesitas los siguientes componentes:

  • Una placa Arduino (por ejemplo, Arduino UNO).
  • El módulo NFC PN532.
  • Tarjetas NFC o llaveros RFID compatibles.
  • Cables de conexión Dupont o similares.
  • Un ordenador con el IDE de Arduino instalado.

Conexiones físicas

pn532 pinout y conexión Arduino

El módulo PN532 puede conectarse al Arduino mediante diferentes interfaces de comunicación: I2C, SPI o UART. A continuación, te explicamos cómo realizar las conexiones para cada caso:

Conexión por I2C

La comunicación I2C es simple y solo requiere de unos pocos pines:

  • 5V del módulo al pin 5V del Arduino.
  • GND del módulo al pin GND del Arduino.
  • SDA del módulo al pin A4 del Arduino.
  • SCL del módulo al pin A5 del Arduino.

Conexión por SPI

Para usar SPI, debes conectar estos pines:

  • MOSI del módulo al pin 11 del Arduino.
  • MISO del módulo al pin 12 del Arduino.
  • SCK del módulo al pin 13 del Arduino.
  • SS del módulo al pin 10 del Arduino.

Conexión por UART

Si prefieres el UART (también conocido como HSU), necesitas realizar las siguientes conexiones:

  • TX del módulo al pin RX del Arduino (pin 0).
  • RX del módulo al pin TX del Arduino (pin 1).

Configurar Arduino IDE e instalar la biblioteca

Para trabajar con el PN532, debes instalar la biblioteca adecuada. Sigue estos pasos:

  1. Abre el IDE de Arduino y ve a Sketch > Incluir Biblioteca > Administrar Bibliotecas.
  2. Busca «PN532» en la barra de búsqueda.
  3. Selecciona la biblioteca Adafruit PN532 y haz clic en Instalar.

Modos de operación

El PN532 soporta varios modos de funcionamiento, incluyendo:

  • Lector/Grabador: Permite leer y escribir datos en tarjetas NFC.
  • Emulación de tarjeta: Funciona como un tag NFC.
  • Comunicación Peer-to-Peer: Intercambia datos con otros dispositivos NFC.

Código de ejemplo

Una vez configurado todo, puedes cargar un código básico para leer el UID de las tarjetas NFC compatibles:

#include 
#include 
#include 

#define IRQ_PIN 2
#define RESET_PIN 3

Adafruit_PN532 nfc(IRQ_PIN, RESET_PIN);

void setup() {
  Serial.begin(115200);
  nfc.begin();
  uint32_t version = nfc.getFirmwareVersion();
  if (!version) {
    Serial.println("PN532 no detectado");
    while (1);
  }
  nfc.SAMConfig();
  Serial.println("Esperando tarjeta...");
}

void loop() {
  uint8_t success;
  uint8_t uid[7];
  uint8_t uidLength;

  success = nfc.readPassiveTargetID(PN532_MIFARE_ISO14443A, uid, &uidLength);
  if (success) {
    Serial.print("UID detectado: ");
    for (int i = 0; i < uidLength; i++) {
      Serial.print(uid[i], HEX);
      Serial.print(" ");
    }
    Serial.println();
  }
}

Pruebas y aplicaciones

Una vez cargado el código, conecta el Arduino al ordenador y abre el monitor serial. Al acercar una tarjeta NFC al módulo, deberías ver su UID impreso en la consola. Este simple experimento abre un mundo de posibilidades, como:

  • Control de acceso con identificación única.
  • Automatización de procesos basados en tarjetas NFC.
  • Creación de sistemas de pago en proyectos DIY.

El lector PN532 ofrece una amplia gama de funcionalidades, desde leer tarjetas NFC hasta emularlas. Gracias a su flexibilidad y facilidad de uso, es ideal tanto para principiantes como para expertos. Prepárate para explorar el mundo de la comunicación inalámbrica con este fantástico módulo.