Я працюю над проектом для мого локального Makerspace, у нас обмежений бюджет, тому я сподівався використовувати RFID-RC522 el'cheap'o RFID / NFC зчитувачі на eBay, я отримав пару плат на базі SPI, вони працюють, проте приклади коду для них обмежені.
Я знайшов кілька різних бібліотек і вирішив цю: https://github.com/ljos/MFRC522
Проблема полягає в тому, що весь доступний код в Інтернеті, здається, породжується з деяких китайських хлопців Python-коду, який люди переклали, і зламали в бібліотеку Arduino.
Код працює, але призначені карти Mifare мають 4, 7 або 10 байт UID, і приклад / бібліотека повертає 5-байтний серійний номер.
Документації немає, а таблиця даних NXP незрозуміла ... Крім того, вона, здається, працює з більшістю карт, але вона не працює з картками Mastercard PayWave, які відповідають стандарту ISO 14443. Дорожчий зчитувач RDM880, заснований на MFRC500, працює чудово і має приємну бібліотеку, але вартість робить його неможливим.
Отже, чи може хтось допомогти мені отримати цей блок на основі NXP MFRC522, який читає UID з усіх карт 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
масив має довжину 5. Чи намагалися ви використовувати більший масив, оскільки вам потрібен 10-байтний результат?