Go Down

Topic: NFC Shield mit drei NFC Antennen (Read 350 times) previous topic - next topic

mars321

Hallo

Ich suche ein NFC Shield um daran drei NFC Antennen anzuschließen.

Gibt es sowas oder benötige ich ich drei NFC Shields mit je einer Antenne ?

Ich benutzte momentan die NFC Shield von Seed Studio.


Mit freundlichen Grüßen

Mars

noiasca

IMHO brauchst du 3 NFC Shields.
Shield mit 3 Antennenanschlüssen habe ich noch nicht gesehen

Für den PN522 gibt es in den mitgelieferten Beispielen einen Muster Sketch für den Anschluss von mehreren Shields.

DE: Wie man Fragen postet:
1. was hat man (Sketch und Hardware)
2. was SOLL es machen
3. was macht es: IST (Fehlverhalten, Fehlermeldungen, Serial.Output ...)
4. Eine Frage stellen bzw. erklären was man erwartet

mars321

Ich hab jetzt nun zwei NFC Shield von Seed Studio und möchte gerne beide an einem Uno betreiben.

Vom Hersteller wird das als Modifikation angegeben:

"Hardware Modification
Scrape off the connection from the pads labeled "SS" and "D10" on the shield
Connect/solder pads "SS" and "D9" on the shield."  (http://wiki.seeed.cc/NFC_Shield_V2.0/)


Ich hab das ganze mal mit dem Multimeter durchgemessen und Standardmäßig sind die Pins D10 und SS verbunden. Leider weiß ich nicht wie ich diese Verbindung lösen kann. Wie auf dem angehängten Bild sind die Lötstellen optisch nicht verbunden.

Ich verstehe halt nicht genau wie man die Anweisung vom Hersteller zu verstehen hat.

Mit freundlichen Grüßen 

Mars

noiasca

#3
Mar 13, 2018, 12:08 pm Last Edit: Mar 13, 2018, 12:24 pm by noiasca
doch - mit viel Phantasie is da zwischen dem D10 Pad und SS Pad eine Leiterbahn... suche mal mit der Lupe, ...
Ansonsten wenn du es noch immer nicht findest, verbiege einfach den PIN10 so dass er beim Aufstecken auf den Arduino NICHT in Sockel geht. Achte dann aber darauf, dass du damit keinen Kurzschluss/Fehlverbindung machst (ABISOLIEREN!)
DE: Wie man Fragen postet:
1. was hat man (Sketch und Hardware)
2. was SOLL es machen
3. was macht es: IST (Fehlverhalten, Fehlermeldungen, Serial.Output ...)
4. Eine Frage stellen bzw. erklären was man erwartet

mars321

Vielen Dank noiasca mit einer Lupe konnte ich die Verbindung sehen.

Jetzt habe ich das Problem das ich nicht gleichzeitig beide NFC Shields benutzen kann.

Das ist der Code den ich benutze und der auch funktioniert mit je einem Shield:

Code: [Select]
#include <SPI.h>
    #include "PN532_SPI.h"
    #include "PN532.h"
    #include "NfcAdapter.h"

    String const myUID = "1234"; // replace this UID with your NFC tag's UID
    int const greenLedPin = 3; // green led used for correct key notification
    int const redLedPin = 4; // red led used for incorrect key notification

    PN532_SPI interface(SPI, 10); // create a SPI interface for the shield with the SPI CS terminal at digital pin 10
    NfcAdapter nfc = NfcAdapter(interface); // create an NFC adapter object

    void setup(void) {
        Serial.begin(115200); // start serial comm
        Serial.println("NDEF Reader");
        nfc.begin(); // begin NFC comm

        // make LED pins outputs
        pinMode(greenLedPin,OUTPUT);
        pinMode(redLedPin,OUTPUT);

        digitalWrite(greenLedPin, HIGH);
        digitalWrite(redLedPin, HIGH);   
        delay(1000);

        // turn off the LEDs
        digitalWrite(greenLedPin,LOW);
        digitalWrite(redLedPin,LOW);
    }

    void loop(void) {

        Serial.println("Scanning...");
        if (nfc.tagPresent()) // check if an NFC tag is present on the antenna area
        {
            NfcTag tag = nfc.read(); // read the NFC tag
            String scannedUID = tag.getUidString(); // get the NFC tag's UID

            if( myUID.compareTo(scannedUID) == 0) // compare the NFC tag's UID with the correct tag's UID (a match exists when compareTo returns 0)
            {
              // The correct NFC tag was used
              Serial.println("Correct Key");
              // Blink the green LED and make sure the RED led is off
              digitalWrite(greenLedPin,HIGH);
              digitalWrite(redLedPin,LOW);

              delay(500);
              digitalWrite(greenLedPin,LOW);
              delay(500);
              digitalWrite(greenLedPin,HIGH);
              delay(500);
              digitalWrite(greenLedPin,LOW);
              // put your here to trigger the unlocking mechanism (e.g. motor, transducer)
            }else{
              // an incorrect NFC tag was used
              Serial.println("Incorrect key");
              // blink the red LED and make sure the green LED is off
              digitalWrite(greenLedPin,LOW);
              digitalWrite(redLedPin,HIGH);

              delay(500);
              digitalWrite(redLedPin,LOW);
              delay(500);
              digitalWrite(redLedPin,HIGH);
              delay(500);
              digitalWrite(redLedPin,LOW);
              // DO NOT UNLOCK! an incorrect NFC tag was used.
              // put your code here to trigger an alarm (e.g. buzzard, speaker) or do something else
            }
        }
        delay(2000);
    }


Wenn ich den Code so erweitere funktioniert leider keiner der beiden Shields:

Code: [Select]
#include <SPI.h>
    #include "PN532_SPI.h"
    #include "PN532.h"
    #include "NfcAdapter.h"

    String const myUID = "1234"; // Sring auf Tag
    int const greenLedPin = 3; // Grüne Led
    int const redLedPin = 4; // Rote Led

    //PN532_SPI interface(SPI, 10); // create a SPI interface for the shield with the SPI CS terminal at digital pin 10
    //NfcAdapter nfc = NfcAdapter(interface); // create an NFC adapter object

    PN532_SPI interface_shield_1(SPI, 10); // create a SPI interface for the shield with the SPI CS terminal at digital pin 10
    PN532_SPI interface_shield_2(SPI, 9); // create a SPI interface for the shield with the SPI CS terminal at digital pin 9

    NfcAdapter nfc2 = NfcAdapter(interface_shield_1); // create an NFC adapter object for shield one
    NfcAdapter nfc1 = NfcAdapter(interface_shield_2); //

    void setup(void) {
        Serial.begin(115200); // start serial comm
        Serial.println("NDEF Reader");
        nfc1.begin(); // begin NFC comm
        nfc2.begin();
       
        // make LED pins outputs
        pinMode(greenLedPin,OUTPUT);
        pinMode(redLedPin,OUTPUT);

        // turn off the LEDs
        digitalWrite(greenLedPin,LOW);
        digitalWrite(redLedPin,LOW);

        // Hardware Test einfügen !
       
    }

    void loop(void) {

        Serial.println("Scanning...");
        if (nfc2.tagPresent()) // check if an NFC tag is present on the antenna area
        {
            NfcTag tag = nfc2.read(); // read the NFC tag
            String scannedUID = tag.getUidString(); // get the NFC tag's UID

            if( myUID.compareTo(scannedUID) == 0) // compare the NFC tag's UID with the correct tag's UID (a match exists when compareTo returns 0)
            {
              // The correct NFC tag was used
              Serial.println("Correct Key");
              // Blink the green LED and make sure the RED led is off
              digitalWrite(greenLedPin,HIGH);
              digitalWrite(redLedPin,LOW);

              delay(500);
              digitalWrite(greenLedPin,LOW);
              delay(500);
              digitalWrite(greenLedPin,HIGH);
              delay(500);
              digitalWrite(greenLedPin,LOW);
              // put your here to trigger the unlocking mechanism (e.g. motor, transducer)
            }else{
              // an incorrect NFC tag was used
              Serial.println("Incorrect key");
              // blink the red LED and make sure the green LED is off
              digitalWrite(greenLedPin,LOW);
              digitalWrite(redLedPin,HIGH);

              delay(500);
              digitalWrite(redLedPin,LOW);
              delay(500);
              digitalWrite(redLedPin,HIGH);
              delay(500);
              digitalWrite(redLedPin,LOW);
              // DO NOT UNLOCK! an incorrect NFC tag was used.
              // put your code here to trigger an alarm (e.g. buzzard, speaker) or do something else
            }
        }
        delay(2000);
    }


Das Grundgerüst des Codes habe ich von der Seite des Herstellers: http://wiki.seeed.cc/NFC_Shield_V2.0/

Würde mich freuen wenn von euch mal jmd rüber gucken würde.

Mit freundlichen Grüßen

Mars

noiasca

#5
Mar 19, 2018, 12:43 pm Last Edit: Mar 19, 2018, 12:45 pm by noiasca
Für den PN522 gibt es in den mitgelieferten Beispielen einen Muster Sketch für den Anschluss von mehreren Shields.
und zwar in der

MFRC522 library

DE: Wie man Fragen postet:
1. was hat man (Sketch und Hardware)
2. was SOLL es machen
3. was macht es: IST (Fehlverhalten, Fehlermeldungen, Serial.Output ...)
4. Eine Frage stellen bzw. erklären was man erwartet

agmue

Das ist der Code den ich benutze und der auch funktioniert mit je einem Shield:
Das ist nicht logisch! Das eine müßte mit D10, das andere mit D9 (Lötbrücke zu SS) funktionieren.

Ist das so und Du hast es nur nicht beschrieben?

mars321

Das ist nicht logisch! Das eine müßte mit D10, das andere mit D9 (Lötbrücke zu SS) funktionieren.

Ist das so und Du hast es nur nicht beschrieben?

Ja du hast recht das wollte ich aber nicht nochmal extra posten der Übersicht halber.

und zwar in der

MFRC522 library


Ich weiß jetzt nicht so ganz genau wie mir die Library weiter helfen soll ...

Go Up