Este proyecto tiene como objetivo diseñar un sistema de control de acceso utilizando un lector RFID y una placa Arduino Uno. Un sistema de acceso controlado por RFID permite a los usuarios autorizados ingresar a un lugar restringido mediante tarjetas RFID o llaveros, que almacenan un código único para cada usuario.
Este sistema es ideal para mejorar la seguridad en oficinas, hogares o cualquier lugar que requiera un control de acceso confiable.
MATERIALES NECESARIOS
- 1 Placa Arduino Uno
- 1 Lector RFID RC522
- 1 Tarjeta y/o llavero RFID
- 1 Módulo de relevador (opcional, si se desea controlar un dispositivo como una puerta)
- 1 LED (opcional, para indicar si el acceso es permitido o denegado)
- 1 Resistor de 220 ohmios (para el LED)
- Cables de conexión
- Protoboard

CONEXIONES
Conecta el lector RFID RC522 al Arduino Uno de la siguiente manera:
- VCC del RC522 a 5V del Arduino
- GND del RC522 a GND del Arduino
- SDA del RC522 al pin 10 del Arduino
- SCK del RC522 al pin 13 del Arduino
- MOSI del RC522 al pin 11 del Arduino
- MISO del RC522 al pin 12 del Arduino
- RST del RC522 al pin 9 del Arduino
CÓDIGO
El siguiente código permite leer la tarjeta o el llavero RFID, y verificar si la tarjeta coincide con una tarjeta autorizada. Si la tarjeta es autorizada, encenderá un LED (o activará un relevador).
Primero, vas a necesitar instalar la librería MFRC522 para el lector RFID en el IDE de Arduino. Podes hacerlo desde el menú “Sketch” > “Incluir Librería” > “Administrar Bibliotecas”, y busca “MFRC522”
#include <SPI.h>
#include <MFRC522.h>
#define SS_PIN 10
#define RST_PIN 9
#define LED_PIN 7
MFRC522 mfrc522(SS_PIN, RST_PIN); // Crear una instancia del lector RFID
// UID autorizado (este debe coincidir con la tarjeta o llavero que desees usar)
byte tarjetaAutorizada[4] = {0xXX, 0xXX, 0xXX, 0xXX}; // Reemplaza los XX con tu UID
void setup() {
Serial.begin(9600); // Iniciar comunicación serial
SPI.begin(); // Iniciar bus SPI
mfrc522.PCD_Init(); // Iniciar el lector RFID
pinMode(LED_PIN, OUTPUT);
digitalWrite(LED_PIN, LOW);
Serial.println(“Sistema de control de acceso RFID”);
}
void loop() {
// Verificar si hay una tarjeta presente
if (!mfrc522.PICC_IsNewCardPresent()) {
return;
}
// Leer la tarjeta
if (!mfrc522.PICC_ReadCardSerial()) {
return;
}
// Comparar el UID de la tarjeta con el autorizado
if (compararTarjetas(mfrc522.uid.uidByte, tarjetaAutorizada)) {
Serial.println(“Acceso permitido”);
digitalWrite(LED_PIN, HIGH); // Encender el LED (Acceso permitido)
delay(3000); // Mantener el LED encendido por 3 segundos
digitalWrite(LED_PIN, LOW); // Apagar el LED
} else {
Serial.println(“Acceso denegado”);
digitalWrite(LED_PIN, LOW); // Mantener el LED apagado (Acceso denegado)
}
// Detener la lectura de la tarjeta
mfrc522.PICC_HaltA();
}
bool compararTarjetas(byte *tarjetaLeida, byte *tarjetaAutorizada) {
for (byte i = 0; i < 4; i++) {
if (tarjetaLeida[i] != tarjetaAutorizada[i]) {
return false;
}
}
return true;
}
EXPLICACIÓN DEL CÓDIGO
- Librerías: El código utiliza las librerías SPI para la comunicación SPI entre el Arduino y el lector RFID, y MFRC522 para interactuar con el módulo RFID.
- Comparar Tarjetas: El código compara el UID de la tarjeta leída con el UID almacenado en el sistema como autorizado.
- LED: Un LED indica si el acceso es permitido o denegado.
- Salida por Serial: Los resultados se muestran en el Monitor Serial para facilitar la depuración.
FUNCIONAMIENTO
- Cuando una tarjeta RFID o un llavero es colocado cerca del lector, el Arduino lee el UID de la tarjeta y lo compara con el UID autorizado en el código.
- Si el UID coincide, el LED se enciende durante 3 segundos, indicando que el acceso es permitido. De lo contrario, el acceso es denegado y el LED permanece apagado.

Encontrá en nuestra web todo lo que buscás para tus proyectos, desde componentes hasta kits completos. ¡Conseguí lo necesario para transformar tus ideas en realidad!
No te pierdas nuestras próximas notas, donde vamos a presentar otros proyectos Arduino innovadores. ¡Seguí nuestras publicaciones y descubrí nuevas ideas cada semana!
Hasta la próxima.