
Lectura de tarjetas RFID con Arduino: Tutorial paso a paso
En este tutorial vamos a aprender cómo se pueden leer las tarjetas RFID, muy comunes en la vida cotidiana.
A continuación vamos a explicar cómo funcionan estas tarjetas, sus usos y cómo podemos hacer un lector de tarjetas RFID con Arduino.
¿Qué son las tarjetas RFID?
Lo primero de todo, las siglas RFID significan Radio Frequency Identification. En español significa Identificación por radiofrecuencia.
Es una forma de almacenamiento de datos basada en datos que se almacenan en dispositivos (en este caso las tarjetas) que al acercarse a un receptor puede leer la información de este dispositivo y hacer alguna acción como aperturas de puertas, pagos en tiendas….
Las tarjetas RFID lo que llevan en su interior es un circuito que recorre toda la tarjeta que hace de antena que va conectado a un pequeño chip que es el que tiene la información. Las más comunes por dentro de estas el circuito sería de la siguiente manera:
No solo son las tarjetas las que pueden tener este sistema, también lo podemos encontrar en pulseras, etiquetas de ropa, alarmas de tiendas, móviles, llaveros “tag”… Todo esto actualmente se usa para muchísimas cosas. Lo podemos encontrar en nuestras tarjetas de crédito o débito para el pago solo acercando la tarjeta al datáfono, las tarjetas de abono transporte, apertura de puertas electrónicas…
Componentes necesarios para el lector de tarjetas RFID
Todos los componentes están disponibles en shop.flexbot.es
- Placa Arduino (Para este tutorial usaremos Arduino Uno) – Ver en la tienda
- Pantalla LCD (16 x 2), lo puedes comprar con módulo IIC/I2C o no – Ver en la tienda
- Módulo lector de RFID – Ver en la tienda
- Cables de macho a hembra – Ver en tienda
Todos estos componentes están disponibles en un pack en la tienda de Flexbot – Ver pack en tienda
Esquema de lector RFID
- El lector RFID tiene muchas conexiones a la placa de Arduino, así es como tenemos que conectarlo:
- SDA (SS) -> D10
- SCK -> D13
- MOSI -> D11
- MISO -> D12
- IRQ -> NO CONECTADO
- GND -> GND
- RST -> D9
- 3.3v -> 3.3v
El esquema quedaría de la siguiente manera:
![]() |
![]() |
Esquema Pantalla LCD
La pantalla LCD que vamos a usar tiene 16 pines, esto para conectarlo seria una locura, pero hay pantallas LCD que tiene incorporado un pequeño controlador (módulo IIC/I2C) que para de esos 16 pines a solo 4, así es mucho más fácil de trabajar.
2. Para conectar esta pantalla a nuestro Arduino tendremos que conectar 4 pines de la siguiente forma:
- GND -> GND
- VCC -> 5V
- SDA -> A4
- SCL -> A5
Si conectamos la pantalla no tiene que quedar algo así:
![]() |
![]() |
3. Si juntamos el circuito del lector de RFID y el de la Pantalla LCD este sería el esquema del circuito.
![]() |
![]() |
Hora de programar
Este es el código que tenemos que reproducir, para que el proyecto funcione tenemos que importar las librerías del LCD y del Lector:
Libreria del lector RFID – Descargar
Librería Pantalla LCD – Descargar
Puedes descargar el fichero dando click aquí.
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
//Crear el objeto lcd dirección 0x3F y 16 columnas x 2 filas
#include <SPI.h>
#include <MFRC522.h>
#define RST_PIN 9 //Pin 9 para el reset del RC522
#define SS_PIN 10 //Pin 10 para el SS (SDA) del RC522
MFRC522 mfrc522(SS_PIN, RST_PIN); //Creamos el objeto para el RC522
LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);
void setup() {
Serial.begin(9600); //Iniciamos la comunicación serial
SPI.begin(); //Iniciamos el Bus SPI
mfrc522.PCD_Init(); // Iniciamos el MFRC522
lcd.begin(16,2); //Definimos las dimensiones de nuestra pantalla ancho x alto
lcd.backlight();
lcd.setCursor (0, 0);
// Escribimos el Mensaje en el LCD.
lcd.print("Lectura RFID");
Serial.println("Lectura del UID");
lcd.setCursor (0, 1);
lcd.print("Pasar Tarjeta");
}
void loop() {
lcd.setCursor(0, 0);
// Revisamos si hay nuevas tarjetas presentes
if ( mfrc522.PICC_IsNewCardPresent())
{
//Seleccionamos una tarjeta
if ( mfrc522.PICC_ReadCardSerial())
{
// Enviamos serialemente su UID
lcd.clear();
lcd.print("Card UID");
Serial.print("Card UID:");
lcd.setCursor(0, 1);
for (byte i = 0; i < mfrc522.uid.size; i++) {
Serial.print(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " ");
lcd.print(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " ");
Serial.print(mfrc522.uid.uidByte[i], HEX);
lcd.print(mfrc522.uid.uidByte[i], HEX);
}
Serial.println();
// Terminamos la lectura de la tarjeta actual
mfrc522.PICC_HaltA();
}
delay(2000);
lcd.clear();
lcd.setCursor (0, 0);
lcd.print("Lectura RFID");
lcd.setCursor (0, 1);
lcd.print("Pasar Tarjeta");
}
}
Si hemos seguido todos los pasos correctamente, ya podemos disfrutar de nuestro lector de tarjetas RFID y ver que cuáles de todas nuestras tarjetas cuentan con esta tecnología y llevar el proyecto mucho mas allá haciendo controles de acceso a nuestra habitación por RFID, apertura de armarios, traspaso de información…
Si te ha gustado este proyecto y quieres reproducirlo, compártelo por las redes sociales y etiquétanos para verlo! Facebook y Twitter.