Rifd weigand 26 bit

Bonjour la gang !

J’ai trouver un program simple et très fonctionnel pour les puces 125k Weigand 26 bits. Je vous le partage pour ceux qui comme moi peuvent avoir chercher beaucoup…

Ma question sur le programme est qu’apres un delais de disons 30 minutes. Le premier scan de ma puce n’ouvre pas la led (pour le moment une led), mais qu’apres le deuximere coups tout fonctionne bien ! Et ca fonctionne à tout coup apres. Jusqu’a ce qu’un delais 30 minutes ~ s’écoule.
Si vous voyez une maniere plus efficace d’amilorer quoi ce sois, dite moi !

Merci pour votre aide et Bon Temps des Fetes !!!

voici le code:

volatile unsigned long tagID = 0;
volatile unsigned long lastBitArrivalTime;
volatile int bitCount = 0;
int led= 13;
boolean Door = 0;
unsigned long previousMillis = 0;
const long interval= 5000;

void ISRone(void)
{
  lastBitArrivalTime = millis();
  bitCount++;
  tagID <<= 1;
  tagID |= 1;
}

void ISRzero(void)
{
  lastBitArrivalTime = millis();
  bitCount++;
  tagID <<= 1;
}

void setup()
{
  Serial.begin(115200);

  pinMode(led,OUTPUT);
  pinMode(2, INPUT);
  digitalWrite(2, HIGH);  // Enable pull-up resistor
  attachInterrupt(0, ISRzero, FALLING);

  pinMode(3, INPUT);
  digitalWrite(3, HIGH);  // Enable pull-up resistor
  attachInterrupt(1, ISRone,  FALLING);

  tagID = 0;
  bitCount = 0;
}

void loop()
{ 
 
  unsigned long currentMillis = millis();

  //  See if it has been more than 1/4 second since the last bit arrived
  if(bitCount > 0 && millis() - lastBitArrivalTime >  250){
    Serial.print(bitCount, DEC);
    Serial.print(" bits: ");
    Serial.println(tagID);
    tagID = 0;
    bitCount = 0;
  }

if ( tagID == 3xxxxxx & Door == LOW) {     // 3xxxxxx est le code hex de la puce autorisé
   
      Serial.println (" OPEN");
        digitalWrite(led, HIGH);
         Door= HIGH;
         previousMillis = currentMillis;
   }

if (Door==HIGH){
        if (currentMillis - previousMillis >= interval) {
              Serial.println("Close");
                digitalWrite(led, LOW);
                 Door=LOW;
                    }
  }
      

}

Quqlqu'un a une petite idée svp ?