Arduino大师练成手册 -- 控制 PN532 NFC 模块
要在 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标签的UID
uint8_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 的库管理器中搜索并安装。
引脚定义:确保代码中的引脚定义与实际连接一致。