#include <SPI.h>
#include <MFRC522.h>
/** -----------------------------------------------------------------------------------------
* MFRC522 Arduino Arduino Arduino Arduino Arduino
* Reader/PCD Uno/101 Mega Nano v3 Leonardo/Micro Pro Micro
* Signal Pin Pin Pin Pin Pin Pin
* -----------------------------------------------------------------------------------------
* RST/Reset RST 9 5 D9 RESET/ICSP-5 RST
* SPI SS SDA(SS) 10 53 D10 10 10
* SPI MOSI MOSI 11 / ICSP-4 51 D11 ICSP-4 16
* SPI MISO MISO 12 / ICSP-1 50 D12 ICSP-1 14
* SPI SCK SCK 13 / ICSP-3 52 D13 ICSP-3 15*/
#define RST_PIN 9
#define SDA_PIN 10
#define GREEN 6
#define RED 5
#define BLUE 7
MFRC522 rf(SDA_PIN, RST_PIN);
byte dovolene[] = {0x93, 0x99, 0xAF, 0xAA};
void setup() {
Serial.begin(9600);
SPI.begin();
rf.PCD_Init();
delay(4);
rf.PCD_DumpVersionToSerial();
Serial.println(F("Naskenuj kartu"));
for (int i = 5; i < 8; i++) {
pinMode(i, OUTPUT);
digitalWrite(i, LOW);
}
}
void loop() {
if (!rf.PICC_IsNewCardPresent()) {
return;
}
if (!rf.PICC_ReadCardSerial()) {
return;
}
byte* cislo_skenu = rf.uid.uidByte;
if (Porovnaj(cislo_skenu, dovolene, sizeof(dovolene))) {
Serial.println("Vstup povoleny");
digitalWrite(GREEN, HIGH);
digitalWrite(RED, LOW);
} else {
Serial.println("Vstup Nepovoleny");
digitalWrite(RED, HIGH);
digitalWrite(GREEN, LOW);
}
delay(500);
}
// Funkcia na porovnanie UID
bool Porovnaj(byte* cislo_skenu, byte* dovolene, byte dlzka_pola) {
for (byte i = 0; i < dlzka_pola; i++) {
if (cislo_skenu[i] != dovolene[i]) {
return false;
}
}
return true;
}