要在 Arduino 上控制 PN532 NFC 模块,你可以按照以下步骤进行:
硬件连接
VCC:连接到 Arduino 的 3.3V 引脚。
GND:连接到 Arduino 的 GND 引脚。
SDA:连接到 Arduino 的 SDA 引脚(通常是 A4)。
SCL:连接到 Arduino 的 SCL 引脚(通常是 A5)。
安装必要的库
在 Arduino IDE 中,安装 Adafruit PN532 库。你可以在库管理器中搜索并安装该库。
代码示例
以下是一个简单的示例代码,用于读取 MF1S50 NFC 卡的数据:
#include <Wire.h>
#include <Adafruit_PN532.h>// 如果使用I2C接口
#define SDA_PIN A4
#define SCL_PIN A5
Adafruit_PN532 nfc(SDA_PIN, SCL_PIN);
void setup(void) {Serial.begin(9600);Serial.println("Hello! This is a test.");nfc.begin();uint32_t versiondata = nfc.getFirmwareVersion();if (!versiondata) {Serial.print("Didn't find PN53x board");while (1); // halt}// 配置PN532模块进入读卡器模式nfc.SAMConfig();Serial.println("Waiting for an NFC card...");
}
void loop(void) {uint8_t success;uint8_t uid[] = { 0, 0, 0, 0, 0, 0, 0 }; // 缓存NFC标签的UIDuint8_t uidLength; // 存储NFC标签的UID长度success = nfc.readPassiveTargetID(PN532_MIFARE_ISO14443A, uid, &uidLength);if (success) {// 显示NFC标签的UID信息Serial.println("Found an NFC card!");Serial.print("UID Length: ");Serial.print(uidLength, DEC);Serial.println(" bytes");Serial.print("UID Value: ");for (uint8_t i=0; i < uidLength; i++) {Serial.print(" 0x");Serial.print(uid[i], HEX);}Serial.println("");delay(1000);}
}
连接示意图
VCC -> Arduino 3.3V
GND -> Arduino GND
SDA -> Arduino A4
SCL -> Arduino A5
重要提示
库安装:确保安装了 Adafruit PN532 库。如果没有安装,可以在 Arduino IDE 的库管理器中搜索并安装。
引脚定义:确保代码中的引脚定义与实际连接一致。