NFC 标签 v1.0 & arduino UNO
NFC tag v1.0 & arduino UNO
我的老师刚刚给了我一个项目的 NFC 标签 v1.0。我必须用我的 phone 来解锁一扇门。
我在网上搜索了一下,刚找到这段代码:
#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/
我可以连接 phone 并用它来改变方块。问题是当我尝试时,LED 根本不工作。我尝试了 LED,他正在工作,我还尝试了带有 LED 的 Arduino UNO 上的数字引脚,它也能正常工作。此外,显示器不显示任何 printLn。
我是这样连接的:
SCL-RX
SDA-TX
接地 - 接地
5V - VCC
我也用代码调试过,但是无论我用什么地址读取字节,用phone用app改了,总是得到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 工作,我已经在 pin5 的出口有一个带有电源转换器的晶体管,所以门可以解锁。
顺便说一下,我不知道为什么有时 NFC 不起作用,但在尝试一些之后它又开始起作用了。
任何帮助将不胜感激:) 谢谢。
我的老师刚刚给了我一个项目的 NFC 标签 v1.0。我必须用我的 phone 来解锁一扇门。
我在网上搜索了一下,刚找到这段代码:
#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/
我可以连接 phone 并用它来改变方块。问题是当我尝试时,LED 根本不工作。我尝试了 LED,他正在工作,我还尝试了带有 LED 的 Arduino UNO 上的数字引脚,它也能正常工作。此外,显示器不显示任何 printLn。
我是这样连接的:
SCL-RX
SDA-TX
接地 - 接地
5V - VCC
我也用代码调试过,但是无论我用什么地址读取字节,用phone用app改了,总是得到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 工作,我已经在 pin5 的出口有一个带有电源转换器的晶体管,所以门可以解锁。
顺便说一下,我不知道为什么有时 NFC 不起作用,但在尝试一些之后它又开始起作用了。
任何帮助将不胜感激:) 谢谢。