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?

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.


Sé el primero en comentar

Deja tu comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*

*

  1. Responsable de los datos: Miguel Ángel Gatón
  2. Finalidad de los datos: Controlar el SPAM, gestión de comentarios.
  3. Legitimación: Tu consentimiento
  4. Comunicación de los datos: No se comunicarán los datos a terceros salvo por obligación legal.
  5. Almacenamiento de los datos: Base de datos alojada en Occentus Networks (UE)
  6. Derechos: En cualquier momento puedes limitar, recuperar y borrar tu información.