Controlar LEDs con RFID

Aquí tienes un ejemplo de código para Arduino que utiliza la biblioteca MFRC522 para leer tarjetas RFID y, según la UID de la tarjeta leída, enciende uno de tres LEDs. En este ejemplo se definen tres UIDs (deberás sustituirlas por las que correspondan a tus tarjetas) y se asignan tres pines para los LEDs.

Cpp


#include <SPI.h>
#include <MFRC522.h>

#define SS_PIN 10      // Pin Slave Select del lector RFID
#define RST_PIN 9      // Pin Reset del lector RFID

// Pines para los LEDs
#define LED1_PIN 3     
#define LED2_PIN 4
#define LED3_PIN 5

// Crear instancia del MFRC522
MFRC522 mfrc522(SS_PIN, RST_PIN);

void setup() {
  Serial.begin(9600);        // Inicia comunicación serial
  SPI.begin();               // Inicia el bus SPI
  mfrc522.PCD_Init();        // Inicializa el módulo MFRC522
  Serial.println("Acerca la tarjeta RFID al lector...");

  // Configurar pines de LED como salidas
  pinMode(LED1_PIN, OUTPUT);
  pinMode(LED2_PIN, OUTPUT);
  pinMode(LED3_PIN, OUTPUT);
}

void loop() {
  // Verifica si hay una tarjeta nueva presente y si se puede leer su UID
  if ( !mfrc522.PICC_IsNewCardPresent() || !mfrc522.PICC_ReadCardSerial() )
    return;

  // Construir la cadena UID
  String uidString = "";
  for (byte i = 0; i < mfrc522.uid.size; i++) {
    if(mfrc522.uid.uidByte[i] < 0x10)
      uidString += "0";
    uidString += String(mfrc522.uid.uidByte[i], HEX);
  }
  uidString.toUpperCase();
  Serial.print("UID de tarjeta: ");
  Serial.println(uidString);

  // Apagar todos los LEDs inicialmente
  digitalWrite(LED1_PIN, LOW);
  digitalWrite(LED2_PIN, LOW);
  digitalWrite(LED3_PIN, LOW);

  // Enciende un LED dependiendo de la UID detectada
  if(uidString == "A1B2C3D4") {  // Reemplaza con el UID de la tarjeta 1
    digitalWrite(LED1_PIN, HIGH);
    Serial.println("Tarjeta 1 detectada: LED 1 encendido.");
  } 
  else if(uidString == "11223344") {  // Reemplaza con el UID de la tarjeta 2
    digitalWrite(LED2_PIN, HIGH);
    Serial.println("Tarjeta 2 detectada: LED 2 encendido.");
  } 
  else if(uidString == "DEADBEEF") { // Reemplaza con el UID de la tarjeta 3
    digitalWrite(LED3_PIN, HIGH);
    Serial.println("Tarjeta 3 detectada: LED 3 encendido.");
  } else {
    Serial.println("Tarjeta no reconocida.");
  }

  delay(3000); // Mantiene el estado por 3 segundos antes de leer la siguiente tarjeta
  mfrc522.PICC_HaltA(); // Finaliza la comunicación con la tarjeta para poder leer la siguiente
}
Notas:
  • Asegúrate de tener instalada la librería MFRC522 en el entorno de Arduino.
  • Reemplaza las UID "A1B2C3D4", "11223344" y "DEADBEEF" por las que correspondan a tus tarjetas RFID.
  • Verifica las conexiones del módulo RFID al Arduino (los pines SS y RST, entre otros) según el esquema de tu montaje.
Este código permite encender un LED a la vez dependiendo de la tarjeta leída. Puedes ampliarlo o modificarlo según las necesidades de tu proyecto.
Start PCB design with RFID
Set-Up Arduino project
Select LEDs for project
No schematic yet

Talk to Flux to get started.

No files yet

Documents

    Documents are markdown text files which describe project goals, capture details, or even simulation outputs.

    Assets

    No assets added.

    Missing Violet Robot Vacuum

    Missing Violet Robot Vacuum thumbnail
    Welcome to your new project. Imagine what you can build here.

    Properties

    Properties describe core aspects of the project.

    Pricing & Availability

    Distributor

    Qty 1

    Controls