#include <SPI.h>
#include <MFRC522.h>
#define SS_PIN 5
#define RST_PIN 21
MFRC522 rfid(SS_PIN, RST_PIN);
byte tarjetasAutorizadas[][4] = {
{0x01, 0x02, 0x03, 0x04},
{0x93, 0x7C, 0x55, 0x10}
};
int numTarjetas = 2;
void setup() {
Serial.begin(115200);
SPI.begin();
rfid.PCD_Init();
Serial.println("MFRC522 Ready");
Serial.println("Scan a card...");
}
bool esTarjetasAutorizada(byte *uid, byte size) {
for (int i = 0; i < numTarjetas; i++) {
bool coincide = true;
for (byte j = 0; j < size; j++) {
if (tarjetasAutorizadas[i][j] != uid[j]) {
coincide = false;
break;
}
}
if (coincide) {
return true;
}
}
return false;
}
void loop() {
if (!rfid.PICC_IsNewCardPresent()) {
return;
}
if (!rfid.PICC_ReadCardSerial()) {
return;
}
Serial.print("Card UID:");
for (byte i = 0; i < rfid.uid.size; i++) {
Serial.print(rfid.uid.uidByte[i] < 0x10 ? " 0" : " ");
Serial.print(rfid.uid.uidByte[i], HEX);
}
Serial.println();
if (esTarjetasAutorizada(rfid.uid.uidByte, rfid.uid.size)) {
Serial.println("Acceso concedido");
} else {
Serial.println("Acceso Denegado");
}
rfid.PICC_HaltA();
delay(1000);
}Loading
mfrc522
mfrc522