El módulo lector RFID-RC522 RF utiliza 3.3V como voltaje de alimentación y se controla a través del protocolo SPI. También puede ser controlada con un puerto UART. Entonces, podemos decir que es compatible con casi cualquier micro controlador, Arduino o tarjeta de desarrollo. El RC522 utiliza un sistema avanzado de modulación y demodulación para todo tipo de dispositivos pasivos de 13.56Mhz. Incluso, puesto que se hará una lectura y escritura de la tarjeta, es necesario conocer las características de los bloques de memoria una tarjeta:
La tarjeta que viene con el módulo RFID cuenta con 64 bloques de memoria (0-63) donde se hace lectura y/o escritura. Cada bloque de memoria tiene la capacidad de almacenar sobre todo hasta 16 Bytes. Finalmente el número de serie consiste de 5 valores hexadecimales, se podría utilizar esto para hacer una operación dependiendo del número de serie.
Características del Módulo Lector RFID-RC522 RF
- Modelo: MF522-ED.
- Corriente de operación: 13-26mA a 3.3V.
- Isb de stand by: 10-13mA a 3.3V.
- Ism de sleep-mode: <80uA.
- Im máxima: 30mA.
- Frecuencia de operación: 13.56Mhz.
- Distancia de lectura: 0 a 60mm.
- Protocolo de comunicación: SPI.
- Velocidad de datos máxima: 10Mbit/s.
- Dimensiones: 40 x 60 mm.
- Temperatura de operación: -20 a 80ºC.
- Humedad de operación: 5%-95%.
- Máxima velocidad de SPI: 10Mbit/s.
- Incluye pines, llavero y tarjeta.
DESCRIPCIÓN Módulo Lector RFID-RC522 RF
En este tutorial haremos uso del Arduino UNO y el Módulo Lector RFID-RC522 RF para dar uso de algunas funciones de la librería RFID. Las operaciones que finalmente haremos en este tutorial, serán:
- Lectura de bloque de memoria de un tarjeta (rfid.read)
- Escritura en un bloque de memoria (rfid.write)
- Lectura de número de serie de tarjeta (rfid.numSerie)
MATERIALES
- Módulo Lector RFID-RC522 RF y tarjeta.
- 1 Arduino Uno.
- Cables jumper macho a macho.
- Protoboard.
- Otros módulos de lectura RFID (opcionales).

CONEXIÓN Módulo Lector RFID-RC522 RF
A continuación se muestra una tabla con los pines del Módulo Lector RFID-RC522 RF, así como la conexión que tendrá con el Arduino UNO . Ten en cuenta que en la imagen de arriba se muestra la parte trasera del RFID RC552, en la parte inferior de esta imagen esta muestra los nombres correspondientes de los pines.


Descargas
- Bibliotecas: https://github.com/pkourany/RC522_RFID.
- Como instalar bibliotecas: Link
Programa C Arduino UNO Lectura de Bloques Tags
Detalles del programa
Incluir la librería SPI, la cual se encarga del protocolo SPI. También se incluye la librería RFID que contiene todas las funciones relacionado con el RFID.
Primero se inicializará el puerto Serial a 9600 Baudios, después se inicializa RFID y finalmente SPI,
Comando de la librería RFID para poner tarjeta en hibernación
Declaración de cadena de caracteres la cual se define con llaves, se debe de poner cada carácter entre apostrofes seguido de una coma si es necesario.
Se declara un carácter de tipo puntero y toma el valor de char het.
Declaracion un carácter tipo puntero que será utilizado para la función de lectura de un bloque
Programa C Arduino UNO Lectura de numero de Serie
RFID Terminal Arduino, Numero de Serie.

Actualización para Arduino Leonardo:
Ten en cuenta que para el Arduino leonardo la conexión es como se muestra a continuación.

Muy buen aporte, muy fácil de entender! 🙂
Muchas gracias Domingo, quedamos a tus ordenes para cualquier otra cosa.
Saludos
Buenos dias
deseo hacer un proyecto con etiquetas RFID para identificación de herramental si deseo utilizar este modulo que tipo de etiquetas deberia comprar?
Oscar, te recomiendo estas: https://hetpro-store.com/rfid-tag-autoadherible-13.56mhz/
no jala me marca un error al compilar
RFID rfid(10,5);
RFID does not name a type
Hola que tal, quizas no tengas la biblioteca instalada correctamente.
Debes incluir la libreria RFID
Podrías decirme como se instalan las librerías?
creo que lo estoy haciendo mal…
bajo el zip, y lo extraigo en la carpeta libraries que está dentro de Arduino en Archivos de programa :/
Para instalar bibliotecas:
http://arduino.cc/en/Guide/Libraries
ya instale las librerias bien, pero.. me sigue saliendo ese error.. que puedo hacer??
Hola intenta buscar la libreria en otro sitio talvez el archivo fue editado desde el servidor
Que tal
Si te funciono o sigui marcando error ??
Buenas, de ante mano agradecerte por el gran aporte que das en el desarrollo de esta tecnología. Me gustaría saber, si este modulo RC522 permite, ademas de leer, que se le escriba alguna información o como mínimo cambiar la serie ID para su verificación.
Gracias y si me puedes colaborar te lo agradecería.
Hola que tal, asi es tambien se puede escribir informacion, saludos.
Asi es, saludos.
Y se necesita algún código base por decirlo de alguna manera, para acceder a la información del tag y ser cambiada, ya que he intentado de varias maneras y no he podido saber como realizar esto. Algún consejo o ayuda que me pueda servir para hacer esto… Muchas gracias de ante mana….
Una pregunta. La libreria RFDI.h está disponible? La he buscado pero no enuentro el paquete .zip
Espero me ayudes, Gracias 😀
Hola que tal, la puedes descargar de el siguiente link, saludos. https://github.com/pkourany/RC522_RFID
Gracias! ya lo descargué, pero he tenido problemas al probarlo :/
Hago las conexiones pero el programa no hace nada, pero el rc522 funciona normal porque enciende el led rojo. Leí y dicen que puede ser problemas de que los pines no estén soldados. Cual puede ser el problema? ¿Varia en la conexion de pines?
ami me pasa lo mismo, probe con dos y ni una hace nada, pero aparentemente están bien porque prenden sus leds.
Buenas tardes, tengo que utilizar el mismo lector rfid pero con arduino mega 2560, me podrías decir en qué pines del arduino va conectado, y si debo cambiar algun parámetro en mi librería o programa. Gracias
Hola que tal, en el programa viene un segmento de codigo donde tu asignas los pines, saludos.
Buenas!, te hago una consulta.
Armo el código, me da ok, pero no el monitor serie no pasa nada, no me marca nada. Descargue las librerias, las mande pero nada.
Muchas gracias!!
Hola que tal, a que velocidad tienes configurada la terminal serial de arduino??, debe de coincidir el Serial.begin() conn esa velocidad, saludos.
Hola, me parece muy bueno el tutorial, queda claro como se hace la lectura del código que tiene la tarjeta… Pero tienes tambien un tutorial para ambiar el código de ésta??.. O las librerias necesarias para ejecutar esto??… Gracias por tu atención
Esta placa me esta dando dolor de cabeza, llevo 3 días intentando leer algo y no he podido, la placa es la misma de la imagen, lo he intentado con 3 computadoras diferentes, con el arduino leonado y el mega 2560 ( con sus correspondientes ICSP), con 4 codigos diferentes, y no consigo leer nada!, solo prende el led rojo.
agrego que tengo dos placas RC522 y ninguna de las 2 lee nada.
las computadoras tienen win8 y win8.1 (no se si afecte).
no creo que las dos se hayan quemado, pero hay alguna forma de saberlo, a lo mejor cortocircuite algo y no se, se daño. pero ambas?, como se puede dañar una placa RC522, ademas de un alto voltage?
porfavor ayuda.
Hola que tal, el sistema operativo no afecta. Podrias mandarme una foto de como estas realizando las conexiones a ruben.estrada@hetpro.com.mx, saludos.
Hola, quisiera saber si con este lector y alguna antena se puede ampliar la distancia de lectura, ya que quisiera realizar un sistema para tomar los tiempos en una maratón.
O si hay alguna web donde haya algún proyecto/documentación con arduino para poder realizar esto.
Desde ya, muchas gracias.
Hola que tal, estos modulos son de bajo rango. Saludos
Buenas,
Antes de nada agradecerte el tiempo que has echado preparando este tutorial.
A mi me ha funcionado correctamente, tanto el script de leer el número de serie, como el otro. Pero sólo me funciona algunas veces, de ahí que te escriba este mensaje. ¿Sabes a qué es debido? Yo estoy utilizando un clon de Arduino UNO y un RFID RC522 como el de la imagen tuyo.
Si se te ocurre de qué puede ser, avísame vale.
Un saludo!
Que tal, es posible que esten haciendo falso los pines de tu tarjeta, verifica que esten bien soldados o las conexiones, saludos.
Hola, ¿esta shield puede leer también etiquetas y llaveros o solo tarjetas?
Gracias, un tutorial muy bueno 😉
Tambien etiquetas pero tienen que ser de la frecuencia de los tags que son como 125mhz.
hola, y ya tengo el material y me manda un error pero no se que significa me podrias ayudar? el error es este:
RFID_Display_Keypad.ino:2:9: error: #include expects «FILENAME» or
RFID_Display_Keypad.ino:3:10: error: #include expects «FILENAME» or
RFID_Display_Keypad.ino:5:1: error: ‘RFID’ does not name a type
RFID_Display_Keypad.ino: In function ‘void setup()’:
RFID_Display_Keypad.ino:10:3: error: ‘SPI’ was not declared in this scope
RFID_Display_Keypad.ino:10:19: error: ‘rfid’ was not declared in this scope
RFID_Display_Keypad.ino: In function ‘void loop()’:
RFID_Display_Keypad.ino:19:9: error: ‘rfid’ was not declared in this scope
RFID_Display_Keypad.ino:25:5: error: ‘rfid’ was not declared in this scope
Que tal, te falta la biblioteca del RFID hay que instalarla. Saludos
No quieres que se reproduzca el tutorial ?? no entiendo por que entonces usas software libre usa otro micro otros sistemas que desarrolles tu, es parte de la politica open surce compartir todo lo que se hace con estos dispositivos
Erwin, copio y pego lo que menciona el final del texto: «Si la redistribución de este material es para fines educativos, difusión tecnológica o cualquier otro fin sin lucro, HeTPro está de acuerdo en que el material sea distribuido sin la necesidad de requerir el permiso del autor.»
Toda la información que ves es totalmente libre de ser compartida por nosotros, es un pequeño esfuerzo y contribucion nuestra para todos ustedes.
Sin embargo, los nuevos tutoriales ya no tienen esa leyenda, debido a que ya no consideramos necesario ponerla debido a que no somos partidarios de limitar el conocimient, seguramente mas adelante las quitaremos ya que pasemos por correcciones en este tutorial.
Hola administrador, estoy intentando correr su codigo en mi arduino, la cuestion esta es q tengo problema con la libreria que ustedes estan facilitando. Sera que me pueden pasar de nuevo la libreria, ya que este ha sido el mejor post que he visto. gracias este es mi correo mclarenzor_09@hotmail.com
Hola que tal, podrias porfavor mandarle un correo a orlando@hetpro.com.mx porfavor. El te proporcionara la biblioteca o el enlace de descarga. Saludos
disculpa antes que nada una felicitación.
una pregunta.
como puedo escribirle a la tarjeta podrías ayudarme con un tutorial o alguna información.
Hola que tal, puedes mandar un correo a orlando@hetpro.com.mx el fue el creador del tutorial para preguntas mas en particular. Saludos
Descargo la libreria de esta pagina que puso el admin (https://github.com/pkourany/RC522_RFID) y no logro instalarla adecuadamente ya lo intente de todas formas. A alguien le pasa algo similar o le paso y ya pudo resolver el problema?
In file included from sketch_apr02a.ino:2:
C:\Users\Luis\Documents\Arduino\libraries\RC522_RFID/RFID.h:9:25: error: application.h: No such file or directory
a mi tambien me pasa, porfa si encuentras la solucion te la recomiendo. lo neesito urgente!!
Aquí tienes un ejemplo idéntico, ya lo probé, la librería si sirve. Ojala te sirva! http://www.mediafire.com/download/67bird10awxnp1g/rfid_buzzer_src.rar
porfa yo tambien tengo ese problema, ya importe la libreria pero no la reconoce. porfa necesito que funcione, dime como innstalar la libreria. gracias
Que puede ser? he instalado las librerías y funcionan, osea se compila, el problema es cuando lee el tag ( activo o pasivo ) muestra el siguiente caracterer » ў » con espacios por cada lectura ..
Agradecería de los comentarios.
Hola, una duda primero se carga la info de los tags a la arduino?? la vdd tengo que hacer esto y no se por donde empezar… se me esta volviendo algo complicado, me gustaría un paso por paso 🙁 muchas gracias
Hola, depende que quieras hacer, los tags ya tienen grabado un numero de serie y este tutorial lo que hace es solo leerlo. Ahora, si lo que quieres es grabar información al tag debes utilizar la función rfid.write() //Función escritura (num de bloque, string). Te enviare un correo con la librería.
Cual es la libreria?
Listo Orlando, como que se corrompió el código pero ya lo corregimos. Puedes intentar de nuevo. Saludos.
Hola, como «#$%/$& se instala la librería ? 🙁
hola comunidad. quiero que alguien me ayude a configurar el sensor xd-yk04 que es un trasnmisor rf para prender y apagar una luz…
gracias
Pepe, esos modulos necesitan (recomendadamente) un modulo codificador y decodificador, te paso un enlace que te puede interesar: https://www.cooking-hacks.com/blog/tutorial-433-mhz-rf-modules-for-arduino/
Hola, quería saber si con este modulo, ¿podría comunicarme con nfc tags, o con un movil con nfc?
Gracias de antemano 😉
No, pero si tenemos unos para NFC checa nuestra tienda virtual. Saludos
Entiendo que esta conexión y el programa son para usar el bus SPI, hay alguna librería para usar el bus I2C y el UART?, tengo un Arduino Uno con una placa ethernet shield y la configuracion SPI del sensor RFID tambien usa el pin10.
Dependiendo de la biblioteca que estes usando pero por lo regular dejan lugar a modificar esos pines desde el codigo principal.
HOLA TENES IDEA COMO HACER QUE FUNCIONE UN RFID RC522 CON UN ARDUINO MEGA 2560? SALUDOS
Seba checa este enlace: https://hetpro-store.com/TUTORIALES/modulo-lector-rfid-rc522-rf-con-arduino/
hola como estas ya instale la librería tal como indica el tutorial, pero la librería dice #include mas no #include como esta en las imágenes me sale un error en esta parte RFID rfid(10,5); no se que mas hacer por favor rogaría tu ayuda
Richard, no entendí muy bien igual en las 2 que me mencionas dice lo mismo «#include»
Hola Hector,
me llamo Óscar y soy nuevo con el arduino, antes que nada quiero felicitarte por el foro y darte las gracias por tu labor divulgativa sobre arduino. He montado la placa arduino uno con la placa RFID-RC522 y he conseguido cargar bien la librería, pero a la hora de compilar el programa, me sale este mensaje, me podrías decir que estoy haciendo mal…mil gracias…un cordial saludo.
mensaje:
In file included from C:\Users\Oscar\Documents\Arduino\libraries\rfid_buzzer/RFID.h:9:0,
from RFID_RC522.ino:2:
C:\Users\Oscar\Documents\Arduino\libraries\rfid_buzzer/SPI.h:16:22: fatal error: WProgram.h: No such file or directory
#include
^
compilation terminated.
Error de compilación
Oscar, parece ser que tienes problema con la biblioteca SPI.h no estoy 100% seguro pero recuerda que las librerias van en la carleta de Arduino/Libraries// revisa que tengas este formato, quizás puede ser eso.
Hoooolaaaa…Hector….hay alguien por ahí????….
Primero que nada me gustaría agradecer por el tutorial ya que ha sido muy claro, posteriormente me gustaría comentarte que he logrado leer el número de serie de mi llavero y de mi tarjeta RFID pero lo que no logro hacer es escribir con la instruccion rfid.write, ya que lo que ponga no lo lee correctamente si no que me devuelve una cadena basura de tipo «8V(» y se repite cada vez que lo intento leer, ya he probado cambiando el rango de batios en el puerto pero aún sigo sin conseguirlo, espero me puedas ayudar, saludos.
Oscar, manda un correo a orlando@hetpro.com.mx quizas el te pueda ayudar, fue el, el que hizo este tutorial. 🙂 Saludos
Hola a todos. Estoy estudiando llevar a cabo un proyecto y tengo una duda.
?Es posible controlar varios modulos rfid rc552 con un mismo Arduino 1?
Un saludo,
Santiago
es necesaria la libreria #include porque me esta causando probleas
Juan, si la necesitas ya que ahi es donde estan las instrucciones para correr el código.
Hola hector, antes que nada muy padre tu post, tengo una duda, tengo un rfid rc522a funciona igual ??? o tiene otra librería??
Debería de funcionar igual, ya que es el mismo IC. Saludos
que show tengo una practica en pic con el rfid ayudame as paro culo!
Hola. Primero que nada agradezco el aporte. Ahora, el IDE compila el codigo perfectamente pero cuando le doy a subir, lo sube pero no me lee ninguna tarjeta. Tengo dos modulos y ninguno funciona, el led rojo si esta encendido pero no se reconoce ninguna tarjeta ni llavero. Que puede ser? Muchas gracias.
P.D: Tengo Windows 10, no se si eso afectara en algo
Te aparece algo en la terminal serial? si estas pegando las tarjetas a la PCB?
Lo pudiste solucionar, tengo el mismo error :c
hola me sale el mismo error RFID does not name a type
como le ago?
deja el link para descargarla
Abraham, ya descargaste las bibliotecas de RFID? las pusiste en la carpeta libraries de Arduino?
hola que tal alguien podria proporsionarme las librerias, probe los links que compartieron pero creo que ya los quitaron por que no cargan les agradeceria si pudieran ayudarme
Omar te paso el link: https://github.com/pkourany/RC522_RFID
gracias hector ya las descargue pero me marca erroren el codigo a la hora de instalarlo a que cres que se deba??? si puedieras ayudarme u orientarme
ya instalelas librerias pero me marca error en esta linea
RFID rfid(10,5);
este es el error que me sale en verdad les agradecería si pudieran ayudarme 🙁
sketch_feb03a:3: error: ‘RFID’ does not name a type
RFID rfid(10,5);
^
C:\Users\goyo_\AppData\Local\Temp\arduino_801acd0674df79bd81bd0660936a6286\sketch_feb03a.ino: In function ‘void setup()’:
sketch_feb03a:8: error: ‘rfid’ was not declared in this scope
rfid.init(); //Función que inicializa RFID
^
C:\Users\goyo_\AppData\Local\Temp\arduino_801acd0674df79bd81bd0660936a6286\sketch_feb03a.ino: In function ‘void loop()’:
sketch_feb03a:13: error: ‘rfid’ was not declared in this scope
if (rfid.isCard()) { //Verifica si hay una tarjeta
^
sketch_feb03a:32: error: ‘rfid’ was not declared in this scope
rfid.halt();
^
exit status 1
‘RFID’ does not name a type
Omar me puedes copiar y pegar la ruta de la biblioteca completa, incluyendo el nombre de la misma.
Ser puede leer esto desde C# ???
Darling, si puedes, asi como esta ya manda los datos del Arduino a la PC mediante el puerto USB/Serial ya nomas programa la interfaz para leer esos mismos datos con C# con el COM correspondiente.
C:\Users\goyo_\Desktop\sketch_feb04a\sketch_feb04a.ino: In function ‘void loop()’:
ahora me sale esta no se por que, pero se supone que la libreria la pegue en
C: archivos de programax86\Arduino\libreries\RC522_RFID-master
y la libreria es la queme pasaste
Renombre tu carpeta a RFID solamente en ves de RC522_RFID-master y dime si salen los ejemplos en tu menu de ejemplos de Arduino.
Hola,
estoy probando el código y me funciona la lectura del número de serie, pero la escritura y lectura de bloques de memoria de los TAGS no me funciona, de hecho en cuanto pongo las funciones de escritura o lectura me da error al compilar.
En el código veo que se incluye la libreria RC522 pero luego se usa la librería RFID…Puede ser la librería? o se os ocurre algo?
Gracias de antemano.
Un saludo
Que error te marca cuando compilas?
Hola HECTOR, estoy teniendo problemas para la lectura del código. Si puedieras echarme una mano te lo agradeceria.
Los errores que me aparecen son los siguientes:
sketch_feb29a:4: error: ‘RFID’ does not name a type
sketch_feb29a.ino: In function ‘void setup()’:
sketch_feb29a:8: error: ‘rfid’ was not declared in this scope
sketch_feb29a.ino: In function ‘void loop()’:
sketch_feb29a:17: error: ‘rfid’ was not declared in this scope
sketch_feb29a:22: error: ‘rfid’ was not declared in this scope
‘RFID’ does not name a type
Carles, ese error suele pasar por que no tienen la biblioteca RFID instalada donde se debe. Vamos a ver, ¿te aparecen los ejemplos de la biblioteca RFID en el IDE de Arduino cuando pones los ejemplos?
Hola Hector, a mi parecer tengo la libreria instalada, ya que la encuentro en el Disco Local C, pero dentro de esta no hay ninguna carpeta de ejemplo…
Si pudieras echarme una mano te estaria agradecido,
Gracias y buen dia
Carles, para estar seguros te paso un video que me acabo de encontrar igual, es buen tema para hacer nuestro prorpio tutorial: https://www.youtube.com/watch?v=qFIZrjFx52I
Gracias, ya conseguí que me leyera el código.
Sabrias de algun tuturial para proyectarlo en una maqueta de una casa? Me refiero a hacer como un control de acceso.
Gracias y un saludo!
Por aqui tenemos uno de un teclado matricial y una LCD de ahí te puedes basar para realizar algún control por contraseña, o con el lector de huella digital.
Hola que buen tutorial, pero no me ha funcionado, me reconoce el módulo RFID pero no me lee la tarjeta, dicen que es por los pines mal soldados pero no se como verificar si estan bien, como hago para saber si estan bien soldados? Gracias porfa ayudenme!!
Jairo, checa tus conexiones, ese error es por que no detecta la conexión.
Hola buenas noches
Manejas o conoces de algún moodulo lector de RFID muiltiple es decir que lea varios tags al mismo tiempo?
Juan, este es capaz, pero tienes que tener los 2 tags a una determinada distancia, ya lo hemos probado, para un proyecto tuvimos que desarrollar un case fijo para indicar donde poner los tags. https://hetpro-store.com/modulo-lector-rfid-rc522-rf-con-tarjeta-y-llavero/
Hola buenas, necesito cierta ayuda
He copiado el programa y solucionado los errores de la libreria que no me la leia.. Pero al cambiar el tag que es lo que quiero, cambiar el serial o al menos meterle un valor a la tarjeta, no me deja, es decir abro el monitor y no sale nada simplemente salen simbolos.. Y esta correctamente asignado a 9600 baudios
En el código y en el monitor serial tienes la misma velocidad del serial?
Hola que tal gracias por el gran tutorial aprendí mucho sobre la tecnológica RFID gracias a esta pagina, pero tengo una duda por mas que e buscado aun no consigo escribir en la tarjeta, me pregunto si sabran de alguna pagina con algun ejemplo o alguin a podido hacerlo funcionar
saludos
Enrique, no tenemos pero mira buscando encontre este espero que te sirva: https://www.parallax.com/downloads/rfid-readwrite-module-arduino-code-example
Hola, gracias por el tutorial pero no logro hacer que compile. La carpeta RC522_RFID-master se encuentra tanto en C:\Program Files (x86)\Arduino\libraries como en C:\Users\Eric\Documents\Arduino\libraries y recibo el siguiente error al compilar:
Arduino: 1.6.8 (Windows 10), Board: «Arduino/Genuino Mega or Mega 2560, ATmega2560 (Mega 2560)»
C:\Users\Eric\Desktop\Prueba_RFID\Prueba_RFID.ino:3:21: fatal error: MFRC522.h: No such file or directory
#include
^
compilation terminated.
exit status 1
Error compiling for board Arduino/Genuino Mega or Mega 2560.
Lo que no entiendo es por que su codigo incluye MFRC522.h si la bilbioteca se llama RFID.h (descargada de https://github.com/pkourany/RC522_RFID).
Saludos
Hola! Gracias por el tutorial, sin embargo no he logrado hacer que compile. La carpeta RC522_RFID-master se encuentra tanto en C:\Users\Eric\Documents\Arduino\libraries como en C:\Program Files (x86)\Arduino\libraries, pero me sigue mandando estos errores al compilar:
Arduino: 1.6.8 (Windows 10), Board: «Arduino/Genuino Mega or Mega 2560, ATmega2560 (Mega 2560)»
C:\Users\Eric\Desktop\Prueba_RFID\Prueba_RFID.ino:3:21: fatal error: MFRC522.h: No such file or directory
#include
^
compilation terminated.
exit status 1
Error compiling for board Arduino/Genuino Mega or Mega 2560.
Lo que me parece raro es que llamen a MFRC522.h cuando la biblioteca de https://github.com/pkourany/RC522_RFID es RFID.h.
Saludos
Eric, cierto, no estoy seguro que paso… igual puedes probar con cambiando el nombre a tu codigo para incluir solo «RFID.h» y ver que pasa?
disculpa ya intale la libreria pero me sigue saliendo el error
Arduino:1.6.4 (Windows 7), Placa:»Arduino Uno»
In file included from naaa.ino:2:0:
C:\Users\Lenovo\Documents\Arduino\libraries\RC522_RFID-master/RFID.h:9:25: fatal error: application.h: No such file or directory
#include «application.h»
la verdad a intente de todo per aun asi no me permite usarla no se si me podias ayudar a corregir este error
perdon dentro la libreria llamas a la libreria application.h pero esa libreria no esta en el archivo zip para descarga, donde puedo conseguir esa libreria o es un error de en la libreria rfid.h
Hola consultaste el link que tiene el tutorial de como instalar librerias ? prueba instalando las librerias de aqui https://github.com/pkourany/RC522_RFID http://playground.arduino.cc/Learning/MFRC522
Tengo el mismo error, lograste solucionarlo???
Descargue la librería deo otra web y si funciona pero aun no logro eacribir bien en la tarjeta
Puedes verificar la variable que estas utilizando para mostrar talvez ya no sea la misma que usas o posiblemente la libreria utiliza distintos comandos puedes verlos en el codigo de ejemplo que esta como comentarios
Hola ,llevo algún tiempo trabajando con este modulo pero tengo un problema que no he podido resolver con algunas tarjetas y tags tipo llavero que no lee ,se que existen distintos estándares rfid pero el mas común es el de 13 Mhz aprox ,por lo que asumo que estos son los que se consiguen en las tiendas de electrónica (por que si uno pregunta no tienen la menor idea )alguien mas a tenido este inconveniente?
puede ser algo en el software?
Hola william, que tarjeta estas utilizando?, si es el mas comun de 13Mhz, puedes verificar con el codigo que utlizamos en estos tutoriales, saludos
Hola saul gracias por contestar ,pero investigando encontré que los tacs tipo llavero que traen números impresos son de 125 khz por lo cual no los va a leer nunca ,ese era el problema ,publico esto esperando le sirva de ayuda a alguien
Gracias.
Gracias por el comentario esperemos que le sea de ayuda aquien lo necesite, saludos
Hola, hay alguna distancia máxima entre el lector y el arduino, algún tipo de multicable concreto. Gracias
Hola la distancia para funcion de la tarjeta es de Distancia de lectura: 0 a 60mm
Hola, yo me refiero la distancia del receptor rfid al arduino, hay una distancia máxima. Puedo poner el receptor a 15 metros del arduino unido por un cable multihilo? o me dara problemas.
No debes tener algun problema
buenas tardes disculpa como se le haria para conectarlo en un arduino mega, tengo tiempo buscando pero no encuentnro la solucion
Puedes ver la tabla que utilizamos aqui y ver la direccion de pin en el mega
Buenas tardes en su experiencia con este modulo de RFID ¿cual es la máxima distancia a la lee una tarjeta?..
gracias.
Hola buen dia contamos con distintos lectores RFID, este por ejemplo puede detectar hasta 1 cm y contamos con otro de hasta 10cm
Les dejo un enlace con una libreria que hace funcionar los ejemplos de este buen tuto
http://arduinocostarica.blogspot.mx/2014/10/ejemplo-8-rfid-rc522.html
Hola buen dia te agradecemos tu aportación
Hola! Que tal tendrás un diagrama de conexión para Arduino Uno, Arduino Ethernet Shield & RFID RC522 RF
Seguí este blog y pude completar mi codigo solo que necesito tener un servidor web y para ello necesito el ethernet Shield, pero al conectarlo mi lector deja de funcionar!
¡Ayuda me urge!
Lo sentimos no contamos con mas informacion sobre este tema
Hola. No es «librería», es «biblioteca». Solemos hacer la traducción literal, pero no está bien. En español «Librería» es el lugar donde se venden libros; «Biblioteca» es el lugar a donde uno va a consultarlos. Al principio es un poco difícil acostumbrarse a decir «biblioteca», pero no imposible. Me pasaba lo mismo, e incluso en mis blogs escribía «librería», hasta que me hicieron ver mi error. Ahora corrijo a todos, incluyendo a mis alumnos.
Quiero hacer un proyecto con el modulo RFID-RC522 pero mi duda es, me sirven los tags de 125Khz? Vi unos en internet que vienen en una pulsera de silicon y van perfectas con mi proyecto.
Solo de 13.56 mhz, tenemos esta nosotros: https://hetpro-store.com/pulsera-rfid-con-tag-13.56-mhz/
podria utilizar Tag activo para aumentar la distancia de lectura, y si se puede cuales.
Saludos.
Buby, no hemos probado con tags activos, para este caso te recomiendo revisar la hoja de datos de el ic https://www.nxp.com/documents/data_sheet/MFRC522.pdf
Hola primero que nada felicitaciones por su proyecto, está muy bien explicado, tengo un problema estoy utilizando arduino LEONARDO y al compilar el programa me dice que hubo el sig. error «Error compilado para la tarjeta Arduino Leonardo».
Puedes copiar que mas sale porfavor, gracias.
Que tal! Tengo el mismo código que utilizan para lectura del numero de serie pero al comprobar me aparece un error: » ‘RFID’ does not name a type». Ya instale las librerias y no cambie nada del codigo. Alguien que me pueda ayudar?
Aquí el error;
{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{{
Arduino: 1.6.9 (Windows 10), Board: «Arduino/Genuino Uno»
Programar_RFID:3: error: ‘RFID’ does not name a type
RFID rfid(10,5);
^
C:\Users\…\Programar_RFID\Programar_RFID.ino: In function ‘void setup()’:
Programar_RFID:8: error: ‘rfid’ was not declared in this scope
rfid.init(); //Función que inicializa RFID
^
C:\Users\…\Programar_RFID\Programar_RFID.ino: In function ‘void loop()’:
Programar_RFID:11: error: ‘rfid’ was not declared in this scope
if (rfid.isCard()) { //Verifica si hay una tarjeta
^
Programar_RFID:29: error: ‘rfid’ was not declared in this scope
rfid.halt();
^
exit status 1
‘RFID’ does not name a type
This report would have more information with
«Show verbose output during compilation»
option enabled in File -> Preferences.
}}}}}}}}}}}}}}}}}}}}}}}
Eduardo, puedes corroborar que la biblioteca este correctamente instalada, no te aparecen los ejemplos en el menu?
Excelente pagina!
Mi pregunta, en que parte del código introduzco la instrucción de que al pasar la tarjeta, habilite una puerta, pensándolo como un sistema de seguridad.
mil gracias.
Hola
En primer lugar quiero daros las gracias por vuestro articulo, ya que nos ha sido de mucha ayuda.
Mi pregunta es la siguiente: Nosotros queremos que nos detecte a unos 40cm ¿habría alguna forma de aumentar la distancia de detección?
Berni, hola que tal muchas gracias. No, para este dispositivo tiene un máximo de unos 5 a 6 cms. Si buscas mas distancia busca tags activos.
Hola tengo un problema para hacer un proyecto, sí por ejemplo tengo; vamos a ponerlo de este modo RFID No1.Con su tarjeta y llavero funciona, pero que pasa si yo quiero usar la tarjeta del RFID No2 con el RFID No1 ¿funcionaria o tengo que hacer una modificación?
aqui les dejo mi video como instalar la libreria para el manejo del rc 522 en arduino
https://www.youtube.com/watch?v=0cDKMi31HFQ
hola yo tengo un problema utilizando un codigo para leer el codigo de indentificación de lectura para el llavero me funciona pero para la terjeta no funciona puedes ser que la terjeta no funcione o este arruinada (aviso que el modulo la tarjeta y el llavero son nuevos)
Tengo una duda mi codigo fuinciona , explico lo que hace :
se conecta a una base de datos y checa en una tabla quienes tienen acceso y quienes no dependiendo de un a prueba de esd que se hacen previamente , el control lo tengo con un arduino conectado via ethernet y el codigo jala , si tienes pasada la prueba te da acceso y si no tienes pues no , el detalle es que despues de algunas horas el lector deja de leer , es el lector porque el programa en el serial sigue normal pero al momento de escanear no hace nada , igual tengo un buzzer conectado que deveria de sonar y al principio si lo hace y de igual manera cuando esta inhibido si le das un reset fvuelve a funcionar normal por unas horas alguien me podria ayudar con esto ?
Hola, te recomendaria que usaras el WDT – Watch Dog Timer, a lo mejor el programa de arduino se queda esperando alguna instruccion por parte del lector y se traba. Entonces en esa parte del programa habilitas el WDT, Y lo deshabilitas despues de que pases esa seccion critica, suele ser un if, un for o un while. Entonces si todo va bien, no pasa nada, pero si se queda trabajo y no desactiva el WDT, este provocara un soft-reset en el arduino, iniciando nuevamente tu programa. Saludos
suena muy bien esa opcion de echo ya hay una parte donde utlizo el WDT si es que se llega a caer la coneccion de el arduino , el detalle es que no se exactamente donde pueda estar esa instruccion del lector o donde es donde muere mi lector , voy a aanexar mi codigo para cer si me puedes ayudar la verdad me seria de mucha ayuda
codigo :
#include
#include //For the selection of the key
#include //The RFID key library
#include
String uidHex = » «;
char numhex[9];
unsigned long int decimal_answer;
char server[] = «10.34.70.79»; //Ip server
//char server[] = «192.168.1.73»; //IP TINY
String streamId = «/IOT/apiTurnstile.php?B=»;
int rele = 5;
int buzzer = 6;
unsigned int tinicialReset;
unsigned int tfinalReset;
int minutos;
int enableReset = 0;
EthernetClient client; //ETHERNET INSTANCE
#define SS_PIN A2 // for RFID
#define RST_PIN A1 // RFID
MFRC522 mfrc522(SS_PIN, RST_PIN); // Create MFRC522 instance.
void setup()
{
MCUSR = 0;
Serial.begin(9600); //Iniciamos la comunicación serial
Serial.println(«encendiendo»);
pinMode(buzzer, OUTPUT);
//Serial.println(«1»);
digitalWrite(buzzer,LOW);
//Serial.println(«2»);
pinMode(rele,OUTPUT);
//Serial.println(«3»);
digitalWrite(rele,HIGH);
//Serial.println(«4»);
SPI.begin(); //Iniciamos el Bus SPI;
//Serial.println(«5»);
mfrc522.PCD_Init(); // Iniciamos el MFRC522
//Serial.println(«6»);
connect();
tinicialReset = millis();
minutos = 0;
}
void connect(){
byte mac[] = { 0xAA, 0xAD, 0xBE, 0xEF, 0xFE, 0xDE}; // max address for ethernet shield
Serial.println(«conectando»);
TrySetup:
//Ethernet.begin(mac);
if (Ethernet.begin(mac) != 1) {
Serial.println(«Failed to configure Ethernet using DHCP»);
goto TrySetup;
}
Serial.println(Ethernet.localIP());
}
void checkCon(){
TryRenew:
switch(Ethernet.maintain()) {
case 0:
Serial.println(«Check Connection: 0»);
break;
case 1:
Serial.println(«Check Connection: 1»);
connect();
goto TryRenew;
break;
case 2:
Serial.println(«Check Connection: 2»);
break;
case 3:
Serial.println(«Check Connection: 3»);
connect();
goto TryRenew;
break;
case 4:
Serial.println(«Check Connection: 4»);
break;
default:
break;
}
}
char SendUID(){
unsigned int tinicial = millis();
unsigned int tfinal;
char input;
digitalWrite(buzzer, HIGH);
delay(50);
digitalWrite(buzzer, LOW);
delay(50);
digitalWrite(buzzer, HIGH);
delay(50);
digitalWrite(buzzer, LOW);
delay(50);
digitalWrite(buzzer, HIGH);
delay(50);
digitalWrite(buzzer, LOW);
Serial.println(«Badge detectado»);
checkCon();
tfinal = millis();
Serial.println(«Enviando info»);
if(client.connect(server, 80)){
client.println(«GET » + streamId + uidHex + «&T=» + «2» + «&O=» + «1»);
Serial.println(server + streamId + uidHex + «&T=» + «2» + «&O=» + «1»);
delay(150);
}else{
//Serial.print(«Client connect: «);
//Serial.println(client.connect(server, 80));
if(client.connect(server, 80) == 1){
Serial.println(«Client SUCCESS»);
delay(150);
}else if(client.connect(server, 80) == -1){
Serial.println(«Client TIME OUT»);
delay(150);
}else if(client.connect(server, 80) == -2){
Serial.println(«Client INVALID SERVER»);
delay(150);
}else if(client.connect(server, 80) == -3){
Serial.println(«Client TRUNCATED»);
delay(150);
}else if(client.connect(server, 80) == -4){
Serial.println(«Client INVALID RESPONSE»);
delay(150);
}
/*SUCCESS 1
TIMED_OUT -1
INVALID_SERVER -2
TRUNCATED -3
INVALID_RESPONSE -4
*/
Serial.println(«Info no enviada»);
delay (100);
wdt_enable(WDTO_15MS);
for(;;){
//do nothing
}
Serial.print(«fake»);
}
lup:
tfinal = millis();
if(tfinal – tinicial >3000){
input = ‘0’;
Serial.println(«Break»);
return input;
}else{
if (client.available()) {
input = client.read();
delay(150);
}else{
Serial.print(«.»);
//Serial.println(«client not available»);
goto lup;
}
if (!client.connected()) { // if the server’s disconnected, stop the client:
client.stop();
return input;
}else{ goto lup; }
}
}
void torniquete() {
if ((SendUID() == ‘1’)||(uidHex==»6374b087″)){
digitalWrite(rele,LOW);
Serial.println();
Serial.println(«Pasa»);
delay(100);
digitalWrite(rele,HIGH);
delay(2000);
}else{
digitalWrite(rele,HIGH);
Serial.println();
Serial.println(«No pasa»);
delay(500);
}
}
void loop() {
tfinalReset = millis();
if((tfinalReset-tinicialReset)>=10000){
checkCon();
tinicialReset = millis();
}
// Revisamos si hay nuevas tarjetas presentes
if ( mfrc522.PICC_IsNewCardPresent())
{
//Seleccionamos una tarjeta
if ( mfrc522.PICC_ReadCardSerial())
{
// Enviamos serialemente su UID
for (byte i = 0; i < mfrc522.uid.size; i++) {
uidHex = String(mfrc522.uid.uidByte[3] < 0x10 ? "0" : "") + String(mfrc522.uid.uidByte[3], HEX) + String(mfrc522.uid.uidByte[2] < 0x10 ? "0" : "") + String(mfrc522.uid.uidByte[2], HEX) +
String(mfrc522.uid.uidByte[1] < 0x10 ? "0" : "") + String(mfrc522.uid.uidByte[1], HEX) + String(mfrc522.uid.uidByte[0] < 0x10 ? "0" : "") + String(mfrc522.uid.uidByte[0], HEX);
}
Serial.println();
// Terminamos la lectura de la tarjeta actual
uidHex.toCharArray(numhex, 9);
decimal_answer = strtol(numhex, NULL, 16);
// Terminamos la lectura de la tarjeta actual
mfrc522.PICC_HaltA();
torniquete();
}
}
uidHex="";
}
Hola, esta complicado leer todo tu código, pero tienes varios if que le faltarían paréntesis para que sean mas claros, yo pondría varios en todos los ifs, saludos. Por ejemplo: antes de esta instruccion: if(client.connect(server, 80)){ por si el cliente no se conecta. o aqui: if (client.available()) {
Buenos dias
Yo en mi empleo quiero implementar un sistema de sensores que con la tarjeta pueda abrir las puertas este material me sirve para eso
por favor agradezco su coloración y quiero saber que mas podria necesitar para llevar acabo este proyecto
Buen dia, me gustaria saber si ese mismo codigo se puede hacer pero sin libreria MFRC522, requiero esto para un trabajo final pero veo que es complicado por que hay que sacar fragmentos de la libreria, resia de mucha ayuda que por ejemplo me guiaran como declarar el StatusCode en arduino ide, por favor es algo muy urgente.