2017-11-16 30 views
0

私の先生は、プロジェクト用にNFCタグv1.0を教えてくれました。私はドアを開けるために私の電話を使わなければならない。NFCタグv1.0&arduino UNO

私は、インターネット上で検索し、私はこのコードを見つけました:

#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のデジタルピンを試してもそれも動作します。また、モニターにはprintLn以外のものは表示されません。

私はそれらを接続するには、この方法を使用:

SCL - RX

SDA - TX

GND - GND

5V - VCC

を私ものコードを使用デバッグすることができますが、私がreadByteに使用するアドレスにかかわらず、私はいつもアプリを使ってそれを変更するために電話を使用した後でも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); 

} 

出力:私はLEDの作業を置くことができれば

checking for nfc 
127 
127 
32639 
8355711 
result: 
127 

、私はすでにPIN5の終了時に電力変換器を有するトランジスタを持っているので、ドアのロックを解除することができます。

ちなみに、NFCが動作しないことがあるのはなぜか分かりませんし、試してみると再び動作することがあります。

何か助けていただければ幸いです。ありがとうございます。

+1

なぜI2CをUARTに接続しましたか? –

+0

あなたは間違ったピンを使用しています – Gerhard

答えて

1

I2Cピンの正しい接続である:

  • SCL - PC5(アナログA5)
  • SDA - PC4(アナログA4)

This一部が有線あなたとしてのUART通信をサポートそれ。使用している部品に付属しているlinkは、I2Cのみをサポートしており、配線しても機能しません。

+0

答え/説明をいただきありがとうございます! –