int ledVerde=4;
int ledRojo=5;
int option;
#include <SPI.h> // libreria para el lector
#include <MFRC522.h> // libreria para el lector
#define RST_PIN 9 // reset del mfrc522
#define SS_PIN 10 // selector de chip
#define ledVerde 4
#define ledRojo 5
MFRC522 mfrc522(SS_PIN, RST_PIN);
MFRC522::MIFARE_Key key;
byte tag1[4] = {0xA4, 0x98, 0x39, 0xA5};
byte tag2[4] = {0x70, 0x78, 0x70, 0xA4};
byte tagActual[4]
void setup() {
[Link](9600); // velocidad del puerto serie
while (!Serial); // comprobar si ya ha iniciado
[Link](); // inicia la comunicacion SPI
mfrc522.PCD_Init(); //inicia la comunicacion con el modulo RFID
pinMode(ledVerde,OUTPUT);
pinMode(ledRojo,OUTPUT);
}
void loop() {
if ( ! mfrc522.PICC_IsNewCardPresent()) // comprobar si esta presente la
tarjeta
return;
// Selecciona una tarjeta
if ( ! mfrc522.PICC_ReadCardSerial()) // leer la tarjeta
return;
[Link](F("Card UID:"));
dump_byte_array([Link], [Link]); // obtiene los
valores leidos de la tarjeta
digitalWrite(ledVerde,LOW); // apaga led
digitalWrite(ledRojo,LOW);
}
void dump_byte_array(byte *buffer, byte bufferSize) { // realiza la lectura
del codigo de la tarjeta y comprueba
for (byte i = 0; i < bufferSize; i++) { // extrae valores del codigo
[Link](buffer[i] < 0x10 ? " 0" : " ");
[Link](buffer[i], HEX);
tagActual[i] = buffer[i];
}
if(compararArray(tagActual,tag1)){ // comprobamos el acceso
para el primer usuario
[Link](" Acceso Permitido...");
digitalWrite(ledVerde,HIGH);
delay(1000);
}
else if(compararArray(tagActual,tag2)){ // comprobamos el acceso
para el segundo usuario
[Link](" Acceso Permitido...");
digitalWrite(ledVerde,HIGH);
delay(1000);
}
else {
[Link](" Desconocido" ); // si el codigo no esta
registrado denegar acceso
digitalWrite(ledRojo,HIGH);
delay(1000);
}
}
boolean compararArray(byte array1[], byte array2[]){ // comprobara codigo leido
con el registrado previamente
if(array1[0] != array2[0]) return(false);
if(array1[1] != array2[1]) return(false);
if(array1[2] != array2[2]) return(false);
if(array1[3] != array2[3]) return(false);
return(true);
}
/*
void loop() {
if([Link]()>0){
option = [Link]();
if(option == 'P'){
digitalWrite(led1, HIGH);
digitalWrite(led2, LOw);
}
if(option == 'N'){
digitalWrite(led1, LOW);
digitalWrite(led2, HIGH);
}
}
*/