NFC tag v1.0 & arduino UNO



我的老师刚刚给了我一个项目的NFC标签v1.0。我得用手机开门。

我在网上搜索了一下,发现了这个代码:

#include "NfcTag.h"
#include <Wire.h>
NfcTag nfcTag;
int led = 5;
bool flag = false;
bool preFlag = false;
void setup(){
Serial.begin(9600);
pinMode(led,OUTPUT);
nfcTag.init();
}
void loop(){
flag = nfcTag.readByte(EEPROM_I2C_LENGTH-1) == 0xff?true:false;
if(flag != preFlag){
Serial.println("get remote NFC control signal!");
if(flag == true){
Serial.println("led will light up!");
digitalWrite(led,HIGH);
}else{
Serial.println("led will turn dark!");
digitalWrite(led,LOW);
}
preFlag = flag;
}
delay(5*1000);
}

这来自他们的wiki:http://wiki.seeed.cc/Grove-NFC_Tag/

我可以连接手机并使用它来更改区块。问题是,当我尝试它时,LED根本不工作。我试过LED,他正在工作,我也试过用LED在Arduino UNO上的数字引脚,它也工作得很好。此外,监视器不会显示任何打印内容。

我用这种方式连接它们:

SCL-RX-

SDA-TX

GND-GND

5V-VCC

我也用了一个代码来调试,但无论我用什么地址来读取Byte,即使在使用手机用应用程序更改后,我也总是会得到数字127。

#include "NfcTag.h"
#include <Wire.h>
NfcTag nfcTag;
bool flag = false;
bool preFlag = false;
void setup() {
// put your setup code here, to run once:
Serial.begin(115200);
Serial.println("starting sequence");
nfcTag.init();
}
void loop() {
// put your main code here, to run repeatedly:
Serial.println("checking for nfc");
//flag = nfcTag.readByte(EEPROM_I2C_LENGTH-1) == 0xff?true:false;
//Serial1.println(flag);
Serial.println(nfcTag.getICNumber());
Serial.println(nfcTag.getAFI());
Serial.println(nfcTag.getRFU());
Serial.println(nfcTag.getMemoryVolume());
Serial.println("result:");
Serial.println(nfcTag.readByte(EEPROM_I2C_LENGTH-1)); //I tried changeing manualy the value, but the output still 127.
delay(2000);
}

输出:

checking for nfc
127
127
32639
8355711
result:
127

如果我能让LED工作,我已经在引脚5的出口上有了一个带电源转换器的晶体管,所以门可以解锁。

顺便说一句,我不知道为什么有时NFC不工作,经过一番尝试后,它又开始工作了。

任何帮助都将不胜感激:)谢谢。

I2C引脚的正确连接是:

  • SCL-PC5(模拟A5)
  • SDA-PC4(模拟A4)

此部件在连接时支持Uart通信。您为正在使用的部件提供的链接仅支持I2C,在连接时无法工作。

最新更新