Problema Arduino con RFID RC-522

Salve,
non riesco a far funzionare il mio lettore RFID-RC522.
Ho scaricato ed installato la libreria Rfid, ma ho problemi nella lettura di un Tag, non ho proprio capito come si fa.
Ho provato su internet ma non sono riuscito a trovare qualche codice che funziona in italiano.

Potete gentilmente postarmi un codice per la sola lettura di un tag?
Grazie a tutti.

quale libreria ?

una che funziona senza problemi e' questa GitHub - miguelbalboa/rfid: Arduino RFID Library for MFRC522

Quella libreria è quella che uso.
Il mio intento è di leggere l'ID del tag,
paragonarlo ad un codice ID salvato in memoria, e verificare se l'ID letto è uguale all'ID salvato.

Nel codice per leggere l'id c'è:
if ( ! mfrc522.PICC_IsNewCardPresent())
return;

Quella condizione indica--> Se non c'è nessuna carta, ritorna.
Ora visto che a me serve che legga l'ID solo se c'è la carta, ho tolto il punto esclamativo che va a negare la condizione, e quindi diventa:

if ( mfrc522.PICC_IsNewCardPresent())
{
String id = "";
for (byte i = 0; i < mfrc522.uid.size; i++)
id += mfrc522.uid.uidByte*;*

  • Serial.println(id);*
    }
    Nel momento in cui leggo l'id usando quel for, la variabile rimane vuota, cioè il programma non entra nel For;

EDIT:
per quanto riguarda la lettura ho risolto impostando questa condizione:
if(!(!mfrc522.PICC_IsNewCardPresent() || !mfrc522.PICC_ReadCardSerial()))
//operazioni per la lettura

La questione è far ripetere una sola volta la lettura. Infatti se io tengo il tag sopra il lettore per 5 secondi,
Arduino continua a spararmi sulla seriale il valore dell'id!
Ho provato a instanziare una booleana inizialmente falsa,
if(C'è un Tag?)
if(!(booleana))
booleana = true;
//operazioni di lettura e stampa sulla seriale
else
booleana = false;

Il fatto è che, anche se c'è un tag davanti al lettore, la condizione prima nell'if e poi nell'else, cioè è come se quando sposto il tag sul lettore, il programma dice che il tag c'è e poi non c'è, c'è e poi non c'è.
Questo m lascia perplesso!! :open_mouth: