Hirdetés

Új hozzászólás Aktív témák

  • DeniL

    tag

    Sziasztok,

    a segítségeteket szeretném kérni. Problémába ütköztem, 2 napja agyalok rajta, egyszerűen kezdem feladni és a kukába dobni az egészet :D

    Adott egy feladat:

    Van 6 db NFC tag-em, elneveztem őket 1-6-ig, van egy nfc olvasó (kezdetben egy NFC shield, később a nagyobb hatótáv és teljesítmény miatt ID-12LA vagy ID-20 lesz).

    A 6 darab tag-et megfelelő sorrendben szeretném beolvastatni. Azaz deklaráltam 6 constanst a 6 tag UID-ja alapján és azt szeretném, hogy kezdjen el beolvasni, ha odarakok bármilyen tag-et nem az elsőt, akkor addig olvasson, amíg meg nem kapja az első tag-et, amjd ha megkapta, menjen beljebb és kérje a második tag-et, ha nem a másodikat kapja, addig olvasson, amíg azt nem adom neki....

    A mintakódomban amivel szenvedek az a hibajelenség, hogy kéri az első tag-et, ha nem azt adom neki, akkor olvas újra, ez idáig rendben is van. Ha odaadom neki a megfelelőt, akkor kéri a második tag-et, majd ha nem azt adom oda, 1x lefut az else ág, hogy "újra beolvasás történik", majd másodpercek múlva kifut a kódom és kéri az első tag-et......nem értem miért.

    Még egy valami észrevételt vettem észre, a két NFC/RFID olvasó között (NFC shield/ ID-12LA), hogy amíg az nfc shieldhez odaérintek egy tag-et, akkor kiolvas egyszerre vagy 6x, tehát lehet a kódom lefutna, amíg a ID 12-nél ott tarthatom a tag-et, akkor is csak 1x olvassa le.

    Hogyan tudnám még azt kiküszöbölni, hogy egyszer olvasson (tag UID) és utána többet már ne, csak fusson tovább a kódom?

    És a satnya kódrészletem amin már 2 napja töröm a fejem hiába......

    #include <SPI.h>
    #include <PN532_SPI.h>
    #include <PN532.h>
    #include <NfcAdapter.h>

    String const myUID1 = "F0 D7 70 80";//
    String const myUID2 = "A0 3C 8D 24";//
    String const myUID3 = "C0 9A 0E 26";//
    String const myUID4 = "D2 82 C0 3D";//
    String const myUID5 = "A2 E1 C1 3D";//
    String const myUID6 = "C0 B6 06 26";//

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

    void setup()
    {
    Serial.begin(115200);
    //Serial.println("NFC Tag Writer"); // Serial Monitor Message
    nfc.begin();
    }

    void loop()
    {
    if (nfc.tagPresent())
    {

    NfcTag tag = nfc.read();
    String idnumber = tag.getUidString();

    if (myUID1 == idnumber)
    {
    Serial.println("This is the first");

    NfcTag tag = nfc.read();
    idnumber = tag.getUidString();

    delay(4000);

    if (myUID2 == idnumber)
    {
    Serial.println("This is the second");
    NfcTag tag = nfc.read();
    idnumber = tag.getUidString();

    delay(4000);

    if (myUID3 == idnumber)
    {
    Serial.println("This is the second");
    NfcTag tag = nfc.read();
    idnumber = tag.getUidString();

    delay(4000);

    if (myUID4 == idnumber)
    {
    Serial.println("This is the fourth");
    NfcTag tag = nfc.read();
    idnumber = tag.getUidString();

    delay(4000);

    if (myUID5 == idnumber)
    {
    Serial.println("This is the fifth");
    NfcTag tag = nfc.read();
    idnumber = tag.getUidString();

    delay(4000);

    if (myUID6 == idnumber)
    {
    Serial.println("This is the sixth");
    }
    else
    {
    Serial.println("Not correct tag!");
    }
    }
    else
    {
    Serial.println("Not correct tag!");
    }
    }
    else
    {
    Serial.println("Not correct tag!");
    }
    }
    else
    {
    Serial.println("Not third tag!");
    do {
    NfcTag tag = nfc.read();
    idnumber = tag.getUidString();
    delay(2000);
    }
    while (myUID3 == idnumber);
    }
    }
    else
    {
    Serial.println("Not second tag!");
    do {
    NfcTag tag = nfc.read();
    idnumber = tag.getUidString();
    delay(2000);
    }
    while (myUID2 == idnumber);
    }
    }
    else
    {
    Serial.println("Not firts tag!");
    do {
    NfcTag tag = nfc.read();
    idnumber = tag.getUidString();
    delay(2000);
    }
    while (myUID1 == idnumber);
    }
    }
    else
    {
    Serial.println("Place tag to the reader!");
    }
    }

Új hozzászólás Aktív témák