Saya sedang mengerjakan proyek untuk Makerspace lokal saya, kami memiliki anggaran terbatas, jadi saya berharap dapat menggunakan pembaca RFID / NFC el'cheap'o RFID-RC522 di eBay, saya menerima beberapa papan berbasis SPI, mereka bekerja, namun, contoh kode untuk mereka terbatas.
Saya telah menemukan beberapa perpustakaan yang berbeda dan memilih yang ini: https://github.com/ljos/MFRC522
Masalahnya adalah bahwa semua kode yang tersedia secara online tampaknya muncul dari beberapa kode Python orang Cina yang telah diterjemahkan orang, dan diretas ke perpustakaan Arduino.
Kode berfungsi, tetapi kartu Mifare dimaksudkan untuk memiliki 4, 7 atau 10 byte UID dan contoh / pustaka mengembalikan nomor seri 5 byte.
Tidak ada dokumentasi dan lembar data NXP tidak dapat dipahami ... Selain itu tampaknya berfungsi dengan sebagian besar kartu, tetapi tidak berfungsi dengan kartu Mastercard PayWave yang sesuai dengan standar ISO 14443. Pembaca RDM880 yang lebih mahal yang didasarkan pada MFRC500 berfungsi dengan baik dan memiliki perpustakaan yang bagus tetapi biaya membuat implementasi tidak mungkin.
Jadi, dapatkah seseorang membantu saya untuk mendapatkan unit berbasis NXP MFRC522 ini membaca UID dari semua kartu 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
panjang array Anda 5. Apakah Anda mencoba menggunakan array yang lebih besar karena Anda menginginkan hasil 10 byte?