Consegui fazer um código para meu modulo funcionar, porem, a minha chave de acesso, que é o meu cartão cujo o UID dele é: D325F5FC.
Só é lido uma vez, ou seja, ele só me garante acesso uma vez, depois para de ler, e quando eu coloco outras tags/cartões, não acende o led vermelho para identificar que o acesso foi negado
#include <SPI.h>
#include <MFRC522.h>
#define SS_PIN 10
#define RST_PIN 9
#define LED_GREEN 3 // Pino para o LED verde
#define LED_RED 4 // Pino para o LED vermelho
MFRC522 mfrc522(SS_PIN, RST_PIN); // Cria instância do MFRC522
void setup() {
Serial.begin(9600); // Inicia a serial
SPI.begin(); // Inicia SPI bus
mfrc522.PCD_Init(); // Inicia MFRC522
pinMode(LED_GREEN, OUTPUT); // Define o pino do LED verde como saída
pinMode(LED_RED, OUTPUT); // Define o pino do LED vermelho como saída
Serial.println("Aproxime o seu cartao do leitor");
}
void loop() {
// Verifica se um novo cartão foi detectado
if (mfrc522.PICC_IsNewCardPresent()) {
// Seleciona o cartão
if (!mfrc522.PICC_ReadCardSerial()) {
return;
}
// Extrai o UID do cartão
String cardUID = "";
for (byte i = 0; i < mfrc522.uid.size; i++) {
cardUID.concat(String(mfrc522.uid.uidByte[i] < 0x10 ? "0" : ""));
cardUID.concat(String(mfrc522.uid.uidByte[i], HEX));
}
// Converte para maiúsculas para garantir correspondência de caso
cardUID.toUpperCase();
// Verifica o UID do cartão permitido
if (cardUID == "D325F5FC") {
Serial.println("Acesso concedido!");
digitalWrite(LED_GREEN, HIGH); // Acende o LED verde
delay(2000);
digitalWrite(LED_GREEN, LOW); // Apaga o LED verde
} else {
Serial.println("Acesso negado!");
digitalWrite(LED_RED, HIGH); // Acende o LED vermelho
delay(2000);
digitalWrite(LED_RED, LOW); // Apaga o LED vermelho
}
// Reseta o cartão lido para permitir nova leitura
mfrc522.PICC_HaltA();
mfrc522.PCD_StopCrypto1();
}
}
SDA:10
SCK:13
MOSI:11
MISO:12
RST:9
Led_GREEN:3
Led_RED:4
O resto são ligações como 5v, 3.3v, GND