Haga clic para más productos.
No se encontraron productos.

Tutorial módulo Lector RFID RC522

381685

Los lectores RFID(Radio Frequency IDentification) en la actualidad están teniendo bastante acogida en los sistemas de identificación, su uso abarca desde sistemas de seguridad, acceso de personal, identificación y logística de productos, como llaves de puertas eléctricas, entre otras aplicaciones.

Su principio de funcionamiento consiste en pasar un TAG, cerca de un lector RFID, el TAG tiene la capacidad de enviar información al lector. Dicha información puede ser desde un simple código o todo un paquete  de información guardo en la memoria del Tag.

Los TAGs viene en diferentes modelos, los más comunes son en tarjetas y en llaveros, pero también vienen como etiquetas adhesivas e incluso ya viene incrustados en algunos productos. Los Tags tienen internamente una antena y un microchip, encargado de realizar todo el proceso de comunicación, la energía lo obtiene de la señal de radiofrecuencia, que si bien la energía en la señal es pequeña, es suficiente para hacer trabajar el microchip, esto es la razón por la que es necesario acercarlos a una pequeña distancia generalmente menor a 10 cm. Pero existen Tags activos, que incorporan baterías, estos tiene alcance de varios metros de distancia.

    

Módulo RFID RC522

Es el que usaremos en este tutorial, este módulo funciona como Lector y Grabador de Tags RFID.

 Módulo RFID RC522

Este módulo utiliza un sistema de modulación y demodulación de 13.56MHz, frecuencia que en la actualidad  utiliza la tecnología RFID.
 

EL módulo se comunica por SPI, por lo que se puede implementar con cualquier microcontrolador con interfaz SPI, como un Arduino.

Bien, empecemos a armar nuestro proyecto:

  

1. Conexión del entre el módulo RFID y Arduino
  

Módulo RC522

Arduino Uno, Nano

Arduino Mega

SDA (SS)

10

53

SCK

13

52

MOSI

11

51

MISO

12

50

IRQ

No conectado

No conectado

GND

GND

GND

RST

9

9

3.3V

3.3V

3.3V


  

Conexion RFID RC522 y arduino

    



    
Como se observa en la conexión, el módulo trabaja con un voltaje de 3.3V, por lo que la parte lógica también debería trabajar con el mismo nivel de voltaje, para prueba y testeo se puedo conectar directamente a los pines del Arduino (nivel TTL 5V), pero se recomienda usar conversores de niveles de voltaje.

  

2. Programación del Módulo RC522: Lectura del código de identificación


Para poder trabajar el Modulo en Arduino es necesario descargar su librería correspondiente, la que usaremos será una de las más comunes, la desarrollada por Miguel Balboa.

         Librería RFID

Una vez descargada, importamos la librería a nuestro IDE de Arduino, con esto estamos listos para programar.

  

A continuación se muestra un sketch para leer el código de identificación de nuestros Tags

#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

void setup() {
	Serial.begin(9600); //Iniciamos la comunicación  serial
	SPI.begin();        //Iniciamos el Bus SPI
	mfrc522.PCD_Init(); // Iniciamos  el MFRC522
	Serial.println("Lectura del UID");
}

void loop() {
	// Revisamos si hay nuevas tarjetas  presentes
	if ( mfrc522.PICC_IsNewCardPresent()) 
        {  
  		//Seleccionamos una tarjeta
            if ( mfrc522.PICC_ReadCardSerial()) 
            {
                  // Enviamos serialemente su UID
                  Serial.print("Card UID:");
                  for (byte i = 0; i < mfrc522.uid.size; i++) {
                          Serial.print(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " ");
                          Serial.print(mfrc522.uid.uidByte[i], HEX);   
                  } 
                  Serial.println();
                  // Terminamos la lectura de la tarjeta  actual
                  mfrc522.PICC_HaltA();         
            }      
	}	
}

   

Como se observa es fácil de entender, pero expliquemos las funciones referentes al módulo RC522
  
 Instanciar el RC522

#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); 

Es necesario utilizar la librería MFRC522.h, solo es necesario especificar los pines Reset y SDA(SS) del módulo, los demás pines trabajan con los pines SPI del Arduino.

   

Iniciar el RC522

SPI.begin();        //Iniciamos el Bus SPI
mfrc522.PCD_Init(); // Iniciamos  el MFRC522

Esta función inicia y configura al RC522 para su posterior lectura, solo es necesario llamarlo una vez por lo que generalmente se lo llama en void setup()

   

Ver si hay una tarjeta presente

mfrc522.PICC_IsNewCardPresent()

Esta función nos devuelve verdadero o falso dependiendo si hay una tarjeta presente cerca al módulo RC522.

  

Seleccionar una tarjeta para la lectura

     mfrc522.PICC_ReadCardSerial()

Se llama a esta función cuando queremos comunicarnos con una tarjeta, nos devuelve un valor verdadero si logra seleccionar una tarjeta para la lectura, de lo contrario nos retorna un valor falso.
  

Obtener el tamaño del código de identificación

mfrc522.uid.size

Nos retorna el tamaño en Bytes del código de identificación de la tarjeta seleccionada.

  
Leer el código de identificación

mfrc522.uid.uidByte

Para acceder al código de identificación es recomendable indexar  la variable por ejemplo mfrc522.uid.uidByte[0] para el byte en la posición inicial.
  
Finalizar la lectura.

mfrc522.PICC_HaltA();         


Con esta función le indicamos que hemos terminado la lectura de la tarjeta presente y IsNewCardPresent() devolverá falso para esta tarjeta mientras no se retire. Si después de retirar la tarjeta, si se ingresa nuevamente la misma tarjeta se le considera como una nueva tarjeta.

  

  

En el sketch, el código de identificación lo enviamos por el puerto serial, para visualizar el código es necesario abrir el Monitor Serial del IDE de Arduino.

   

Monitor Serial RFID

    

  
3. Una Aplicación Simple: Control de acceso usando RFID

  

Bien, visto el ejemplo anterior, ahora apliquémoslo para un control de acceso, que puedes aplicarse en una puerta eléctrica, caja fuerte, sistema de encendido, desactivar alarmas, etc.

Para este ejemplo estamos usando 4 Tags de los cuales solo dos deben tener acceso al sistema. Para implementar esto partimos del sketch anterior y solo le agregamos unas líneas más al final del programa para comparar los códigos y determinar si tienen o no acceso.

  
A continuación se muestra el Sketch.

 

#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

void setup() {
	Serial.begin(9600); //Iniciamos La comunicacion serial
	SPI.begin();        //Iniciamos el Bus SPI
	mfrc522.PCD_Init(); // Iniciamos el MFRC522
	Serial.println("Control de acceso:");
}

byte ActualUID[4]; //almacenará el código del Tag leído
byte Usuario1[4]= {0x4D, 0x5C, 0x6A, 0x45} ; //código del usuario 1
byte Usuario2[4]= {0xC1, 0x2F, 0xD6, 0x0E} ; //código del usuario 2
void loop() {
	// Revisamos si hay nuevas tarjetas  presentes
	if ( mfrc522.PICC_IsNewCardPresent()) 
        {  
  		//Seleccionamos una tarjeta
            if ( mfrc522.PICC_ReadCardSerial()) 
            {
                  // Enviamos serialemente su UID
                  Serial.print(F("Card UID:"));
                  for (byte i = 0; i < mfrc522.uid.size; i++) {
                          Serial.print(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " ");
                          Serial.print(mfrc522.uid.uidByte[i], HEX);   
                          ActualUID[i]=mfrc522.uid.uidByte[i];          
                  } 
                  Serial.print("     ");                 
                  //comparamos los UID para determinar si es uno de nuestros usuarios  
                  if(compareArray(ActualUID,Usuario1))
                    Serial.println("Acceso concedido...");
                  else if(compareArray(ActualUID,Usuario2))
                    Serial.println("Acceso concedido...");
                  else
                    Serial.println("Acceso denegado...");
                  
                  // Terminamos la lectura de la tarjeta tarjeta  actual
                  mfrc522.PICC_HaltA();
          
            }
      
	}
	
}

//Función para comparar dos vectores
 boolean compareArray(byte array1[],byte array2[])
{
  if(array1[0] != array2[0])return(false);
  if(array1[1] != array2[1])return(false);
  if(array1[2] != array2[2])return(false);
  if(array1[3] != array2[3])return(false);
  return(true);
}

   

Y el resultado lo podemos observar al pasar los Tags y visualizarlo en el monitor serial.

  

Monitor serial RFID aplicacion

   

  
En lugar de enviarlo serialmente la confirmación se puede programar para activar una salida digital, que puede estar conectado a una chapa eléctrica, una alarma, etc. dependerá de la aplicación en particular que están trabajando.

Es bueno aclarar que si bien cumple el objetivo, no es una forma 100% segura, cualquiera que sepa del tema podría clonar las tarjetas. Para una mayor seguridad es necesario trabajar con los bloques de la memoria interna del TAG, pudiéndose configurar una clave para la lectura, además se podría trabajar con un código mayor a los 4 bytes del UID, incluso se podrían trabajar con varios datos. (La lectura y escritura de bloques de memoria se verá en un próximo tutorial)

  

Productos relacionados
Artículos relacionados
138 Comentarios
  • jo***

    jo*** 07/08/2023 Responder

    Con respecto a este lector tambien recepta como antena para otros lectores rfid?
  • jo**

    jo** 01/06/2023 Responder

    alguien me podria ayudar es que estoy haciendo un verificador de entrada lo que quiero saber es como hacer mi codigo ya que la funcion que le quiero dar es al pasar la tarjeta haga que se muestre un mensaje en una pantalla lcd donde diga que si la tarjeta es valida o no y a su vez haga un ruido y prenda una luz sies valido y si es invalido que haga otro ruido y prenda otro led
  • Al******* ****ol

    Al******* ****ol 14/10/2022 Responder

    Buenas.

    Estoy adquiriendo un cargador de auto eléctrico y viene con una tarjeta RFID con un sistema de Mifare, puede ser compatibles con los llaveros o pulseras RFID?
  • Le*** ****os

    Le*** ****os 08/09/2022 Responder

    Buenas tardes, tengo dos preguntas :1 sabes de algún modulo que lea tarjetas HID y que talvez tenga protocolo de comunicación RS232? 2:un modulo que me sirva para hacer la comunicación?

    Gracias
  • LA*****

    LA***** 20/05/2022 Responder

    una pregunta cual seria el pin en el rfid que funciona para dar la señal de entrada
  • Pi**

    Pi** 16/11/2021 Responder

    Buenas tardes, podría aplicarse con algoritmos anticolisiones? Osea quisiera poder ver de alguna manera observar el funcionamiento de un algoritmo anticolisiones.
  • Ed*** ****la

    Ed*** ****la 03/10/2021 Responder

    Saludo. Gracias.
    Cómo cambio la comunicación de SPI a UART
    Gracias
  • Ga*****

    Ga***** 02/03/2021 Responder

    hola estoy haciendo un sistema para mis puertas tengo un actuador lineal conectado a un arduino y quiero poner un lector rfid y llevar el control de apertuar y cierres. me gustaria ponerme en contacto con ustedes para comprar todo lo que necesito y me asesoren en la instalacion. gracias

    • JO*** ******EL

      JO*** ******EL 16/06/2021 Responder

      Yo te puedo hacer el diseño y sistema, contactame
  • Os*** *****do

    Os*** *****do 19/01/2021 Responder

    hola buenos dias con el lector rfid se puede realizar lectura y escritura de los chips nfc ntag213?
  • sh**** ******* ****ta

    sh**** ******* ****ta 02/12/2020 Responder

    Hola, tengo un proyecto en gestión y me preguntaba si hay alguna manera de programar dos Módulos MFRC-522 a la vez.
    • yo******

      yo****** 26/09/2021 Responder

      SI, es totalmente posible mediante SPI.
      Saludos
  • Jo*** p

    Jo*** p 30/10/2020 Responder

    Hola tengo un tag rfid en un tarro de tinta que se consume con las horas ese chip llega a cero y pide cambio puedo resetearlo para seguir usandolo ??
  • Ju** *******ez

    Ju** *******ez 29/10/2020 Responder

    Hola que tal! espero me puedan apoyar con mi duda:
    ¿Es posible que funcione sin que tenga que soldar los pines al módulo?
  • He****

    He**** 03/10/2020 Responder

    Hola tengo el modulo RFID-RC522 y quisiera saber si se puede clonar 4 tarjetas por ejemplo, es decir que tengan mismo numero de identificación.
  • CA****

    CA**** 17/07/2020 Responder

    Hola a todos! Les quiero preguntar si alguien tiene el código para añadir un led a la placa(directamente) y que se prenda cada vez que detecta una tarjebta. Por favor si alguien sabe digame
  • Jo***

    Jo*** 30/04/2020 Responder

    Hola!
    Un tutorial muy interesante!
    Si queremos grabar y leer mensajes NDEF también lo podemos hacer?
    Me refiero a que si con esta librería y ejemplos y el MIFARE RC522 en un Arduino Mega es posible realizarlo
    muchas gracias
    saludos
  • hi****

    hi**** 14/03/2020 Responder

    me dice eror a que ago?
  • cr********

    cr******** 05/12/2019 Responder

    Hola, se le puede reenombrar un valor a o codigo a las tarjetas o el pin que se le acerca al hacer el contacto como lo hago =?

  • Sa****** ***as

    Sa****** ***as 29/10/2019 Responder

    Buen Día,
    Me gustaría saber como puedo hacer que una tarjeta y un llavero puedan desactivar una alarma que va conectado al pin 3 del arduino, ya he tratado pero no me funciona, debo mencionar que estoy iniciando en esto, agradezco mucho su apreciable ayuda.

    Saludos.
  • Da***

    Da*** 06/10/2019 Responder

    Hola, tengo una pregunta como puedo hacer que la información obtenida de la tarjeta se guarde a una base de datos, soy nuevo en esto me podría ayudar
  • Al****

    Al**** 30/09/2019 Responder

    Hola buenas tardes, gracias por compartir conocimiento....no sé nada de estos temas y estoy leyendo para comenzar con algo....mi pregunta es....se puede con esta aplicación hacer que el sensor constantemente lea la tarjeta o llavero y si no la detecta, active por ejemplo una alarma o un relé, gracias.
  • Sa**** **ra

    Sa**** **ra 08/09/2019 Responder

    Y Como Hago Para Que El Led Se Apague De Forma Automática Apenas Retire El Tag RFID?
  • Iv**

    Iv** 07/08/2019 Responder

    Buenas quería saber como puedo hacer para que con una misma tarjeta, según la cantidad de veces que la apoye o cantidad de tiempo la apoye, haga dos cosas diferentes. Se podrá?
  • Jh******* **az

    Jh******* **az 28/07/2019 Responder

    buenos dias como podria agregar muchas tarjetas agradezco de antemano
  • ES***** ******** ** LA

    ES***** ******** ** LA 09/07/2019 Responder

    como puede usar un aduino con 200 tarjeta rdid
  • Or***** *****el

    Or***** *****el 08/06/2019 Responder

    hola. Alguien podria ayudarme? he montado un modulo lector rfid y funciona correctamente, pero solo me permite leer un llavero a la vez. se que al codigo le falta alguna linea pero no puedo resolverlo, soy muy nuevo en esto y estoy aprendiendo. Gracias porla ayuda.
    • ca****

      ca**** 14/06/2019 Responder

      #include
      #include

      #define SS_PIN 10
      #define RST_PIN 9

      MFRC522 rfid(SS_PIN, RST_PIN); // Instance of the class

      MFRC522::MIFARE_Key key;

      // Init array that will store new NUID
      byte nuidPICC[4];

      void setup() {
      Serial.begin(9600);
      SPI.begin(); // Init SPI bus
      rfid.PCD_Init(); // Init MFRC522

      for (byte i = 0; i < 6; i++) {
      key.keyByte[i] = 0xFF;
      }

      Serial.println(F("This code scan the MIFARE Classsic NUID."));
      Serial.print(F("Using the following key:"));
      printHex(key.keyByte, MFRC522::MF_KEY_SIZE);
      }

      void loop() {

      // Reset the loop if no new card present on the sensor/reader. This saves the entire process when idle.
      if ( ! rfid.PICC_IsNewCardPresent())
      return;

      // Verify if the NUID has been readed
      if ( ! rfid.PICC_ReadCardSerial())
      return;

      Serial.print(F("PICC type: "));
      MFRC522::PICC_Type piccType = rfid.PICC_GetType(rfid.uid.sak);
      Serial.println(rfid.PICC_GetTypeName(piccType));

      // Check is the PICC of Classic MIFARE type
      if (piccType != MFRC522::PICC_TYPE_MIFARE_MINI &&
      piccType != MFRC522::PICC_TYPE_MIFARE_1K &&
      piccType != MFRC522::PICC_TYPE_MIFARE_4K) {
      Serial.println(F("Your tag is not of type MIFARE Classic."));
      return;
      }

      if (rfid.uid.uidByte[0] != nuidPICC[0] ||
      rfid.uid.uidByte[1] != nuidPICC[1] ||
      rfid.uid.uidByte[2] != nuidPICC[2] ||
      rfid.uid.uidByte[3] != nuidPICC[3] ) {
      Serial.println(F("A new card has been detected."));

      // Store NUID into nuidPICC array
      for (byte i = 0; i < 4; i++) {
      nuidPICC[i] = rfid.uid.uidByte[i];
      }

      Serial.println(F("The NUID tag is:"));
      Serial.print(F("In hex: "));
      printHex(rfid.uid.uidByte, rfid.uid.size);
      Serial.println();
      Serial.print(F("In dec: "));
      printDec(rfid.uid.uidByte, rfid.uid.size);
      Serial.println();
      }
      else Serial.println(F("Equipo Recibido."));

      // Halt PICC
      rfid.PICC_HaltA();

      // Stop encryption on PCD
      rfid.PCD_StopCrypto1();
      }


      /**
      * Helper routine to dump a byte array as hex values to Serial.
      */
      void printHex(byte *buffer, byte bufferSize) {
      for (byte i = 0; i < bufferSize; i++) {
      Serial.print(buffer[i] < 0x10 ? " 0" : " ");
      Serial.print(buffer[i], HEX);
      }
      }

      /**
      * Helper routine to dump a byte array as dec values to Serial.
      */
      void printDec(byte *buffer, byte bufferSize) {
      for (byte i = 0; i < bufferSize; i++) {
      Serial.print(buffer[i] < 0x10 ? " 0" : " ");
      Serial.print(buffer[i], DEC);
      }
      }
  • Ri***** *re

    Ri***** *re 03/06/2019 Responder

    Excelente la explicación sobre el manejo del modulo, quisiera saber hasta cuantos módulos RFID se puede manejar con un Arduino UNO, ya sea usando expansores de pines, multiplexores o haciendo uso de los buses SPI o I2C. La consulta nace por la necesidad de controlar (autorización y seguridad) de 64 equipos móviles (celulares y tablets) de prueba ubicados dentro de un armario.
  • Di*** *****ga

    Di*** *****ga 28/05/2019 Responder

    AYUDA! configure los pines MISO Y MOSI EN D7 Y D8 Y NO ME SIRVE, ES UNA PLACA PCB Y NO PUEDO CAMBIARLOS, HAY ALGUNA MANERA DE ARREGLAR EL PROBLEMA?
  • Ci**

    Ci** 22/05/2019 Responder

    No consigo que funcione, el código compila y carga correctamente, e imprime "Lectura del UID:" sin problemas, pero cuando acerco una tarjeta no reacciona.
  • Hu** ****** **az

    Hu** ****** **az 28/04/2019 Responder

    Hola Mundo.

    El programa realiza lectura de tag y reconoce el autorizado, con lo que envio señal a modulo rele para activar cerradura electrica. El problema es pasado un tiempo ( un par de horas) este se bloquea y ya no lee ninguu tag. Sera necesario colocar convertidor 5v a 3,3v . Si la respuesta es positiva cual recomiendas considerando que el chip RC522 tiene 5 pines en uso mas gnd y 3V3.
    Gracias de antemano.
  • Di*** ********* *****ja

    Di*** ********* *****ja 07/04/2019 Responder

    Buenos días,

    Estoy intentando hacer una aplicación que lea el contenido de una pegatina nfc. Todos los ejemplos que veo lo que hacen es leer el código de la pegatina y el número de serie pero lo que necesito es leer el contenido. Si he grabado el mensaje "Hola don pepito" que la aplicación de escritorio me lea ese "Hola don pepito" y no el número de serie de la tarjeta. Los ejemplos que hay en internet se limitan a leer el serial de la pegatina.
    He usado programas de ejemplo de internet que se supone que graban información en la pegatina pero no funcionan por que cuando leo la pegatina con NFC tools sale que está vacía

    Hasta ahora cuando leo la pegatina lo que me devuelve son números o códigos extraños y no el texto o el contenido que es lo que me interesa.

    He usado pegatinas MIFARE ultralight, un lector RFID RC522 de funduino y arduino uno. He probado con la librería y RFID.h y tampoco funciona

    Gracias por anticipado
    • Di*** ********* *****ja

      Di*** ********* *****ja 07/04/2019 Responder

      He visto que he mandado la pregunta por triplicado. Perdón pero no me he dado cuenta. Si hace falta eliminar los mensajes repetidos. Lo siento
  • Di*** ********* *****ja

    Di*** ********* *****ja 07/04/2019 Responder

    Buenos días,

    Estoy intentando hacer una aplicación que lea el contenido de una pegatina nfc. Todos los ejemplos que veo lo que hacen es leer el código de la pegatina y el número de serie pero lo que necesito es leer el contenido. Si he grabado el mensaje "Hola don pepito" que la aplicación de escritorio me lea ese "Hola don pepito" y no el número de serie de la tarjeta. Los ejemplos que hay en internet se limitan a leer el serial de la pegatina.
    He usado programas de ejemplo de internet que se supone que graban información en la pegatina pero no funcionan por que cuando leo la pegatina con NFC tools sale que está vacía

    Hasta ahora cuando leo la pegatina lo que me devuelve son números o códigos extraños y no el texto o el contenido que es lo que me interesa.

    He usado pegatinas MIFARE ultralight, un lector RFID RC522 de funduino y arduino uno. He probado con la librería y RFID.h y tampoco funciona

    Gracias por anticipado
  • Di*** ********* *****ja

    Di*** ********* *****ja 07/04/2019 Responder

    Buenos días,

    Estoy intentando hacer una aplicación que lea el contenido de una pegatina nfc. Todos los ejemplos que veo lo que hacen es leer el código de la pegatina y el número de serie pero lo que necesito es leer el contenido. Si he grabado el mensaje "Hola don pepito" que la aplicación de escritorio me lea ese "Hola don pepito" y no el número de serie de la tarjeta. Los ejemplos que hay en internet se limitan a leer el serial de la pegatina.
    He usado programas de ejemplo de internet que se supone que graban información en la pegatina pero no funcionan por que cuando leo la pegatina con NFC tools sale que está vacía

    Hasta ahora cuando leo la pegatina lo que me devuelve son números o códigos extraños y no el texto o el contenido que es lo que me interesa.

    He usado pegatinas MIFARE ultralight, un lector RFID RC522 de funduino y arduino uno. He probado con la librería y RFID.h y tampoco funciona

    Gracias por anticipado
  • Cr******

    Cr****** 28/03/2019 Responder

    Hola tengo una duda. Lo que pasa es que necesito utilizar arduino con RFID pero con una frecuencia que este más menos en un rango de 120 a 135 kHz. Y esto con un módulo Bluetooth . Solo necesito que me lea y poder transferir lo que lee .. se puede ???
  • os*****

    os***** 11/02/2019 Responder

    hola, tengo la duda de como configurar el modulo a su maxima potencia, me puedes explicar como por favor
  • Ri*****

    Ri***** 04/02/2019 Responder

    hola, cuando escribo mi codigo, me pone un error 'compareArray' cannot be used as a function, y antes me ponia que no estaba en el scope
  • Ma***

    Ma*** 16/01/2019 Responder

    hola, me sirvió mucho, quisiera hacer que cuando pase pase la tarjeta un led se quede encendido hasta que vuelva a pasar la tarjeta, como lo hago? Agradezco tu respuesta
  • Ma****

    Ma**** 19/12/2018 Responder

    Disculpen amigos de casualidad saben como le podre hacer para que el tag atraviese una puerta metálica y lo lea desde afuera sin abrir orificios ? Mas que nada por el vandalismo pueden dañar el lector RFID Golpenadolo
  • di*** ******to

    di*** ******to 13/12/2018 Responder

    disculpa que te moleste, una pregunta quiero prender una luz del pasillo con un tag y apagarla en el otro extremo se puede
  • Ri***** ******* ****ez

    Ri***** ******* ****ez 09/12/2018 Responder

    Buen dia, compre ese modulo y me vino con un llavero y una tarjeta, todo perfecto pero a la hora de colocar mi tarjeta de acceso a la universidad no la lee, tambien compre un anillo nfc y tampoco lo lee, sera por la frecuencia? se puede modificar de alguna forma eso en el modulo? o en otro caso cual otro modulo podría comprar (una opcion barata porque estoy chihuan)
    Este es el anillo que compre.
    "https://es.aliexpress.com/item/EastVita-nuevo-Smart-anillos-NFC-impermeable-multifuncional-inteligente-anillo-inteligente-usar-dedo-Digital-anillo-Accesorios/32867462837.html?spm=a2g0s.9042311.0.0.503d63c0n6TWRj"
  • Jo*****

    Jo***** 25/11/2018 Responder

    Buenas tardes, me pareció interesante, como podría hacer para desarrollar una aplicación móvil en Android Studio y comunicarla con el lector RFID, gracias.
  • ju**

    ju** 20/11/2018 Responder

    Hola
    mi pregunta es tengo dos tarjetas NFC shieldv1.6 quiero que una tarjeta sea el lector y otra tarjeta sea el tag se puede llegar a realizar este experimento o solo funciona con tarjetas pasivas
  • Er***

    Er*** 14/11/2018 Responder

    hola, que se le agregaria a la programación para activar una salida digital (lo usaré para una cerradura electrica) y que puertos tendría que usar del arduino
  • se*******

    se******* 16/10/2018 Responder

    hola mi pregunta es la siguiente a la hora de ser reconocido la tarjeta rfid del arduino quiero que envie ese codigo aun computador para activar un video.
  • ed**

    ed** 08/10/2018 Responder

    hola disculpa si quisiera conectar con arduino mega cual tendria que modificar ? estuve probando con el uno si me funciona pero cuando lo conecto con el mega no pasa nada ayudemme porfa gracias
  • mi****

    mi**** 01/10/2018 Responder

    disculpa es necesario cambiar las frecuencias si es que se deseara usar un sensor que me lea a distancias de entre 8 a 10 metros ????
    y cual me recomendarías para esas distancias???
  • ex****** ** ***** *****es

    ex****** ** ***** *****es 28/08/2018 Responder

    Hola muy buenas. Me gustaría saber si algún usuario tuviera un tutorial para este lector. Un saludo!!
  • ma*****

    ma***** 11/07/2018 Responder

    Hola, se podrian conectar dos modulos RC522 en paralelo al mismo arduino, ya que ambos trabajan con las mismas tags rfid
  • Cr********

    Cr******** 07/07/2018 Responder

    Hola como se podria aumentar la distancia para este RFID como unos 15 cm ?
  • Ri***** A

    Ri***** A 30/05/2018 Responder

    Hola, estimados, como puedo realizar la configuración de RFID mas la configuración HTML, porque hasta el minuto me funciona una de las dos, pero no las dos juntas, será un problema del void loop?.

    De antemano muchas gracias.

    Atento a comentarios.

    Saludos cordiales.-
  • Ch******* M

    Ch******* M 08/04/2018 Responder

    Hola, quisiera que me ayudes en un problema con mi modulo rfid, tengo arduino uno original, modulo rfid, conecte los cables de acuerdo a tu modelo, copie y pegue tu codigo pero lo increible es que no me lee las tarjetas rfid, ni modelo llavero ni el tipo tarjeta de credito, quisiera saber si hay alguna forma para saber si mi modulo rfid esta dañado?, gracias por tu ayuda
  • Ch*******

    Ch******* 08/04/2018 Responder

    Hola estuve navegando por una solucion a mi problema, sucede que tengo el arduino original, tengo el modulo rfid rc522 realizo las conexiones tal y como indicas pero cuando acerco las tarjetas de llave y plano no lee absolutamente nada, acaso esta quemado mi modulo o como puedo saber si esta en optimas condicones mi modulo rfid, gracias por tu ayuda
  • Ju**

    Ju** 08/04/2018 Responder

    Buenas tardes, he agregado el codigo en el array para encender un led pero me tira error. Podrian ayudarme? y si quisiera conectar un Rele?


    Serial.print(" ");
    //comparamos los UID para determinar si es uno de nuestros usuarios
    if(compareArray(ActualUID,Usuario1))

    Serial.println("Acceso concedido...");
    digitalWrite (2,HIGH);
  • lu**

    lu** 03/04/2018 Responder

    hola que tal como puedo enlazar una base de datos con excel y poder agregar mas de 100 tags (es proyecto escolar) y actualizar el acceso en tiempo real
  • Ro***** ****no

    Ro***** ****no 17/03/2018 Responder

    Hola que tal, Al abrir la consola en efecto despliega la leyenda "Lectura del UID" sin embargo al aproximar las tarjetas no son detectadas por el RFID. ¿Alguien puede decirme como detectar si el propio Hardware funciona?
  • Ma*** *******rn

    Ma*** *******rn 13/03/2018 Responder

    Alguien me puede dar una web o algun archivo donde haya referencias de la libreria, explicando cada función, no solo las utilizadas en estos ejemplos sino los que contienen todas las librerias.
  • ju**

    ju** 09/03/2018 Responder

    hola buenas tardes, soy nuevo y les pido un apoyo, estoy elaborando un proyecto de seguimiento para alumnos en un colegio, necesito dos lectores de alcance de lectura de 80 metros, que tipo de tags,o equipos rfid me recomiendan, de antemano gracias.
  • Am***

    Am*** 05/03/2018 Responder

    Me has salvado la vida!! <3 Me esta volviendo loca buscando una explicación como esta.
    Muchas gracias por compartir el código, me ha sido de MUCHISIMA utilidad!
    Explicado de manera muy, muy detallada y mas claro imposible! ;)
  • Da***

    Da*** 24/02/2018 Responder

    Hola buenas, muy buen tutorial. Hay alguna forma de comprobar si la tarjeta o el llavero están defectuosos? He realizado varios tipos de programacion y probado con diferentes libreria y no me da problemas en relacion a la programación pero no me detecta ni el llavero ni la tarjeta. Un saludo y gracias de antemano.
  • sa**

    sa** 13/02/2018 Responder

    saludos. utilice el código todo funciono muy bien. Soy nuevo en arduino, me gustaría que el control de acceso se haga cada solo 1 vez por hora. Gracias por su ayuda..
  • Ca**** ****ia

    Ca**** ****ia 29/01/2018 Responder

    Tengo un modulo RFID RC522 en un Arduino para manejar un un lector de tarjeta y un trinquete de una registradora. Se está calentando y se aísla. Que puede estar pasando.
  • Ga*****

    Ga***** 05/01/2018 Responder

    Saludos. Una pregunta, ¿Se puede utilizar más de un módulo RFID RC522 en un solo Arduino Mega?. Desde ya agradezco su pronta ayuda.
  • Da****

    Da**** 04/01/2018 Responder

    Hola, amigo. Una pregunta: ¿como puedo hacer que cuando pase la tarjeta RFID su código se escriba en windows en cualquier formulario o editor de texto como si estuviera usando un teclado?
  • AN*****

    AN***** 04/12/2017 Responder

    Buen dia hasta cuantos tags o tarjetas puedo usar con el arduino y solo quero para controles de acceso de una oficina u edificio?
  • Jo***

    Jo*** 28/11/2017 Responder

    Hola ! Una pregunta sencilla: Los llaveros TAG de pueden mojar en el agua? Se podrían usar de pulsera y meterse en la piscina o en el mar sin que se dañasen? Gracias
  • Ll***

    Ll*** 14/11/2017 Responder

    Prumero felicitar por el blog.
    Nuestro problem:
    Hemos conectado 6 placas rc522 a un arduino one para el control de posicion correcta de 6 tags.
    Aveces funciona y otras no. Normalmente reconoce los 6 tag pero aveces solo 5 de ellos. Puede ser un problema de consumo, interferencias, tiempos de lectura o inicializacion de placas?
    La manguera de hilos que une el arduino con las placas es de un par de metros.
    Alimentamos con 5v porque con 12v creemos que aun era peor.
    Son ideas.
    Gracias.
  • Pa***

    Pa*** 14/10/2017 Responder

    Estimados les pido puedan orientarme ya que estoy trabado en un proyecto y no encuentro solucion. Estoy trabajando con un Arduino UNO con lector rfid este arduino actua como Master, tengo conectado a este un arduino DUE con Shield ethernet el cual utilizo mas que nada para el uso de la SD card, La comunicacion y funcionamiento del proyecto lo tengo ok pero lo que no puedo implementar es que los datos de la tarjeta rfid que lee el Maestro me la envie al Esclavo para asi despues poder guardar un registro en la SD Card, La comunicacion entre ambos es I2C.
    Podrian orientarme o pasarme algun link donde pueda encontrar algo? Muchas gracias
    Pablo
  • vi****

    vi**** 12/10/2017 Responder

    TUTORIAL PARA INSTALAR LA LIBRERIA INCLUDIO EL LINK + DESCARGA
    https://www.youtube.com/edit?o=U&video_id=0cDKMi31HFQ
  • Br***

    Br*** 05/10/2017 Responder

    Necesito saber si tienen algún tutorial en el que el acceso se dé mediante una base de datos: mi idea es esta:
    -Que el módulo detecte la tarjeta
    -Que el UID sea enviado a través de una conexión a java
    -Que de java se envíe confirme el UID, si no existe no le dé acceso y aparezca el mensaje en un formulario hecho en Java y si sí, que en el formulario aparezcan los datos del usuario y le dé acceso
  • Cr**

    Cr** 01/10/2017 Responder

    Hola! he realizado este ejemplo muy interesante y funciona perfectamente cuando esta conectado al usb de la computadora pero si lo desconecto y lo alimento con 5V dc, ya no me lee la tarjeta, alguna idea?
    Saludos.
    • vi****

      vi**** 12/10/2017 Responder

      ESTO ES POR LA INTENSIDAD ES DECIR EL AMPERAJE DE LA FUENTE DE 5V NO ES LA SUFICIENTE A COMPARACION DE LA INTRENSIDAD DE LA PC
  • El*******

    El******* 10/09/2017 Responder

    Hola un solo lector puede identificar un solo tag de un conjunto de 32 tag o existe colision como puede solucionarlo o no se puede.
    gracias espero puedas asesorar
    • Na*****

      Na***** 23/09/2017 Responder

      Hola Elizabeth, EL modulo va a intentar comunicarse con el primer tag que encuentre y no siempre es el más cercano, después de leer dependiendo de tu algoritmo puede pasar a leer otro o continuar conectado con el mismo, Si ya son 32 tags lo más probable es que haya interferencia.
  • El*******

    El******* 10/09/2017 Responder

    hola se puede que un lector lea uno solo tag de un conjunto de 32 tag o existe lo que se llama colision y debe hacerse un algoritmo espero aclares mis dudas gracias saludos
  • lu**

    lu** 25/07/2017 Responder

    disculpe quisiera que me regalara buenas paginas para conectar el código con una una base de datos.. lo que sucede es que e intentando encontrar una y no e podido.. para ver si me ase el gran favor ..
    • Na*****

      Na***** 30/07/2017 Responder

      Hola Luis, nosotros tenemos una tutorial para enviar datos a un servidor, no se envían los datos directamente a la base de datos, sino a una página web quien por php enviará los datos a la BD: Arduino y ESP8266 como cliente web

  • Aa*** ***ne

    Aa*** ***ne 12/07/2017 Responder

    Buena, disculpa, podría un sólo tag conectarse a la vez con diversos módulos?
    sería usar un tag activo y tres módulos para poder conocer la ubicación de un objeto en una zona de 6m cuadrados mediante trilateración
    es esto posible?
    • Na*****

      Na***** 17/07/2017 Responder

      Hola para Aaron, le problema no sería en que se conecten los tres a la vez, pues puedes conectarse uno luego liberar el Tag para que otra modulo pueda conectarse, y hacer varias iteraciones de esto. El problema es en sensar la potencia de la señal, la librería no tiene soporte para medir la potencia.
  • HA****

    HA**** 27/06/2017 Responder

    gracias por el tutorial, sobre todo la parte de la funcion para comparar arrays me gustó la forma de hacerlo.
  • St***** ***th

    St***** ***th 09/06/2017 Responder

    Thank you for the tutorial. I watched the same implementation in the Arduino RFID Tutorial, however, I tried to get this running with a different RF ID card without success. Do you know if there are many different types of cards and if the "newer" standards are more difficult to read or require different hardware?

    Cheers,
    Stan
    • Na*****

      Na***** 18/06/2017 Responder

      Hello Stan, To communicate the RFID reader and their respective TAG, take into account the following:

      1. That the RFID reader has the same frequency as the TAG. The RC522 works at 13.56 MHz

      2. That the RFID reader supports the communication protocol of the TAG. The RC522 works with the ISO14443A standard
  • Ad****

    Ad**** 09/06/2017 Responder

    Hola muy buen tutorial.
    Tengo un problema y mis profes no me han podido ayudar.
    Tengo un RFID No1 con su tarjeta y llavero y está funcionando, creo que si por ejemplo yo quiero usar la tarjeta y llavero del RFID No2 ¿funcione?
    • Na*****

      Na***** 18/06/2017 Responder

      Hola Adolfo, si puedes usar el llavero o tarjeta que vienen con to otro RFID siempre y cuando sean del mismo modelo RFID.
  • Al**

    Al** 06/06/2017 Responder

    Buenas amigo, disculpa de casualidad tienes a tu conocimiento el funcionamiento interno del RC522? Necesito saber que ocurre en las librerías de arduino ya que tengo que utilizar este dispositivo pero en otro microcontrolador. Por lo que tengo que generar todo el código para utilizar la antena. Me podrías facilitar algún algoritmo o diagrama de flujo que explique la inicialización estándar y comunicación del mismo?
  • Cr******

    Cr****** 04/06/2017 Responder

    Gente, alguien pudo grabar los TAG de las tarjetas y despues recuperarlos en una base de datos?
  • Ji* ****** M

    Ji* ****** M 30/05/2017 Responder

    Buenos días, quiero realizar un proyecto en el que tendría que conectar 9 módulos RFID-RC522 a una tarjeta arduino y poder identificar por que modulo entro la señal y el tag que la activo, si usted tiene el código fuente o un bosquejo que me pueda dar una idea le agradezco que me lo facilite, de antemano muchas gracias, estoy comenzando en este mundo de la electrónica el cual me parece muy especial.
  • An*** *******ez

    An*** *******ez 22/05/2017 Responder

    Saludos una pregunta?....Lo que pasa es que tengo un RFID RC522 cuando lo empeze a usar si me leeia los tags pero de repente me dejo de leerlas y hasta ahora no me ha podido leer nada, creen que este dañana ?? necesito saber que tiene si aulguien sabe algo ayudenme porfavor
  • WI**** ****RA

    WI**** ****RA 18/05/2017 Responder

    Saludos cordiales desde ecuador, soy el Lcdo. Wilson Rivera docente del colegio de informatica, el motivo de la presente es solicitarles informacion sobre cursos de arduino o talleres q den de manera online, a mas de solicitarles informacion por que hemos creado un grupo de whatsapp con miembros inmersos en la programacion en arduino y app inventor de tal manera q podamos intercambiar experiencias, material y de mas.
    Espero podamos contar con su valiosa colaboracion por lo que agradezco de antemano su tiempo.

    Att, Lic. Wilson Rivera
    Docente
  • Lu** ***on

    Lu** ***on 16/05/2017 Responder

    Hola a todos. Necesito ayuda. El codigo compila pero creo que hay un error con mi lector. Soldé cables y no hay continuidad entre las entradas, excepto del voltaje al RST. Esto es normal? Lo chequé con un multimetro. Otra opcion puede ser que esté conectando mal, uso arduino Mega y puse #define RST_PIN 9 y #define SS_PIN 53. El resto de pines se configura como en la tabla automáticamente? O debo hacer algo mas? Gracias
    • Na*****

      Na***** 28/05/2017 Responder

      Hola Luis, no debe haber continuidad entre el pin RST y voltaje, no tiñen que haber continuidad entre ninguno de sus pines. Los pines SCK, MOSI y MISO deben conectarse a los pines 52,51 y 50 respectivamente, los pines RST y SS pueden ser cualquiera pues estos se definen en el programa con RST_PIN y SS_PIN
  • Je*** ****el

    Je*** ****el 13/05/2017 Responder

    buenas. Como haría para agregar dos led uno rojo y uno verde que el rojo se encienda cuando sea una tarjeta denegada y el verde se encienda cuando sea tarjeta permitida.. espero su respuesta
    • Na*****

      Na***** 14/05/2017 Responder

      Hola Miguel, puedes encender o apagar los leds dentro de los if(compareArray(ActualUID,Usuario1)).
  • Ad****

    Ad**** 05/05/2017 Responder

    muy buen post, estoy tratando de usar el metodo case donde case A sirva para para leer y el case B sirva para poder escribir la informacion, no tendras el codigo de casualidad?
  • je**

    je** 04/05/2017 Responder

    buenas tardes amigo unas pregunta si yo quiero agregar que al pasar las tag, al ser positivo, me emita un señal y me active un sonido, ya que tengo un modulo TTV020-SD para activarlo,
    • Na*****

      Na***** 14/05/2017 Responder

      Hola Jean, agrega la función o instruciones correspondiente dentro del if(compareArray(ActualUID,Usuario1)), ejemplo:

      if(compareArray(ActualUID,Usuario1))

      {

      Serial.println("Acceso concedido...");

      FuncionReproducirSonido();

      }
  • Ja**** ******* *****te

    Ja**** ******* *****te 16/04/2017 Responder

    Buen día estoy tratando de leer un Tag le coloco la programación de esta al comienzo de este articulo pero me aparece este error siempre me pueden por favor decir que estoy haciendo mal.

    Muchas gracias

    " C:UsersuserDocumentsArduinoLECTOR_TAGLECTOR_TAG.ino:2:21: fatal error: MFRC522.h: No such file or directory

    #include

    ^

    compilation terminated.

    exit status 1
    Error compilación en tarjeta Arduino/Genuino Uno.
    • Na*****

      Na***** 30/04/2017 Responder

      Hola Javier, posiblemente no hayas instalado correctamente la librería, bórrala, y usa el gestor de librerías para importar la librería.
  • Al***

    Al*** 03/04/2017 Responder

    muy buen tutorial, pregunta : como leo e identifico un paquete de tarjetas a la vez , o sea que acerque un grupo de estos tag y me despliegue su identificacion
  • Cl*****

    Cl***** 20/02/2017 Responder

    Como lo podria hacer para agregar mas tarjetas de acceso ??gracias de antemano
    • Na*****

      Na***** 11/03/2017 Responder

      Hola Claudio, si te refieres al ejemplo 3 Agrega más variables de la forma:

      byte Usuario2[4]= {0xC1, 0x2F, 0xD6, 0x0E} ; //código del usuario 2

      Si son varias las tarjetas a las que quieres dar acceso, podrías también usar mejor una matriz en lugar de varios arrays, y podrías usar un for para comparar la tarjeta leída con las de la matriz.
      • se****

        se**** 10/05/2018 Responder

        buenas que tal mi nombre es sergio al igual que el amigo claudio necesito ingresar varias tarjetas es decir grabar tarjetas nuevas y no entiendo bien el tema de la matriz,,, hay alguna posibilidad que me expliques bien como hacerlo le dejo mi correo sergioga_bus@hotmail.com ojala puedas ver mi mje y darme informacion muchas gracias exelente su tutorial atte sergio
  • lu**

    lu** 20/02/2017 Responder

    holaa este tipo de lector permite detectar un chip rfid en el cuerpo por favor conteste rapido se lo agradeceria
  • lu**

    lu** 20/02/2017 Responder

    hola con este tipo de lector puedo detectar si hay un chip rfid en mi cuerpo por conteste rapido se lo agradeceria
  • Da****

    Da**** 12/02/2017 Responder

    Hola. Quiero armar un sistema de chip para medir la llegada de corredores pedestres. Tenia la idea de usar un rfid de alta potencia (3 mts) y chips pasivos. Pero esta el problema de que tendria q saber cual pasa antes o despues. Tambien se me ocurrio hacer una base con lectores de poca distancia y poner los chips en las zapatillas. Se podra analizar quien llega antes o despues? O el delay ya lectura en forma de hongo va a tener mucho error?
    • Na*****

      Na***** 13/02/2017 Responder

      Hola Damián, buena aplicación la que planteas, efectivamente vas a tener problemas cuando pacen varios cerca del sensor, no solo en el orden sino incluso podrías perder la lectura de algunos de ellos, es decir si pasan varios a la vez y con velocidad. Podrías agregar a tus resultados un componente de error o tolerancia, para que en caso sea necesario otro proceso diferente al RFID se encargue de definir el resultado.
  • Jo**

    Jo** 10/02/2017 Responder

    Tutorial excelente, muy bien explicado.

    ¿ Sabes si a esta tarjeta se le puede conectar una bobina con alambre de cobre para tener el punto de acceso en dos sitios diferentes? ¿ o si existe alguna forma de poner varias antenas con un multiplexor para que lea en diferentes lugares?

    Muchas gracias.
    • Na*****

      Na***** 13/02/2017 Responder

      Hola José, es un poco difícil de realizar lo que planteas, lo mejor es usar un módulo RFID en cada punto que deseas sensar.
  • Lu********

    Lu******** 06/02/2017 Responder

    Buenas tardes: les queria comentar si hay algun codigo en el cual se pueda escribir el ID sobre las tarjetas y/o llaveros RFID.
    Saludos Cordiales
    • Na*****

      Na***** 13/02/2017 Responder

      Hola Lucas, si es posible, la librería viene con un ejemplo para realizar el cambio del ID, puedes abrirlo desde el IDE arduino en Archivo>Ejemplos>MFRC522>ChangeUID
  • Al***** ********la

    Al***** ********la 18/01/2017 Responder

    Buenas tardes. Estpy haciendo un programa de control de acceso con el RFID. Las tarjetas o los ID de las tarjetas los tengo en une micro SD. El punto es que cuando se presente una tarjeta, busque el ID en la base de datos y encienda un led verde si le da acceso y uno rojo si lo porhibe. Para la comparación tengo problemas, porque el archivo en la SD son Strings. Hay una forma de comparar el Tag leído con un string? No se si pueda convertir de String a byte o al revés.
    • Na*****

      Na***** 01/02/2017 Responder

      Hola Alberto, tienes dos opciones convertir el ID leído a Sting para poder comparar con el Sting de la SD o convertir los datos de la SD a números. Para el primer caso seria:

      String ID_string=String(ID[0], HEX)+String(ID[1], HEX)+String(ID[2], HEX)+String(ID[4], HEX);
  • Al** ***** *****ka

    Al** ***** *****ka 02/12/2016 Responder

    tienes el codigo de programacion del Sensor De Corriente ± 30a Efecto Hall Acs712 Arduino Pic Avr
  • da***

    da*** 14/11/2016 Responder

    Hola muchas gracias por compartir , no entiendo porque me aparece este error al final que no me deja compilar con mfrc522.PICC_HaltA();
    el error que me sale dice: !class MFRC522! has no member named !PICC_HaltA!

    ya desinstale librerias volvi a instalar arduino pero sigo con lo mismo ojala alguien pudiera asesorarme ya que soy algo nuevo en esto
    • Na*****

      Na***** 16/11/2016 Responder

      Hola David, es un error de libraría, puede ser que no estés usando la librería correcta o una versión antigua. Toda librería viene con ejemplos, intenta compilar esos y si en esos también te salen errores podría ser error de tu compilador.
  • Jr*

    Jr* 09/11/2016 Responder

    Hola!! si quiero conectar dos modulos a un arduino comparte MISO,MOSI y SCK y creo dos objetos, cada uno con su respectivo pin reset y SDA, pero me comentaron que no es posible tener a los dos leyendo al mismo tiempo, si pudiera orientarme para desarrollar un metodo que me permita activar y desactivar cada modulo para poder realizar la lectura?
    • Na*****

      Na***** 16/11/2016 Responder

      Hola Jro, estos módulos trabajan con SPI y puedes conectar varios dispositivos al mismo bus. La librería se encarga automáticamente de comunicarse con el dispositivo indicado a través del pin SS (Select Slave). Está bien la forma que planteas y si pueden trabajar los dos al mismo tiempo, pero ten en cuenta que la señal RF puede interferir si ambos módulos están muy cerca.
  • Gr****** ******

    Gr****** ****** 02/11/2016 Responder

    Si tuviera varios módulos conectados, recibiendo señales, ¿existe alguna forma de saber cuál detecto la tarjeta?
    • Na*****

      Na***** 05/11/2016 Responder

      Hola Graciela, si todos los módulos están conectados al mismo arduino, significa que tienes q declarar objetos(variables) diferentes para cada módulo, y eso ya es una forma de diferenciarlos. Si esta con un controlador separado puedes poner un indicador led Cerca al lector para saber que modulo está conectado a la tarjeta.
  • Re** ****el

    Re** ****el 24/09/2016 Responder

    Excelente. Mil Gracias por tu explicación.
  • i2

    i2 16/09/2016 Responder


    Buenas tardes por mas que lo intento no puedo resolverlo. escribí unas lineas intentandolo con estados pero no soy capaz, se que es mas facil que todo esto pero me lio . sabes si voy por buen camino?? espero no molestarte al poner mi sketch.un saludo


    [code]

    #include

    #include


    #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



    int led_azul = 7;

    int led_verde = 6;

    int led_rojo = 5;


    int LED = 11 ;


    bool estado = true ;

    bool estado_anterior = true ;





    void setup() {

    Serial.begin(9600); //Iniciamos La comunicacion serial

    SPI.begin(); //Iniciamos el Bus SPI

    mfrc522.PCD_Init(); // Iniciamos el MFRC522

    Serial.println("Control de acceso:");



    pinMode(led_azul, OUTPUT);

    pinMode(led_verde, OUTPUT);

    pinMode(led_rojo, OUTPUT);


    pinMode("Acceso concedido", INPUT_PULLUP);

    pinMode(LED, OUTPUT);


    }


    byte ActualUID[4]; //almacenará el código del Tag leído

    byte Usuario1[4] = {0x96, 0x54, 0xeb, 0x75} ; //código del usuario 1

    byte Usuario2[4] = {0xC1, 0x2F, 0xD6, 0x0E} ; //código del usuario 2




    void loop()

    {


    digitalWrite(led_azul, LOW);

    digitalWrite(led_verde, LOW);

    digitalWrite(led_rojo, LOW);

    // Revisamos si hay nuevas tarjetas presentes

    if ( mfrc522.PICC_IsNewCardPresent())

    {

    //Seleccionamos una tarjeta

    if ( mfrc522.PICC_ReadCardSerial())





    {




    // Enviamos serialemente su UID

    Serial.print(F("Card UID:"));

    for (byte i = 0; i < mfrc522.uid.size; i++) {

    Serial.print(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " ");

    Serial.print(mfrc522.uid.uidByte[i], HEX);

    ActualUID[i] = mfrc522.uid.uidByte[i];

    }

    {

    Serial.print(" verificando .... ");

    Serial.println();

    digitalWrite(led_azul, HIGH);

    delay(1000);

    digitalWrite(led_azul,LOW);

    delay(100);

    }




    Serial.print(" ");

    //comparamos los UID para determinar si es uno de nuestros usuarios

    if (compareArray(ActualUID, Usuario1))

    {

    Serial.println("Acceso concedido");

    digitalWrite(led_verde, HIGH);

    delay(1000);

    digitalWrite(led_verde, LOW);

    delay(1000);

    {

    estado = Serial.println("Acceso concedido");

    if (estado != estado_anterior) //hay cambio : Han pulsado o soltado

    {

    if (estado == LOW) //Al pasar tag

    digitalWrite(LED, !digitalRead(LED));

    estado_anterior = estado ; // Para recordar el ultimo valor

    }

    }


    mfrc522.PICC_HaltA();

    }

    else if (compareArray(ActualUID, Usuario2))

    Serial.println("Acceso concedido");

    else

    {

    Serial.println("Acceso denegado");

    digitalWrite(led_rojo, HIGH);

    delay(1000);

    digitalWrite(led_rojo, LOW);

    delay(1000);


    // Terminamos la lectura de la tarjeta actual

    mfrc522.PICC_HaltA();

    }

    }


    }


    }


    //Función para comparar dos vectores

    boolean compareArray(byte array1[], byte array2[])

    {

    if (array1[0] != array2[0])return (false);

    if (array1[1] != array2[1])return (false);

    if (array1[2] != array2[2])return (false);

    if (array1[3] != array2[3])return (false);

    return (true);

    }

    [/code]

    • Na*****

      Na***** 21/09/2016 Responder

      Hola, Tienes errores de sintaxis, a continuación te mencionamos los errores que podemos encontrar:
      1. pinMode("Acceso concedido", INPUT_PULLUP);
      2. estado = Serial.println("Acceso concedido");
      3. Existen dos llaves que están demás.
      4. Pones muchas pausas y/o de mucha duración, esto podría reflejarse en que necesitas tener el TAG mucho tiempo cerca al lector, si esto no es un problema puedes seguir trabajando así.
      Debes ir implementando tu algoritmo por partes, para ver hasta qué punto está funcionando correctamente e ir solucionado los problemas conforme los vas encontrando.
      Saludos.
  • 12

    12 03/09/2016 Responder

    buenas muy buen tuto. Que tendria que escribir para encender y apagar un led cada vez que pase la tarjeta?
    • Na*****

      Na***** 14/09/2016 Responder

      Hola, va a depender de lo que exactamente quieres hacer, si solo quieres hacer parpadear el led cuando se detecta el TAG, solo envía el pulso dentro del segundo if. En cambio si lo que quieres es que el Led se mantenga prendido mientras esté el TAG presente se complica un poco, en este caso hay que comentar mfrc522.PICC_HaltA(), de esta forma siempre va a estar entrando a la condición hasta que se retire el TAG, lo que podría complicar tu programa en caso estés realizando una aplicación de registro o conteo.
  • De**

    De** 31/08/2016 Responder

    Hola, muy buen tutorial, quisiera consultarle de como se podria hace para mantener un led encendido durante el tiempo en que el tag este cercano al lector RFID (en caso de no estar el tag, simplemente no enciende el led).
    • Na*****

      Na***** 02/09/2016 Responder

      Hola para que puedas seguir detectando el TAG no debes usar mfrc522.PICC_HaltA(); esta función detiene la comunicación con el TAG. Si no usas mfrc522.PICC_HaltA() el programa va a entrar al if(mfrc522.PICC_IsNewCardPresent()) mientras el TAG esté presente.
  • Ma*****

    Ma***** 16/08/2016 Responder

    Hola, gracias por tu tutorial.
    Tengo un problema, no soy muy capo en el tema... como puedo dejar el ID leído desde el tag en una variable y no en un array, ej: Id leído D3A1C6D2, valor_tag=211161198214 .

    Agradecido y disculpa si mi consulta es muy torpe.
    • Na*****

      Na***** 22/08/2016 Responder

      Hola Marcelo, claro que se puede, pero en realidad es más fácil de trabajarlo como array, si quieres guárdalo en un solo número tiene que en ser en un long, que ocupa 4 bytes, prueba con: unsigned long valor_tag=((long)array[3]<<12)|((long)array[2]<<8)|((long)array[1]<<4)|((long)array[2]);
      Y usa: Serial.println(valor_tag,HEX); para visualizarlo por el monitor serial.
      • Ju** ****** ****** ****co

        Ju** ****** ****** ****co 26/10/2019 Responder

        Buenas tardes,
        Una pregunta, estas 2 líneas de código donde se deben ajustar ?
      • Jo***

        Jo*** 24/10/2018 Responder

        Disculpa, quiero optimizar la validacion de una tarjeta rfid, pero las valida contra 100 tarjetas que manejo, y las ultimas tardan hasta 7 segundos, hay alguna forma de validar mas rapido que el arreglo hexadecimal? Gracias
      • ar*** ****do

        ar*** ****do 27/08/2016 Responder

        hola amigo, probé el sketch en un leonardo con las conexiones que indica la librería en caso del leonardo pero no me muestra los códigos por el serial, tengo que agregar algo a la programación?? muchas gracias
  • JO***** ***EZ

    JO***** ***EZ 19/07/2016 Responder

    buenos días, cómo haría para aumentar la distancia de lectura de la tarjeta al lector unos 10 a 15 metros....???? Gracias...! ! ! ! ! ! !
    • Na*****

      Na***** 20/07/2016 Responder

      Johanny, con el módulo RFID RC522 solo puedes trabajar con distancias cortas. Si necesitas mayor distancia tendrías que trabajar con módulos de mayor potencia y con Tags activos.
      • Fr****

        Fr**** 22/08/2016 Responder

        Qué módulos de mayor potencia me recomendarías para trabajar con distancias más largas con arduino?
        • Sa******

          Sa****** 14/12/2016 Responder

          Puedes usar los modulos RFID que traen comunicación UART, son un poco más costosos pero funcionan muy bien, simplemente se deben conectar a un puerto serie del arduino. He tenido inconvenientes con los lectores por SPI, primero que todo por distancia, pero también tengo un problema y es que después de cierto tiempo dejan de detectar tarjetas, lo único que he podido hacer para "arreglarlo" es reseteando la placa desde el programa, pero no me parece que sea lo mejor.
          • Mi****

            Mi**** 28/02/2017 Responder

            Buenas.

            Estoy mirando UART. Entonces seria conectarlo a traves del puerto serie y con la misma libreria nos funciona?. Habria que cambiar en el codigo el pin de lectura y escritura supongo pero por lo demas seria lo mismo?. Puedes recomendarme algun rfid uart?. Gracias
Dejar un comentario
Deja su comentario

Menú

Ajustes

Crear una cuenta gratuita para usar listas de deseos.

Registrarse