好吧所以我对Arduino很新,从eBay那里拿起Mega2560入门套件以及其他一些配件前一段时间我有一个“仿冒”板,但它似乎对其他一切都很好至今。无论如何,我购买了一台MF522-AN RFID阅读器并且无法让它工作。我已经尝试了此页面上的代码:
http://www.grantgibson.co.uk/blog/2012/04/how-to-get-started-with-the-mifare-mf522-an-and-arduino/
当我把所有东西挂起来时它只给我一个空白的串行页面,TX和RX灯保持不亮。我已经尝试根据此页面建议的两个引脚布局将其挂起:
什么也没有。我已经尝试了随附的RFID标签以及我的Keyfob进入我的宿舍并且没有任何工作,Arduino软件上的串行窗口仍然是空白的。这是我试图运行的代码:http:// pastie.org/4235666
答案 0 :(得分:1)
尝试取消注释第186-196行:
// Serial.println("The card's number is : ");
// etc
每当标记进入范围时,这应该提供一些详细的输出。
答案 1 :(得分:1)
首先确保所有连接都正确。如果您的MF522-AN有针脚标记,请按此顺序进行。如果没有,请从左下角的针脚开始。
您正在使用的代码是检查第一对卡号是否与Grant使用的卡号相同(第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的原始代码混淆了工作,try this one。我还在那里包含了引脚和SPI信息。所有卡号对也在示例代码中转换为十进制数。
答案 2 :(得分:0)
我不知道你是否已经尝试过这个,但是你可能需要稍微改变从Arduino到RFID阅读器的连接,因为你所拥有的超级2560具有与UNO不同的SPI引脚,演示是原本注定的。我相信51. 52和53负责......你应该查看Arduino网站上的Mega 2560页面。
-Ben