Bonjour,
Je bloque sur un programme qui inclue la lecture d'un IUD de carte RFID, car bien que la lecture de la carte se passe bien, le programme attend la détection d'une carte pour effectuer le reste du programme.
J'ai créé un programme exemple simple pour montrer le problème:
Lorsqu'une carte est détectée, elle est lue et l'IUD s'affiche dans le moniteur série. A la fin du programme j'ai rajouté un "digitalWrite(LED_BUILTIN, HIGH);"
Dans cet exemple, l’Arduino attend qu'une carte soit détectée pour avancer dans le programme et allumer la LED.
Comment faire pour que l’exécution du programme ne soir pas bloqué par l'attente d'une lecture par le module RFID?
Merci pour votre aide.
Christophe
#include <SPI.h>
#include <MFRC522.h>
#define SS_PIN 53
#define RST_PIN 5
//RFID
MFRC522 rfid(SS_PIN, RST_PIN); // Instance of the class
//variables RFID
// stock l'IUD RFID
byte nuidPICC[4];
void setup() {
pinMode(LED_BUILTIN, OUTPUT);
Serial.begin(9600);
//RFID
// Init SPI bus
SPI.begin();
// Init MFRC522
rfid.PCD_Init();
}
void loop() {
//RFID début
// Initialisé la boucle si aucun badge n'est présent
if ( !rfid.PICC_IsNewCardPresent())
return;
// Vérifier la présence d'un nouveau badge
if ( !rfid.PICC_ReadCardSerial())
return;
// Afffichage
Serial.println(F("Un badge est détecté"));
// Enregistrer l’ID du badge (4 octets)
for (byte i = 0; i < 4; i++) {
nuidPICC[i] = rfid.uid.uidByte[i];
}
delay(500);
// Affichage de l'identifiant
Serial.println(" L'UID du tag est:");
for (byte i = 0; i < 4; i++)
{
Serial.print(nuidPICC[i], DEC);
Serial.print(" ");
}
Serial.println();
// Re-Init RFID
rfid.PICC_HaltA(); // Halt PICC
rfid.PCD_StopCrypto1(); // Stop encryption on PCD
//RFID Fin
digitalWrite(LED_BUILTIN, HIGH);
//FIN
}