Arduino Nano - Identificación por radiofrecuencia

Este tutorial te enseña cómo usar RFID/NFC con Arduino Nano. El sistema RFID/NFC consta de dos componentes: un lector y una etiqueta. Dos de los lectores RFID/NFC más populares son el RC522 y el PN532. Este tutorial utilizará el lector RC522 de RFID/NFC, que es barato y fácil de usar.

El lector RC522 RFID/NFC puede:

Este tutorial se centra en:

Hardware Requerido

1×Official Arduino Nano
1×Alternatively, DIYables ATMEGA328P Nano Development Board
1×Cable USB A a Mini-B
1×RFID/NFC RC522 Kit (reader + tags)
1×RFID Key Fob
1×RFID Card
1×Cables Puente
1×(Recomendado) Placa de Expansión de Terminales de Tornillo para Arduino Nano
1×(Recomendado) Placa de Expansión Breakout para Arduino Nano
1×(Recomendado) Divisor de Alimentación para Arduino Nano

Or you can buy the following kits:

1×DIYables Sensor Kit (30 sensors/displays)
1×DIYables Sensor Kit (18 sensors/displays)
Divulgación: Algunos de los enlaces proporcionados en esta sección son enlaces de afiliado de Amazon. Podemos recibir una comisión por las compras realizadas a través de estos enlaces sin costo adicional para usted. Apreciamos su apoyo.

Acerca del módulo RFID-RC522

Esquema de pines del módulo RFID-RC522

El módulo RFID-RC522 tiene 8 pines, algunos de los cuales son pines generales y los otros son compartidos entre tres modos de comunicación: SPI, I2C y UART. Solo es posible usar uno de estos modos a la vez. Los pines son:

  • Pin GND: Esto debe conectarse a tierra (0 V).
  • Pin VCC: Esto debe conectarse al suministro de voltaje (3.3 V).
  • Pin RST: Este es un pin de reinicio y apagado. Cuando este pin pasa a nivel bajo, se habilita un apagado duro. En el borde de subida, el módulo se reinicia.
  • Pin IRQ: Este es un pin de interrupción que puede alertar al microcontrolador cuando una etiqueta RFID se acerca.
  • Pin MISO/SCL/TX: Actúa como MISO cuando la interfaz SPI está habilitada, como SCL cuando la interfaz I2C está habilitada y como TX cuando la interfaz UART está habilitada.
  • Pin MOSI: Actúa como MOSI cuando la interfaz SPI está habilitada.
  • Pin SCK: Actúa como SCK cuando la interfaz SPI está habilitada.
  • Pin SS/SDA/RX: Actúa como SS cuando la interfaz SPI está habilitada, como SDA cuando la interfaz I2C está habilitada y como RX cuando la interfaz UART está habilitada.
Diagrama de pines del RFID-RC522

※ Nota:

  • La disposición de pines puede variar según el fabricante. Es esencial usar las etiquetas impresas en el módulo, como se ilustra en la imagen de arriba del fabricante DIYables.
  • No conecte el pin VCC al pin de 5V, ya que esto podría dañar el módulo.
  • La biblioteca MFRC522 solo admite el modo SPI, por lo que este tutorial se centrará en la comunicación SPI.

Cómo funciona RFID/NFC

RFID/NFC se compone de dos partes: un lector y una etiqueta.

  • El lector está compuesto por un módulo de radiofrecuencia y una antena que produce un campo electromagnético de alta frecuencia.
  • La etiqueta es normalmente un dispositivo pasivo, lo que significa que no requiere una fuente de energía. Tiene un microchip que almacena y procesa información, así como una antena para recibir y transmitir una señal. Esta etiqueta se utiliza para almacenar los datos y su identificador único.
sistema Arduino RFID NFC

La etiqueta debe estar cerca del lector para poder leer la información que contiene. El proceso implica que el lector genere un campo electromagnético, lo que hace que los electrones se muevan a través de la antena de la etiqueta y alimenten el chip. Luego, el chip envía la información solicitada de vuelta al lector como una señal de radio. El lector detecta esta señal y la transforma en datos, los cuales luego son leídos por Arduino Nano.

Diagrama de cableado entre el módulo RFID-RC522 y Arduino Nano

El módulo RFID-RC522 requiere una tensión de 3.3V, pero los pines de salida de Arduino proporcionan 5V. Por lo tanto:

  • Para garantizar la seguridad, el voltaje de las patillas del Arduino debe estar regulado a 3.3 V antes de conectarlo al módulo RC522.
  • Para fines de prueba, los pines del Arduino pueden conectarse directamente al módulo RC522, pero podría ocasionar problemas en algunos casos.

Este tutorial proporciona dos diagramas de cableado diferentes para ambos casos:

  • Diagrama de cableado entre RC522 y Arduino sin regulador de voltaje
Diagrama de cableado Arduino Nano RFID RC522

This image is created using Fritzing. Click to enlarge image

  • Diagrama de cableado entre RC522 y Arduino con regulador de voltaje
Arduino Nano RFID RC522 con diagrama de cableado con regulación de voltaje

This image is created using Fritzing. Click to enlarge image

Ver La mejor forma de alimentar Arduino Nano y otros componentes.

Como se indica en el diagrama de cableado anterior, pares de resistencias con valores de 1 kΩ y 2 kΩ se utilizan para reducir 5 V a 3,3 V.

  • No es necesario regular el voltaje entre el pin de Arduino y el pin MISO del módulo RC522.
  • Sin embargo, es necesario regular el voltaje entre los pines de Arduino y los pines SS, SCK, MOSI y RST del módulo RC522.

Tabla de cableado del módulo RFID/NFC RC522 y Arduino Nano

RFID/NFC RC522 Arduino Nano
SS → 10
SCK → 13
MOSI → 11
MISO → 12
IRQ not connected
GNDGND
RST → 5
VCC → 3.3V

Código RFID/NFC para Arduino Nano

/* * Este código de Arduino Nano fue desarrollado por es.newbiely.com * Este código de Arduino Nano se proporciona al público sin ninguna restricción. * Para tutoriales completos y diagramas de cableado, visite: * https://es.newbiely.com/tutorials/arduino-nano/arduino-nano-rfid */ #include <SPI.h> #include <MFRC522.h> #define RC522_SS_PIN 10 // The Arduino Nano pin connected to RC522's SS pin #define RC522_RST_PIN 5 // The Arduino Nano pin connected to RC522's RST pin MFRC522 rfid(RC522_SS_PIN, RC522_RST_PIN); void setup() { Serial.begin(9600); SPI.begin(); // init SPI bus rfid.PCD_Init(); // init MFRC522 Serial.println("Tap RFID/NFC Tag on reader"); } void loop() { if (rfid.PICC_IsNewCardPresent()) { // new tag is available if (rfid.PICC_ReadCardSerial()) { // NUID has been readed MFRC522::PICC_Type piccType = rfid.PICC_GetType(rfid.uid.sak); //Serial.print("RFID/NFC Tag Type: "); //Serial.println(rfid.PICC_GetTypeName(piccType)); // print NUID in Serial Monitor in the hex format Serial.print("UID:"); for (int i = 0; i < rfid.uid.size; i++) { Serial.print(rfid.uid.uidByte[i] < 0x10 ? " 0" : " "); Serial.print(rfid.uid.uidByte[i], HEX); } Serial.println(); rfid.PICC_HaltA(); // halt PICC rfid.PCD_StopCrypto1(); // stop encryption on PCD } } }

Pasos R\u00e1pidos

  • Haz clic en el icono de Bibliotecas en la barra izquierda del IDE de Arduino.
  • Busca “MFRC522” y localiza la biblioteca de GithubCommunity.
  • Luego, presiona el Instalar botón para instalar la biblioteca MFRC522.
Biblioteca MFRC522 para Arduino Nano
  • Copia el código anterior y ábrelo con el IDE de Arduino.
  • Haz clic en el botón Subir en el IDE de Arduino para compilar y cargar el código al Arduino Nano.
  • Abre el Monitor Serial.
  • Acérquelas varias etiquetas RFID/NFC al módulo RFID-RC522.
  • Verifica el UID en el Monitor Serial.
COM6
Send
Tap RFID/NFC tag on reader RFID/NFC tag Type: MIFARE 1KB UID: 3A C9 6A CB RFID/NFC tag Type: MIFARE Ultralight or Ultralight C UID: 04 64 34 5A 1E 4E 80
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Video Tutorial

Estamos considerando crear tutoriales en video. Si considera que los tutoriales en video son importantes, suscríbase a nuestro canal de YouTube para motivarnos a crear los videos.

※ NUESTROS MENSAJES

  • No dude en compartir el enlace de este tutorial. Sin embargo, por favor no use nuestro contenido en otros sitios web. Hemos invertido mucho esfuerzo y tiempo en crear el contenido, ¡por favor respete nuestro trabajo!