Arduino : RFID-RC522 Aufhören zu Lesen die Karte mehrmals

Ich gerade zu fassen bekam, der RC522 RFID-Karte für arduino und arbeite mit der mitgelieferten Skizze.
MiFare-RFID-RC522

Was ich geblieben bin, ist das Verständnis, wie pause die Skizze, während die Karte gelesen wird, so ist es nur einmal gelesen. Im moment, solange die Karte ist verbunden mit dem RDIF-Leser die Skizze halten looping und Lesen Sie die Karte jedes mal.

Gibt es eine Verzögerung eingestellt werden können, aber schließlich Lesen Sie die Karte wieder, wenn der Anschluss länger als die Verzögerungszeit.

Was ich möchte ist, sagen zu können, es gibt zwar eine Karte, Verbindung, Lesen Sie die Karten-ID nur einmal dann weiter die Skizze, wenn die Karte eine Verbindung gebrochen ist.

Dies ist das Haupt-sketch-segment:

    void loop()
{

    uchar status;
    uchar str[MAX_LEN];


    //Search card, return card types
    status = MFRC522_Request(PICC_REQIDL, str);
    if (status != MI_OK)
    {
        return;
    }


    //Show card type
    ShowCardType(str);

    //Prevent conflict, return the 4 bytes Serial number of the card
    status = MFRC522_Anticoll(str);

    //str[0..3]: serial number of the card
    //str[4]: XOR checksum of the SN.
    if (status == MI_OK)
    {
        Serial.print("The card's number is: ");
        memcpy(serNum, str, 5);
        ShowCardID(serNum);

        //Check people associated with card ID
        uchar* id = serNum;
        if (id[0] == 0x4B && id[1] == 0xE6 && id[2] == 0xD1 && id[3] == 0x3B) {
            Serial.println("Hello Mary!");
        }
        else if (id[0] == 0x3B && id[1] == 0xE6 && id[2] == 0xD1 && id[3] == 0x3B) {
            Serial.println("Hello Greg!");
        }
        else{
            Serial.println("Hello unkown guy!");
        }
    }


    MFRC522_Halt(); //command the card into sleep mode 

    delay(2000);
}

Danke Jungs.

Schreibe einen Kommentar