Estoy trabajando en un proyecto para mi Makerspace local, tenemos un presupuesto limitado, así que esperaba usar los lectores RFID-RC522 el'cheap'o RFID / NFC en eBay. Recibí un par de placas basadas en SPI, sin embargo funcionan. Los ejemplos de código para ellos son limitados.
He encontrado varias bibliotecas diferentes y me decidí por esta: https://github.com/ljos/MFRC522
El problema es que todo el código disponible en línea parece surgir del código Python de algunos chinos que la gente ha traducido y pirateado en una biblioteca Arduino.
El código funciona, pero las tarjetas Mifare deben tener UID de 4, 7 o 10 bytes y el ejemplo / biblioteca está devolviendo un número de serie de 5 bytes.
No hay documentación y la hoja de datos de NXP es incomprensible ... Además, parece funcionar con la mayoría de las tarjetas, pero no funciona con las tarjetas Mastercard PayWave que cumplen con el estándar ISO 14443. El lector RDM880 más caro, que se basa en el MFRC500, funciona bien y tiene una buena biblioteca, pero el costo hace que la implementación sea imposible.
Entonces, ¿alguien puede ayudarme a conseguir que esta unidad basada en NXP MFRC522 lea el UID de todas las tarjetas ISO 14443?
#include <SPI.h>
#include <MFRC522.h>
#define RFID_SS 10
#define RFID_RST 5
MFRC522 rfid( RFID_SS, RFID_RST );
void setup() {
SPI.begin();
Serial.begin(115200);
rfid.begin();
}
void loop() {
byte data[MAX_LEN];
byte uid[5];
if ( rfid.requestTag( MF1_REQIDL, data ) == MI_OK ) {
if ( rfid.antiCollision( data ) == MI_OK ) {
memcpy( uid, data, 5 );
for ( int i = 0; i < 5; i++ ) {
Serial.print( uid[i], HEX );
Serial.print( ' ' );
}
Serial.println();
}
}
}
uid
matriz es de longitud 5. ¿Intentó usar una matriz más grande ya que desea un resultado de 10 bytes?