|
41| 0
|
[教程] 掌控板2.0与SPI接口的RFID RC522实验 |
|
本帖最后由 dlzxlsx 于 2025-12-3 15:09 编辑 Mind+平台自带NFC模块,但此模块为IIC接口,如下图。 ![]() 但笔者学校配了一批RFID模块的却是SPI接口的,如下图: ![]() ![]() 现用掌控板2.0在mind+(1.8.1RC3.0版本)上实现读取卡号,并按键外接LED. 一、实验器材: 1.掌控板2.0 2.掌控IO扩展板SKU:MBT0014 3.MFRC522 4.LED 二、RFID模块与掌控板(扩展板)的连线: ![]()
注意: 1.掌控板的SPI引脚是默认的,不可修改! 2.掌控板的P16为ESP32的gpio05,SCL为gpio22(见掌控板原理图) ![]() 三、加载RC522库 在扩展——用户库中以关键字“rfid"搜索,可得以下结果,选取RFID RC522库。 ![]() 四、编写代码,读取RFID卡号 ![]() 卡片的UID为字符串,保存在data变量中,再通过串口0显示在mind+调试窗口中。 注意:命令语句"RC522初始化SDA 5 RST 22”中的SDA 5指的是esp32中的GPIO5,不是掌控中的P5,RST 22是eps32的GPIO22,非P22!! 上面的代码配合之前连线,上传代码后,刷卡后mind+的串口就能显示该RFID的卡号。 五、刷卡开灯实验 把LED接扩展板的P8,上传下面的代码,即可实现刷卡开灯2灯的效果。 ![]() 生成的C++代码如下 : #include <SPI.h> #include "MFRC522.h" String mind_s_data; MFRC522 mfrc522(5, 22); void setup() { pinMode(P8, OUTPUT); SPI.begin(); mfrc522.PCD_Init(); mind_s_data = "0"; Serial.begin(9600); } void loop() { if ((mfrc522.MFRC522_IsNewCard(&mfrc522))) { mind_s_data = (mfrc522.MFRC522_ReadCardUID(&mfrc522)); Serial.println(mind_s_data); } if ((mind_s_data==String("7c38672e"))) { mind_s_data = ""; digitalWrite(P8, HIGH); delay(2000); digitalWrite(P8, LOW); } } |
沪公网安备31011502402448© 2013-2025 Comsenz Inc. Powered by Discuz! X3.4 Licensed