NFC Shield V2.0
|
|
NFC(近场通信)是一种广泛使用的技术。NFC的一些应用包括无线门禁系统(例如无钥匙门锁)和移动设备支付(例如通过手机应用程序接收付款信息的商店收银机)。
NFC Shield 配备了一个收发器模块 PN532,它处理 13.56MHz 的无线通信,这意味着您可以使用此扩展板读写 13.56MHz 标签,或在扩展板和智能手机之间实现点对点(P2P)数据交换。
对于这个新版本的扩展板,我们创建了一个独立的 PCB 天线区域,这使您能够更容易地将 NFC 接口延伸到主电路外壳之外。
应用创意
如果您想使用 NFC Shield V2.0 制作一些精彩的项目,这里有一些项目供参考。
NFC Shield 演示
纸人,一个与 Android 交互的有趣物体

特性
- 使用 ICSP 接头进行 SPI 通信。这意味着该扩展板适用于以下 Arduino 开发板:Uno、Mega、Leonardo
- 13.56MHz 无线 NFC 通信
- SPI 协议 - 节省引脚的接口,仅需要 4 个引脚
- 输入电压:来自 Arduino 5V 引脚的 5V
- 典型电流:100mA
- 最大有效范围 5cm
- 支持 P2P 通信
- 支持 ISO14443 Type A 和 Type B 协议
硬件概述
NFC 扩展板的引脚和其他端子描述如下。

NFC 扩展板接口
- D10 和 D9 用于 SPI 片选(CS/SS)。默认连接 D10,要连接 D9 需要焊接 SS 焊盘到 D9 焊盘,并刮掉 SS 和 D10 之间的连接。
- D2 可用于接收扩展板的中断请求(IRQ)引脚信号。中断默认未连接,需要焊接"D2/INT0"和"IRQ"焊盘。
- 扩展板直接从 Arduino 的 ICSP 接头获取其 SPI 接口(SPI MOSI、MISO 和 SCK 引脚),这意味着扩展板适用于以下 Arduino:Uno、Mega 和 Leonardo。
- ANT1 端子是 NFC 天线(扩展板附带)的连接位置。
- 扩展板由 Arduino 板的 5V 供电。
NFC 扩展板的天线包含在扩展板中,是一个通过电缆连接到扩展板的独立 PCB 模块。天线是用于接收和发送信息的区域。

NFC 天线 PCB 连接
NFC Shield 设置
硬件安装
- 将 NFC 天线连接到扩展板。
- 将 NFC Shield 堆叠在您的 Arduino 开发板上,并使用 USB 电缆将板连接到 PC。
软件库安装
-
步骤 1. 下载 Seeed Arduino NFC 库。
-
步骤 2. 参考 如何安装库 为 Arduino 安装 Seeed Arduino NFC 库。
-
步骤 3. 通过路径打开"WriteTag"代码:File --> Examples --> WriteTag。
-
步骤 4. 修改代码如下以启用 SPI 通信。
#if 0
#include <SPI.h>
#include <PN532/PN532_SPI/PN532_SPI.h>
PN532_SPI pn532spi(SPI, 10);
NfcAdapter nfc = NfcAdapter(pn532spi);
#else
#include <Wire.h>
#include <PN532/PN532_I2C/PN532_I2C.h>
PN532_I2C pn532_i2c(Wire);
NfcAdapter nfc = NfcAdapter(pn532_i2c);
#endif
void setup() {
SERIAL.begin(9600);
SERIAL.println("NDEF Writer");
nfc.begin();
}
Arduino 可用库菜单
NFC Shield 示例/应用
示例:NFC WriteTag
此示例将向您展示如何使用 NFC shield 扫描 NFC 标签并显示其信息/数据。
在 Arduino IDE 中复制、粘贴,然后将下面的代码上传到您的开发板。
代码
#include <NfcAdapter.h>
#include <PN532/PN532/PN532.h>
#if 0
#include <SPI.h>
#include <PN532/PN532_SPI/PN532_SPI.h>
PN532_SPI pn532spi(SPI, 10);
NfcAdapter nfc = NfcAdapter(pn532spi);
#else
#include <Wire.h>
#include <PN532/PN532_I2C/PN532_I2C.h>
PN532_I2C pn532_i2c(Wire);
NfcAdapter nfc = NfcAdapter(pn532_i2c);
#endif
void setup() {
SERIAL.begin(9600);
SERIAL.println("NDEF Writer");
nfc.begin();
}
void loop() {
SERIAL.println("\nPlace a formatted Mifare Classic or Ultralight NFC tag on the reader.");
if (nfc.tagPresent()) {
NdefMessage message = NdefMessage();
message.addUriRecord("http://arduino.cc");
bool success = nfc.write(message);
if (success) {
SERIAL.println("Success. Try reading this tag with your phone.");
} else {
SERIAL.println("Write failed.");
}
}
delay(5000);
}
要测试代码:
- 打开 Arduino 串口监视器窗口
- 将波特率设置为 115200
- 将 NFC 标签放在 NFC 天线区域上方
- NFC 扩展板将扫描标签,您应该能够在串口监视器窗口中看到 NFC 标签的 UID、标签类型和消息(如果可用)。请参见下图。

常见问题
Q1:电缆的长度是多少?如果我想要更长的电缆,可以多长?
A1:我们与 NFC 扩展板一起销售的电缆长度为 12cm。如果您想要更长的电缆,请不要超过 15cm,并使用 IPX/U.FL 连接器。
Q2:NFC Shield V2.0(SKU:113030001)可以添加两个或更多天线吗?
A2:NFC 扩展板 v2 基于 PN532 芯片。请注意,该设计仅支持一个天线。
NFC Shield v2.0 Eagle 文件原理图在线查看器
NFC Shield v2.1 Eagle 文件原理图在线查看器
资源
- NFC Shield v2.0 原理图
- NFC Shield v2.0 Eagle 文件
- NFC Shield v2.1 原理图
- NFC Shield v2.1 Eagle 文件
- PN532 数据手册
- NFC Shield 常见问题
- Seeed Arduino NFC 库
- PN532 库aaa
项目
纸人 通过 NFC 技术与您的 Android 设备通信的有趣方式。
NFC 卡控制遥控车 挑战您的协调能力:构建您自己的 NFC 控制汽车
技术支持与产品讨论
感谢您选择我们的产品!我们在这里为您提供不同的支持,以确保您使用我们产品的体验尽可能顺畅。我们提供多种沟通渠道,以满足不同的偏好和需求。


