首先确保所有连接都正确。如果您的 MF522-AN 有引脚标记,请按此顺序进行。如果没有,请从左下角的引脚开始。
您使用的代码是检查第一对卡号是否与格兰特使用的相同(第 200-204 行):
if(serNum[0] == 88) { // Is the first pair equal to 88?
Serial.println("Hello Grant");
}
else if(serNum[0] == 173) { // Is the first pair equal to 173?
Serial.println("Hello David");
}
可能您的卡片与这两个示例中的任何一个都不匹配。如果要逐对打印卡号,请注释这些行 (200-204) 和取消注释行 (186-196):
Serial.println("The card's number is : ");
Serial.print(serNum[0]);
Serial.print(" , ");
Serial.print(serNum[1],BIN);
Serial.print(" , ");
Serial.print(serNum[2],BIN);
Serial.print(" , ");
Serial.print(serNum[3],BIN);
Serial.print(" , ");
Serial.print(serNum[4],BIN);
Serial.println(" ");
如果要打印检测到卡的确认信息,还可以取消注释行 (173-177):
Serial.println("Card detected");
Serial.print(str[0],BIN);
Serial.print(" , ");
Serial.print(str[1],BIN);
Serial.println(" ");
如果您发现 Dr.Leong 的原始代码令人困惑,请试试这个。我还在那里包含了引脚和 SPI 信息。在示例代码中,所有卡号对也都转换为十进制数字。