Hi,
I have a problem with comparing 2 cards with a RFID module, I use a arduino UNO.
The problem is when I put the first card it goes trought "access 1 valid" then "access 1 invalid" but I only want the card going in "access 1 valid".
And when I put the second card it goes trought "access 1 unvalid"
Here is the program:
#include <SPI.h>
#include <RFID.h>
#include <Wire.h>
#include "rgb_lcd.h"
#define SS_PIN 10
#define RST_PIN 9
RFID rfid(SS_PIN,RST_PIN);
rgb_lcd lcd;
const int relaisPin = 8;
const int colorR = 255;
const int colorG = 155;
const int colorB =30;
int serNum[5];
int card1[][5] = {{32,149,77,109,149}};
int card2[][5] = {{156,160,140,171,27}};
int access1 = false;
int access2 = false;
void setup(){
Serial.begin(9600);
SPI.begin();
rfid.init();
pinMode(relaisPin, OUTPUT);
}
void loop(){
if(rfid.isCard()){
if(rfid.readCardSerial()){
Serial.print(rfid.serNum[0]);
Serial.print(" ");
Serial.print(rfid.serNum[1]);
Serial.print(" ");
Serial.print(rfid.serNum[2]);
Serial.print(" ");
Serial.print(rfid.serNum[3]);
Serial.print(" ");
Serial.print(rfid.serNum[4]);
Serial.println("");
for(int x = 0; x < sizeof(card1); x++){
for(int i = 0; i < sizeof(rfid.serNum); i++ ){
if(rfid.serNum[i] != card1[x][i]) {
access1 = false;
Serial.println("access 1 invalid");
} else {
access1 = true;
Serial.println("access 1 valid");
}
if(access1) break;
}
}
}
if(rfid.readCardSerial()){
Serial.print(rfid.serNum[0]);
Serial.print(" ");
Serial.print(rfid.serNum[1]);
Serial.print(" ");
Serial.print(rfid.serNum[2]);
Serial.print(" ");
Serial.print(rfid.serNum[3]);
Serial.print(" ");
Serial.print(rfid.serNum[4]);
Serial.println("");
for(int x = 0; x < sizeof(card2); x++){
for(int i = 0; i < sizeof(rfid.serNum); i++ ){
if(rfid.serNum[i] != card2[x][i]) {
access2 = false;
Serial.println("access 2 invalid");
} else {
access2 = true;
Serial.println("access 2 valid");
}
if(access2) break;
}
}
}
}
rfid.halt();
}
Thanks for your answers ![]()