Enregistrement de plusieurs badge RFID

Bonjour

je voudrais savoir si il existe un morceau de programme que vous pourriez me donner pour pouvoir en enregistrer plusieurs badge (UID), j’ai beaucoup chercher mais je reste sans réponse jusque la. Merci

Bonjour,
Déjà, est-ce que tu sais enregistrer un badge et le relire?

Ça veut dire quoi ?

j'ai déjà référencer un badge dans mon code mais lorsque je Bip le badge ca le reconnait mais lorsque j'en rajoute un autre ca ne veut.

EDIT (J-M-L). RAJOUT BALISES DE CODE.

#include <Wire.h>
#include <SPI.h>
#include <MFRC522.h>
#include "rgb_lcd.h"


rgb_lcd lcd;


// ecrire ici le numero UID du bon badge
const byte bonUID[1] = {224, 33, 203, 128};



//

const int pinLEDRouge = 6; // LED rouge
const int pinLEDJaune  = 8; // simulation ouverture porte
const int buzzer = 7; // buzzer
const int pinRST = 9; // pin RST du module RC522
const int pinSDA = 10; // pin SDA du module RC522
MFRC522 rfid(pinSDA, pinRST);
void setup()
{
  SPI.begin();
  rfid.PCD_Init();
  pinMode(pinLEDRouge, OUTPUT);
  pinMode(buzzer, OUTPUT);
  pinMode(pinLEDJaune, OUTPUT);
  lcd.begin(16, 2);
  lcd.println();
}
void loop()
{

  lcd.print("Scannez votre");
  lcd.setCursor(0, 1);
  lcd.print("carte ou badge..");

  int refus = 0; // quand cette variable n'est pas nulle, c'est que le code est refusé
  if (rfid.PICC_IsNewCardPresent()) // on a dédecté un tag
  {
    if (rfid.PICC_ReadCardSerial()) // on a lu avec succès son contenu
    {
      for (byte i = 0; i < rfid.uid.size; i++) // comparaison avec le bon UID
      {
        if (rfid.uid.uidByte[i] != bonUID[i]) {
          refus++;
        }
      }
      if (refus == 0) // UID accepté
      {
        // allume LED verte et active relais pendant 3 secondes

        lcd.clear();
        lcd.setCursor(0, 0);
        lcd.print("ACCES AUTORISE");
        digitalWrite(pinLEDJaune, HIGH);
        tone(buzzer, 440, 500);   // tone(broche, fréquence, durée en ms)
        delay(3000);
        digitalWrite(pinLEDJaune, LOW);
        lcd.clear();
      }
      else { // UID refusé
        // allume LED rouge et active buzzer pendant 3 secondes
        lcd.clear();
        lcd.setCursor(0, 0);
        lcd.print("ACCES REFUSE");
        digitalWrite(pinLEDRouge, HIGH);
        tone(buzzer, 500, 550);   // tone(broche, fréquence, durée en ms)
        delay(3000);
        digitalWrite(pinLEDRouge, LOW);
        lcd.clear();

      }
    }
  }
}

bonUID contient l'identifiant d'un badge. Si tu veux en traiter plusieurs il faut augmenter la taille tu tableau et ajouter les identifiants des autres badges. Ce qui va t'obliger à passer à un tableau à 2 dimensions.
Ensuite, à la lecture il faut parcourir le même tableau pour voir si le badge lu est dans la liste.

Au passage, ton tableau est déjà mal dimensionné puisqu'il contient 4 élément et qu'il est déclaré avec une taille de [1].
Je pense qu'il faudrait que tu creuses un peu le fonctionnement des tableaux.

J'ai rajouté les balises de de code, c'était illisible tel quel. Pour la prochaine fois

  • sélectionner la partie du texte qui correspond au code
  • appuyez sur l'icône </> dans la barre d'outils pour indiquer que c'est du code

(Assurez vous aussi d'indenter le code correctement dans l'IDE avant de le copier pour le coller ici. Cela se fait en pressant ctrlT sur PC ou cmdT sur un Mac)


si vos badges ont un UID sur 4 octets, ça tient dans un unsigned long (ou uint32_t) donc vous pourriez faire un tableau de uint32_t et les manipuler d'un coup

Tu pourrais faire une recherche sur le forum plus particulièrement dans la partie française pour commencer comme ça par exemple