这似乎是个老问题。然而,最近我的教授已经为我分配了一个项目,为他的实验室开发一个考勤暨访问系统。问题陈述是: "开发基于Arduino的安全系统,读取RFID卡并授予实验室访问权限。同样,您可以使用具有以下组件的Arduino Nano v3:1个MFRC522读卡器(NXP Semiconductor),一个用于存储访问信息的SD卡模块(6针配置),一个用于维护时间的RTC模块(DS3231)日志,一个16x2 LCD面板显示消息和一个连接到门的继电器(和一个可选GSM800A模块发送未经授权访问的SMS)。"
到目前为止,我已单独使用上述组件,并且通过使用Arduino Libraries或GitHub存储库上提供的各自库,所有这些组件都可以正常工作。然而,当我尝试在SD卡上保存访问信息时,会出现真正的问题。当读卡器和SD卡共享公共SPI线时,SD卡出现故障,显示SD初始化失败或未找到FAT16 / 32分区或文件名不存在的各种错误。我一直在寻找过去1个月的解决方案,但没有任何成功,我的项目似乎仍然停留在这里。工作流程如下:
等待卡片:
检测到后检查UID
记下UID,时间和日期。
检查SD卡中access.txt文件中的UID。
4A。如果存在UID:通过激活Relay授予访问权限。在LCD上显示相关信息
4b中。如果UID不存在:拒绝访问(如果需要,发送未授权访问的SMS)
好的SMS模块现在并不重要,因为要记住成本(它比所有其他模块的成本更高)。所以我们现在可以把它放在一边。但是,管理Nano(主站)和从站(SD,读卡器)之间的SPI通信的任何帮助都将是有益的。我已经尝试了之前讨论中发布的解决方案,但似乎都没有有效解决,包括在布线中添加220K电阻/二极管。