CONTENIDO ►
RFID RC522 Arduino (Radio Frequency IDentification) es una identificación sin contacto de un etiqueta mediante un canal de comunicación por radiofrecuencia. El sistema se utiliza ampliamente en muchas industrias: para el control de accesos, el seguimiento de mercancías en cadenas de suministro, la creación de un sistema de bonificaciones, etc. Echemos un vistazo a la conexión del lector de etiquetas RFID a la placa Arduino.
Para esta actividad necesitaremos:
Módulo RFID RC522 Arduino datasheet, pinout
El sistema RFID para placas Arduino consta de dos componentes: un transpondedor (etiqueta) en forma de tarjeta de plástico o llavero y un lector de tarjetas (RC522 módulo lector de etiquetas). La identificación se basa en un identificador único que tiene cada etiqueta rfid. El lector RC522 emite ondas electromagnéticas y las etiquetas (tarjeta de plástico o llavero) devuelven su número de identificación, datos de memoria, etc.

Características modulo RFID MFRC522:
- Alimentación: 3,3 V
- Consumo de corriente: 13-26 μA
- Frecuencia de funcionamiento: 13,56 MHz
- Rango de lectura: 0 – 60 mm
- Interfaz: SPI
- Tamaño: 40 mm x 60 mm
Las etiquetas RFID pueden ser activas o pasivas (sin fuente de alimentación incorporada) y funcionar a distintas frecuencias: LF (125 a 134 kHz), HF (13,56 MHz), UHF (860 a 960 MHz). Los módulos que leen y escriben información en las etiquetas se denominan lectores RFID MFRC522 (transceptor). Es un módulo para Arduino se basa en el chip MFRC522, que permite tanto leer como escribir etiquetas RFID utilizando la tecnología MIFARE.
Conectar modulo lector RFID RC522 Arduino

| MFRC522 | Arduino Uno | Arduino Nano | Arduino Mega |
| GND | GND | GND | GND |
| VCC | 3,3V | 3,3V | 3,3V |
| MOSI | 11 | 11 | 51 |
| MISO | 12 | 12 | 50 |
| SCK | 13 | 13 | 52 |
| SDA | 10 | 10 | 10 |
| RST | 9 | 9 | 9 |
El módulo RC522 se conecta al Arduino a través de la interfaz SPI, véase el diagrama de conexión anterior. Recuerda que el bus SPI en las placas Arduino Uno y Mega está en puertos diferentes. La popular librerías MFRC522.h y SPI.h se utiliza para trabajar con el módulo lector RC522. Después de conectar el lector de tarjetas al microcontrolador, carga el siguiente código para obtener el tipo de etiqueta y el UID (identificador de clave única).
Programa Arduino para módulo RFID RC522
#include "SPI.h" #include "MFRC522.h" #define RST_PIN 9 // RES pin #define SS_PIN 10 // SS pin MFRC522 mfrc522(SS_PIN, RST_PIN); void setup() { Serial.begin(9600); SPI.begin(); mfrc522.PCD_Init(); delay(4); mfrc522.PCD_DumpVersionToSerial(); Serial.println(F("Scan PICC to see UID, SAK, type, and data blocks...")); } void loop() { // сброс цикла, если на считывателе нет карты if ( ! mfrc522.PICC_IsNewCardPresent()) { return; } if ( ! mfrc522.PICC_ReadCardSerial()) { return; } // mostrar información en el monitor serie mfrc522.PICC_DumpToSerial(&(mfrc522.uid)); }
Explicación del código para módulo RFID RC522:
- el UID de la etiqueta se mostrará en el monitor serie cuando acerque una tarjeta o llavero etiquetados al lector de tarjetas;
- en el procedimiento void loop() los datos recibidos se emiten por el puerto serie.
Lector RC522 control de acceso RFID Arduino

Veamos un ejemplo que puede utilizarse para crear un sistema control de acceso RFID con Arduino у módulo lector RC522. El software escaneará el identificador único de la etiqueta, si el UID de la tarjeta coincide con el valor establecido en el código (cardID), entonces se concederá el acceso. Si se acerca al lector una etiqueta desconocida, se denegará el acceso y se iluminará el LED rojo o verde. Cargue el siguiente código en la placa.
Programa Arduino para control de acceso RFID
#include "SPI.h" #include "MFRC522.h" #define RST_PIN 9 // RES pin #define SS_PIN 10 // SS pin byte readCard[4]; String cardID = "20C3935E"; // sustitúyalo por el ID de su etiqueta String tagID = ""; MFRC522 mfrc522(SS_PIN, RST_PIN); void setup() { Serial.begin(9600); SPI.begin(); mfrc522.PCD_Init(); pinMode(5, OUTPUT); pinMode(6, OUTPUT); } void loop() { while (getID()) { if (tagID == cardID) { Serial.println("Access Granted!"); digitalWrite(5, LOW); digitalWrite(6, HIGH); } else { Serial.println("Access Denied!"); } Serial.print("ID: "); Serial.println(tagID); delay(2000); digitalWrite(6, LOW); } } boolean getID() { if (! mfrc522.PICC_IsNewCardPresent()) { return false; } if (! mfrc522.PICC_ReadCardSerial()) { return false; } tagID = ""; for (uint8_t i = 0; i < 4; i++) { tagID.concat(String(mfrc522.uid.uidByte[i], HEX)); } tagID.toUpperCase(); mfrc522.PICC_HaltA(); return true; }
Explicación del código para RFID control de acceso:
- en lugar de un LED verde, puede conectar un relé de estado sólido al Arduino y utilizarlo para controlar, por ejemplo, un timbre.;
- el valor cardID debe establecerse en el valor obtenido de la etiqueta en el primer programa.
Conclusión. El módulo RC522 está diseñado para generar un campo electromagnético que se utiliza para comunicarse con las etiquetas RFID. El lector puede comunicarse con un microcontrolador Arduino con una velocidad máxima de transferencia de datos de hasta 10Mbit por segundo a través de la interfaz periférica serie SPI o el protocolo I2C, mediante los cuales se pueden conectar simultáneamente hasta 128 dispositivos.

Deja una respuesta