Bonjour,
Je suis sur un projet de lecture de badges RFID pour démarrer un PC. J'aimerais enregistrer 2 badges valides, c'est a dire 2 badges qui démarrent l'ordinateur. Je sais qu'il faut créer un tableau unidimensionnel, mais je ne sais pas comment le créer et ou placer les commandes sur le tableau. Je met le code déjà réalisé ci-dessous :
#include <SPI.h>
#include <MFRC522.h>
// ecrire ici le numero UID du bon badge
const byte bonUID[4] = { 167, 60, 176, 18 };
//
const int LedVerte = 2; // LED verte
const int LedRouge = 3; // LED rouge
const int relais = 1; // relais
const int pinRST = 5; // pin RST du module RC522
const int pinSDA = 53; // pin SDA du module RC522
MFRC522 rfid(pinSDA, pinRST);
void setup() {
// put your setup code here, to run once:
SPI.begin();
rfid.PCD_Init();
pinMode(LedVerte, OUTPUT);
pinMode(LedRouge, OUTPUT);
pinMode(relais, OUTPUT);
}
void loop() {
// put your main code here, to run repeatedly:
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é
{
digitalWrite(relais, HIGH); // Le relais laisse passer le signal du PC.
digitalWrite(LedVerte, HIGH); //Allume la led verte (LedVerte).
delay(1000); //Le programme attend 1 sec.
digitalWrite(relais, LOW); //Le relais stoppe le passage du signal.
delay(500); //Le programme attend 0,5 sec
digitalWrite(LedVerte, LOW); //Allume la led verte (LedVerte).
//Résumé de la partie du programme : allume la led verte (LedVerte) et active le relais pendant 1 sec.
} else { // UID refusé
digitalWrite(LedRouge, HIGH); //Allume la led rouge (LedRouge).
delay(1500); //Le programme attend 1,5 sec.
digitalWrite(LedRouge, LOW); //Eteint la led rouge (LedRouge).
//Résumé e la partie du programme : allume la led rouge (LedRouge) et active buzzer pendant 3 secondes
}
}
}
}
PS : si je n'ai pas donné assez d'informations, dites le moi