Problem comparing 2 cards with a RFID

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 :slight_smile:

Problem with your code.