Tengo duda con un código relacionado con el módulo RFID-RC522
y que aparece publicado en el siguiente [link http://www.leantec.es/blog/29_Control-de-acceso-con-Arduino-y-RFID-.html](http://link http://www.leantec.es/blog/29_Control-de-acceso-con-Arduino-y-RFID-.html)
El código completo es el siguiente:
/
#include <MFRC522.h>//Descargar e incluir la librería
#include <SPI.h>
/*
Pins SPI UNO Mega2560 Leonardo
1 (NSS) SAD (SS) 10 53 10
2 SCK 13 52 SCK1
3 MOSI 11 51 MOSI1
4 MISO 12 50 MISO1
5 IRQ * * *
6 GND GND GND GND
7 RST 5 ? Reset
8 +3.3V (VCC) 3V3 3V3 3.3V
* No necesario
*/
#define SAD 10
#define RST 5
MFRC522 nfc(SAD, RST);
#define ledPinAbierto 2
#define ledPinCerrado 3
void setup() {
pinMode(ledPinAbierto , OUTPUT);
pinMode(ledPinCerrado, OUTPUT);
SPI.begin();
Serial.begin(115200);
Serial.println("Buscando RC522");
nfc.begin();
byte version = nfc.getFirmwareVersion();
if (! version) {//Entra si no encuentra el módulo.
Serial.print("No ha encontrado RC522");
while(1); //detener
}
Serial.print("Ha encontrado RC522");
Serial.print("Firmware version 0x");
Serial.print(version, HEX);
Serial.println(".");
}
#define AUTHORIZED_COUNT 1 //Para autoriazar más tarjetas ponemos el número aqui y la añadimos abajo
byte Authorized[AUTHORIZED_COUNT][6] = {
{0x5F, 0x97, 0xDB, 0xE9, 0xFA}, //Tarjeta
// {0x5D, 0xDE, 0x15, 0xA3, 0x35} LLAVERO
//,{0x10, 0x14, 0x39, 0x2E, 0xFF, 0xFF, } ejemplo de como autorizar más tarjetas 0x83,.....
};
void printSerial(byte *serial);
boolean isSame(byte *key, byte *serial);
boolean isAuthorized(byte *serial);
void loop() {
byte status;
byte data[MAX_LEN];
byte serial[5];
boolean Abierto = false;
digitalWrite(ledPinAbierto, Abierto);
digitalWrite(ledPinCerrado, !Abierto);
status = nfc.requestTag(MF1_REQIDL, data);
if (status == MI_OK) {
status = nfc.antiCollision(data);
memcpy(serial, data, 5);
if(isAuthorized(serial))
{
Serial.println("Autorizado");
Abierto = true;
}
else
{
printSerial(serial);
Serial.println("NO autorizado");
Abierto = false;
}
nfc.haltTag();
digitalWrite(ledPinAbierto, Abierto);
digitalWrite(ledPinCerrado, !Abierto);
delay(2000);
}//if (status == MI_OK)
delay(500);
}//void loop()
boolean isSame(byte *key, byte *serial)
{
for (int i = 0; i < 4; i++) {
if (key[i] != serial[i])
{
return false;
}
}
return true;
}
boolean isAuthorized(byte *serial)
{
for(int i = 0; i<AUTHORIZED_COUNT; i++)
{
if(isSame(serial, Authorized[i]))
return true;
}
return false;
}
void printSerial(byte *serial)
{
Serial.print("Serial:");
for (int i = 0; i < 5; i++) {// aumentar a 5 para leer el número de la tarjeta completo
Serial.print(serial[i], HEX);
Serial.print(" ");
}
}
Yo quiero añadir el número de las 2 tarjetas y que puedan ser leidas por el módulo RFID.
El número hexadecimal de mi tarjeta RFID es: 5F, 97, DB, E9, FA
El número hexadecimal de llavero RFID es: 5D, DE, 15, A3, 35
#define AUTHORIZED_COUNT 1 //Para autoriazar más tarjetas ponemos el número aqui y la añadimos abajo
byte Authorized[AUTHORIZED_COUNT][6] = {
{0x5F, 0x97, 0xDB, 0xE9, 0xFA} //TARJETA
,{0x5D, 0xDE, 0x15, 0xA3, 0x35, 0xFF, 0xFF, } LLAVERO
//,{0x10, 0x14, 0x39, 0x2E, 0xFF, 0xFF, } ejemplo de como autorizar más tarjetas 0x83,.....
};
Me da error al poner los 2 ńumeros (el del llavero y tarjeta RFID) No tengo claro como se ponen uno tras otro sin que dé error. Leo el comentario
¿Alguien podría ayudarme? Gracias por contestar.