Salut,
J'utilise également un MFRC522 pour les tags rfid voici ce que j'utilise et qui marche pour le moment
#include <Wire.h>
#include <rgb_lcd.h>
#include <SPI.h>
#include <MFRC522.h>
rgb_lcd lcd;
const int colorR = 0;
const int colorG = 150;
const int colorB = 150;
#define SS_PIN 53
#define RST_PIN 40
byte tagok = 0;
unsigned long sernum[2] = {0, 3643072285, }; // <-ICI Tu marques le numéro de ta carte
MFRC522 mfrc522(SS_PIN, RST_PIN); // Create MFRC522 instance.
MFRC522::MIFARE_Key key;
void setup() {
lcd.begin(16, 2);
lcd.setRGB(colorR, colorG, colorB);
SPI.begin(); // Init SPI bus
mfrc522.PCD_Init(); // Init MFRC522 card
lcd.print("Init afficheur ");
delay (2500);
lcd.clear();
lcd.print("Scan du badge ?");
lcd.setCursor(0, 2);
}
void loop() {
// Look for new cards
if ( ! mfrc522.PICC_IsNewCardPresent()) {
return;
}
// Select one of the cards
if ( ! mfrc522.PICC_ReadCardSerial()) return;
for (byte i = 0; i < 4; i++) {
}
sernum[0] = *((unsigned long *)mfrc522.uid.uidByte); //recup num serie lu long unsigned
tagok = 0;
for (byte i = 1; i < 10; i++) {
if (sernum[0] == sernum[i]) tagok = 1; // carte reconnue dans la liste
}
if (tagok == 0) { // faire si carte inconnue
lcd.print("Scan du badge");
lcd.setCursor(0, 2);
lcd.print("Badge Invalide");
delay(3000);
lcd.clear();
lcd.print("Scan du badge :");
}
if (tagok >0) //faire si carte reconnue
{
lcd.setCursor(0, 1);
if (sernum[0] == sernum[1]) lcd.print("Tag Reconnu" );
lcd.clear();
}
mfrc522.PICC_HaltA(); // Halt PICC
}
PS: Mon ecran LCD est branché en I2C