// declarar librerias
#include <SPI.h>
#include <MFRC522.h>
#include <Servo.h>
// declarar variables
#define RST 9
#define SS 10
MFRC522 lector(SS, RST);
Servo s1;
byte lecturaUID[4];
byte user1[4] = {0x04, 0x11, 0x22, 0x33}; // tarjeta NFC
byte user2[4] = {0xC0, 0xFF, 0xEE, 0x99}; // llavero Key Fob
int ledv = 2;
int buz = 4;
// declarar entradas y salidas
void setup() {
Serial.begin(9600);
SPI.begin();
lector.PCD_Init();
s1.attach(3);
pinMode(ledv, OUTPUT);
pinMode(buz, OUTPUT);
Serial.println("Sistema Activado");
}
// declarar la accion
void loop() {
if (!lector.PICC_IsNewCardPresent())
return;
if (!lector.PICC_ReadCardSerial())
return;
Serial.print("UID:");
for (byte i = 0; i < lector.uid.size; i++) {
if (lector.uid.uidByte[i] < 0x10) {
Serial.print(" 0");
}
else {
Serial.print(" ");
}
Serial.print(lector.uid.uidByte[i], HEX);
lecturaUID[i] = lector.uid.uidByte[i];
}
Serial.println();
if (comparaUID(lecturaUID, user1)) {
Serial.println("ingreso usuario tarjeta");
digitalWrite(ledv, HIGH);
s1.write(90);
delay(3000);
digitalWrite(ledv, LOW);
s1.write(0);
}
else if (comparaUID(lecturaUID, user2)) {
Serial.println("ingreso usuario llavero");
digitalWrite(buz, HIGH);
s1.write(180);
delay(2000);
digitalWrite(buz, LOW);
s1.write(0);
}
// USUARIO NO AUTORIZADO
else {
Serial.println("Usuario no autorizado");
}
lector.PICC_HaltA();
}
// funcion de comp
boolean comparaUID(byte lectura[], byte usuario[]) {
for (byte i = 0; i < 4; i++) {
if (lectura[i] != usuario[i])
return(false);
}
return(true);
}Loading
mfrc522
mfrc522