RC522 et Ruban LED qui bloque allumé après passage du TAG

Bonjour bixie

Tu n'as rien mis pour l'éteindre!

J'ai regardé comment mieux tourner ton programme, car tel quel c'était difficile.
J'ai déplacé le test de l'UID dans une fonction boolean cardCheck(byte bonUID[]) qui fait le nécessaire pour dire si l'UID est OK ou pas.
Ainsi, dès que l'UID est OK, la LED s'allume au moins 3 secondes, ensuite le programme attend que la carte soit retirée pour éteindre le LED.

/*******************************************************************************
   RFID LEDs

   Exemple d'utilisation de la bibliothèque MFRC522 par Miguel Balboa

   Lorsque le tag RFID est accepté, une LED verte s'allume pendant 3 secondes
   Lorsque le tag RFID est refusé, une LED rougeo s'allume pendant 3 secondes

   Pour plus de détails:
   
   https://electroniqueamateur.blogspot.com/2017/04/module-rfid-rc522-et-arduino.html
   
***********************************************************************************/


#include <SPI.h>
#include <MFRC522.h>

// copier ici le résultat du sketch "lectureUID.ino":
const byte bonUID[4] = {196, 179, 128, 20};

const int pinLEDStrip = 7; // LED verte

const int pinRST = 9;  // pin RST du module RC522
const int pinSDA = 10; // pin SDA du module RC522
bool (tag) = false;

MFRC522 rfid(pinSDA, pinRST);

void setup()
{
  Serial.begin(115200);
  SPI.begin();
  rfid.PCD_Init();
  pinMode(pinLEDStrip, OUTPUT);


}

void loop()
{
	if (cardCheck(bonUID))
	{
		Serial.println("Card OK");
			
		digitalWrite(pinLEDStrip, HIGH);     // on allume la LED verte pendant trois secondes
		delay(3000);

		while(cardCheck(bonUID)) {}     // tant que cette carte n'est pas retirée
		digitalWrite(pinLEDStrip, LOW);    // on éteind la LED une fois que la carteest retirée
	}
}

boolean cardCheck(byte bonUID[])
{
	boolean check = false;
	rfid.PCD_Init();

	if(rfid.PICC_IsNewCardPresent())
	{		
		if (rfid.PICC_ReadCardSerial())  // on a lu avec succès son contenu
		{
			check = true;
			for (byte i = 0; i < rfid.uid.size; i++) // comparaison avec le bon UID
			{
				if (rfid.uid.uidByte[i] != bonUID[i]) 
				{
					check = false;
				}
			}
		}
	}
	return check;
}

Cordialement
jpbbricole