Arduino RC522字节和十六进制

时间:2013-11-27 08:33:59

标签: arduino

我对RFID场景很陌生,我需要一些帮助! 我需要从我的RC522获取我的卡的价值,他们需要看起来像这样。

示例1:

byte card1[5] = {0xAD,0xB2,0xDB,0xEA,0x3E}; // card1

但此刻我似乎只能将它打印出小数值! 像这样。

示例2:

173 , 178 , 219 , 234 , 46 

如何在第一个示例中获取卡的序列号?

更新

 Serial.print("     ");
 if(data[0] < 16){
 Serial.print("0");
}
Serial.print(data[0],HEX);

if(data[1] < 16){
Serial.print("0");
}
Serial.print(data[1],HEX);

if(data[2] < 16){
Serial.print("0");
}
Serial.print(data[2],HEX);

if(data[3] < 16){
Serial.print("0");
}
Serial.print(data[3],HEX);

if(data[4] < 16){
Serial.print("0");
}

这是用于数组的代码

  if (rfid.isCard()){ // Found valid card
if (rfid.readCardSerial()){ // Reads the card
  delay(1000);
  data[0] = rfid.serNum[0]; // Array's for Card serial number.
  data[1] = rfid.serNum[1];
  data[2] = rfid.serNum[2];
  data[3] = rfid.serNum[3];
  data[4] = rfid.serNum[4];
}

**

编辑2

**

示例2的原始代码

#include <SPI.h>
#include <RFID.h>

RFID rfid(10,5); 

void setup()
{ 
Serial.begin(9600);
SPI.begin(); 
rfid.init();

}

void loop()
{
if (rfid.isCard()) {

      Serial.println("IS CARD");

      if (rfid.readCardSerial()) {

                    Serial.println(" ");
                    Serial.println("The serial number of the card is  : ");
        Serial.print(rfid.serNum[0],DEC);
                    Serial.print(" , ");
        Serial.print(rfid.serNum[1],DEC);
                    Serial.print(" , ");
        Serial.print(rfid.serNum[2],DEC);
                    Serial.print(" , ");
        Serial.print(rfid.serNum[3],DEC);
                    Serial.print(" , ");
        Serial.print(rfid.serNum[4],DEC);
                    Serial.println(" ");
                    delay(1555); // Delay before reading again


      }

}

rfid.halt();
}

1 个答案:

答案 0 :(得分:2)

for(int i=0; i<5; ++i) {
    Serial.print(i?", 0x":"{0x");
    if (rfid.serNum[i]<0x10) Serial.print("0");
    Serial.print(rfid.serNum[i], HEX);
}
Serial.println("}");