Variables en codigo Arduino

tengo un problema en mi progracion, tengo un array de numeros para los codigos rfid, la situación es que si subo el programa, y al mostrar el codigo rfid, me muestra todos los numeros y no uno solo, como se puede arreglar esto.

#include <SPI.h>       // libreria comunicacion SPI
#include <MFRC522.h>   // libreria del Lector RFID
#include <Wire.h>      // libreria comunicacion I2C
#include <Time.h>      // libreria para el tiempo 
#include <DS1307RTC.h> // libreria del reloj
#include <SD.h>        // libreria para la memoria SD
#define RST_PIN 9 // Configurable, pin 9 para Reset del MFRC522 
#define SS_PIN 10 // Configurable, pin 8 para el selector de chip del MFRC522
const char *Mes[13] = {" ",        // arreglo de meses 
  "Ene", "Feb", "Mar", "Abr", "May", "Jun",
  "Jul", "Ago", "Sep", "Oct", "Nov", "Dic"
};
File myFile;   
MFRC522 mfrc522(SS_PIN, RST_PIN); // Create MFRC522 instance
String read_rfid;                 // variable donde almacena la tarjeta leida 
String tag[36] = {"c3e14de", "c31e31e", "3b83ee", "73a246e","537d44e", "f3cc4de", "93a043e", "235436e","f3b137e", "53933ce", "63f13fe", "131132e","634030e", "237149e", "d3904de", "239d4ae","f33c35e", "e33342e", "c37942e", "83543be","d36043e", "332049e", "134c3ce", "e37242e","3ea33e", "e36b3de", "a34933e", "43993ce","5353f912", "f37f35e", "738947e", "e32d31e","735530e", "331a4be", "13884ee", "438448e" };   // tag Almacenados 
boolean P1=false, P2=false, P3=false, P4=false, P5=false, P6=false, P7=false, P8=false, P9=false, P10=false, P11=false, P12=false, P13= false, P14=false, P15=false, P16= false, P17=false, P18=false, P19=false, P20=false, P21=false, P22=false, P23=false, P24=false, P25=false, P26=false, P27=false, P28=false, P29=false, P30=false, P31=false, P32=false, P33=false, P34=false, P35=false, P36=false;    // condiciones para los estados de entrada o salida 
 int nombre[36] = { 1 ,2 ,3 ,4 ,5 ,6 ,7 ,8 ,9 ,10 ,11 ,12 ,13 ,14 ,15 ,16 ,17 ,18 ,19 ,20 ,21 ,22 ,23 ,24 ,25 ,26 ,27 ,28 ,29 ,30 ,31 ,32 ,33 ,34 ,35 ,36};   // Usuarios registrados 
int pinSD = 4;    // pin selector para la SD 
int LedVerde=7;    // pin 7 para el led verde 
int LedRojo=6;    // pin 7 para el led Rojo 
void setup() {
 pinMode(LedVerde,OUTPUT);    // pin 7 se declara como salida 
 pinMode(LedRojo,OUTPUT);    // pin 6 se declara como salida 
 Serial.begin(9600);        // se inicializa el puerto serial 
 SPI.begin();            // se inicializa la comunicacion SPI 
 mfrc522.PCD_Init();     // se inicia el modulo lector RFID 
  if (!SD.begin(pinSD)) {     // se compruba que este activa la tarjeta SD 
    Serial.println("initializacion fallida!");
    digitalWrite(LedRojo,HIGH);   // enciende el led rojo 
    return;
  }
   Serial.println("initializacion lista.");

}
// funcion para leer los bloques de la tarjeta RFID 
void dump_byte_array(byte *buffer, byte bufferSize) {    
read_rfid="";
for (byte i = 0; i < bufferSize; i++) {
read_rfid=read_rfid + String(buffer[i], HEX);
}
}

void loop() {
  if(!mfrc522.PICC_IsNewCardPresent())   // comprueba si no existe alguna targeta presente en el lector 
  return;
  
  if(!mfrc522.PICC_ReadCardSerial())     // comprueba si no se ha leido la tarjeta 
  return;

  dump_byte_array(mfrc522.uid.uidByte, mfrc522.uid.size);       // va a la funcion para leer el codigo de la tarjeta 
  registro();  // entra en el registro de evento 
  digitalWrite(LedVerde,LOW);   // apaga el led indicador 
}



// registro de evento
void registro()
{
  myFile = SD.open("registro.txt", FILE_WRITE);  // abre el archivo Registro donde se guardan los datos obtenidos 
  tmElements_t tm;      // reasiga nombre a variable 
  RTC.read(tm);     // lee los datos del reloj
  ingreso();      // va a la funcion ingreso para indicar su estado si es entrada o salida 
  Serial.print(",");  // separadores de datos 
  myFile.print(",");
  Personal();   // va a la funcion personal para identicar el tag leido 
  Serial.print(",");
  myFile.print(",");
  Serial.print("UID:");   
  //myFile.print("UID:");
  Serial.print(read_rfid);    // ID del tag leido 
  myFile.print(read_rfid);    // guarda el tag leido en la memoria SD 
  Serial.print(",");
  myFile.print(",");
  //Registra Hora 
  Serial.print(" Hora:");
    //myFile.print(" Hora:");
    print2digits(tm.Hour);     
    Serial.write(':');
    myFile.print(":");
    print2digits(tm.Minute);
    Serial.write(':');
    myFile.print(":");
    print2digits(tm.Second);
    Serial.print(",");
    myFile.print(",");
    // Registro de fecha 
    Serial.print(" Fecha(D/M/Y):");
    //myFile.print(" Fecha(D/M/Y):");
    Serial.print(tm.Day);
    myFile.print(tm.Day);
    Serial.write('/');
    myFile.print("/");
    Serial.print(Mes[tm.Month]);
    myFile.print(Mes[tm.Month]);
    Serial.write('/');
    myFile.print("/");
    Serial.print(tmYearToCalendar(tm.Year));
    myFile.print(tmYearToCalendar(tm.Year));
    Serial.println();
    myFile.println();// realiza un salto de linea en la memoria SD 
    myFile.close();     // cierra el archivo de la SD 
    digitalWrite(LedVerde,HIGH);   // enciende el led verde 
    delay(500);   // esperaa 1/2 segundo 
}

// le asiga un cero si el digito es mejor a 10 
void print2digits(int numero) {
  if (numero >= 0 && numero < 10) {  // si el digito es menor de 10 y mayor o igual a cero 
    Serial.write('0');     // coloca un cero 
    myFile.print("0");    
  }
  Serial.print(numero);   
  myFile.print(numero);
}


// identificacion de personal
void Personal(){
  if(tag[0] == read_rfid){      // tag de Persona 1 
    Serial.print(nombre[0]);
    myFile.print(nombre[0]);   
  }
    if(tag[1] == read_rfid){    // tag de persons 2 
    Serial.print(nombre[1]);
    myFile.print(nombre[1]);
  }
    if(tag[2] == read_rfid){     // tag de persona 3 
    Serial.print(nombre[2]);
    myFile.print(nombre[2]);
  }
    if(tag[3] == read_rfid){   //  tag de persons 4
    Serial.print(nombre[3]);
    myFile.print(nombre[3]);
  }
    if(tag[4] == read_rfid){      // tag de Persona 5
    Serial.print(nombre[4]);
    myFile.print(nombre[4]);   
  }
    if(tag[5] == read_rfid){    // tag de persons 6
    Serial.print(nombre[5]);
    myFile.print(nombre[1]);
  }
    if(tag[6] == read_rfid){     // tag de persona 7 
    Serial.print(nombre[6]);
    myFile.print(nombre[6]);
  }
    if(tag[7] == read_rfid){   //  tag de persons 8
    Serial.print(nombre[7]);
    myFile.print(nombre[7]);
  }
    if(tag[8] == read_rfid){      // tag de Persona 9 
    Serial.print(nombre[8]);
    myFile.print(nombre[8]);   
  }
    if(tag[9] == read_rfid){    // tag de persons 10
    Serial.print(nombre[9]);
    myFile.print(nombre[9]);
  }
    if(tag[10] == read_rfid){     // tag de persona 11 
    Serial.print(nombre[10]);
    myFile.print(nombre[10]);
  }
    if(tag[11] == read_rfid){   //  tag de persons 12
    Serial.print(nombre[11]);
    myFile.print(nombre[11]);
  }
    if(tag[12] == read_rfid){      // tag de Persona 13 
    Serial.print(nombre[12]);
    myFile.print(nombre[12]);   
  }
    if(tag[13] == read_rfid){    // tag de persons 14
    Serial.print(nombre[13]);
    myFile.print(nombre[13]);
  }
    if(tag[14] == read_rfid){     // tag de persona 15 
    Serial.print(nombre[14]);
    myFile.print(nombre[14]);
  }
    if(tag[15] == read_rfid){   //  tag de persons 16
    Serial.print(nombre[15]);
    myFile.print(nombre[15]);
  }
    if(tag[16] == read_rfid){      // tag de Persona 17 
    Serial.print(nombre[16]);
    myFile.print(nombre[16]);   
  }
    if(tag[17] == read_rfid){    // tag de persons 18
    Serial.print(nombre[17]);
    myFile.print(nombre[17]);
  }
    if(tag[18] == read_rfid){     // tag de persona 19 
    Serial.print(nombre[18]);
    myFile.print(nombre[18]);
  }
    if(tag[19] == read_rfid){   //  tag de persons 20
    Serial.print(nombre[19]);
    myFile.print(nombre[19]);
  }
    if(tag[20] == read_rfid){      // tag de Persona 21 
    Serial.print(nombre[20]);
    myFile.print(nombre[20]);   
  }
    if(tag[21] == read_rfid){    // tag de persons 22 
    Serial.print(nombre[21]);
    myFile.print(nombre[21]);
  }
    if(tag[22] == read_rfid){     // tag de persona 23 
    Serial.print(nombre[22]);
    myFile.print(nombre[22]);
  }
    if(tag[23] == read_rfid){   //  tag de persons 24
    Serial.print(nombre[23]);
    myFile.print(nombre[23]);
  }
    if(tag[24] == read_rfid){      // tag de Persona 25 
    Serial.print(nombre[24]);
    myFile.print(nombre[24]);   
  }
    if(tag[25] == read_rfid){    // tag de persons 26
    Serial.print(nombre[25]);
    myFile.print(nombre[25]);
  }
    if(tag[26] == read_rfid){     // tag de persona 27 
    Serial.print(nombre[26]);
    myFile.print(nombre[26]);
  }
    if(tag[27] == read_rfid){   //  tag de persons 28
    Serial.print(nombre[27]);
    myFile.print(nombre[27]);
  }
     if(tag[28] == read_rfid){      // tag de Persona 29 
    Serial.print(nombre[28]);
    myFile.print(nombre[28]);   
  }
    if(tag[29] == read_rfid){    // tag de persons 30
    Serial.print(nombre[29]);
    myFile.print(nombre[29]);
  }
    if(tag[30] == read_rfid){     // tag de persona 31 
    Serial.print(nombre[30]);
    myFile.print(nombre[30]);
  }
    if(tag[31] == read_rfid){   //  tag de persons 32
    Serial.print(nombre[31]);
    myFile.print(nombre[31]);
  }
    if(tag[32] == read_rfid){      // tag de Persona 33 
    Serial.print(nombre[32]);
    myFile.print(nombre[32]);   
  }
    if(tag[33] == read_rfid){    // tag de persons 34
    Serial.print(nombre[33]);
    myFile.print(nombre[33]);
  }
    if(tag[34] == read_rfid){     // tag de persona 35 
    Serial.print(nombre[34]);
    myFile.print(nombre[34]);
  }
    if(tag[35] == read_rfid){   //  tag de persons 36
    Serial.print(nombre[35]);
    myFile.print(nombre[35]);
  }
  // if( tag[0] != read_rfid && tag[1] != read_rfid && tag[2] != read_rfid && tag[3] != read_rfid){    // si el tag no esta Registrado 
    //Serial.print(nombre[36]);
    //myFile.print(nombre[36]);
  //}
}


// comprobacion de estado del ingreso 
void ingreso(){
  bool x = false;   // condicion inicial 
    if(tag[0] == read_rfid && P1 == false && x==false){  // condicion para entrada de persona 1 
      Serial.print("Entrada ");
      myFile.print("Entrada ");
      P1 = true;
      x=true;
    }
     if(tag[0] == read_rfid && P1 == true  && x==false){   // condicion para salida de persona 1 
      Serial.print("Salida ");
      myFile.print("Salida ");
      P1 = false;
      x=true;
    }
      if(tag[1] == read_rfid && P2 == false && x==false){    // condicion para entrada de persona 2
      Serial.print("Entrada ");
      myFile.print("Entrada ");
      P2 = true;
      x=true; 
    }
      if(tag[1] == read_rfid && P2 == true && x==false){   // condicion para salida de persona 2 
      Serial.print("Salida ");
      myFile.print("Salida ");
      P2 = false;
      x=true; 
    }
      if(tag[2] == read_rfid && P3 == false && x==false){   // condicion para entrada de persona 3 
      Serial.print("Entrada ");
      myFile.print("Entrada ");
      P3 = true;
      x=true;
    }
      if(tag[2] == read_rfid && P3 == true && x==false){   // condicion para salida de persona 3 
      Serial.print("Salida ");
      myFile.print("Sallida ");
      P3 = false;
      x=true; 
    }
      if(tag[3] == read_rfid && P4== false && x==false){    // condicion para salida de persona 4 
      Serial.print("Entrada ");
      myFile.print("Entrada ");
      P4 = true;
      x=true;
    }
      if(tag[3] == read_rfid && P4 == true && x==false){     // condicion para salida de persona 4 
      Serial.print("Salida ");
      myFile.print("Salida ");
      P4 = false;
      x=true;
    }
  if(tag[4] == read_rfid && P5 == false && x==false){  // condicion para entrada de persona 5 
      Serial.print("Entrada ");
      myFile.print("Entrada ");
      P5 = true;
      x=true;
    }
     if(tag[4] == read_rfid && P5 == true  && x==false){   // condicion para salida de persona 5 
      Serial.print("Salida ");
      myFile.print("Salida ");
      P5 = false;
      x=true;
    }
      if(tag[5] == read_rfid && P6 == false && x==false){    // condicion para entrada de persona 6
      Serial.print("Entrada ");
      myFile.print("Entrada ");
      P6 = true;
      x=true; 
    }
      if(tag[5] == read_rfid && P6 == true && x==false){   // condicion para salida de persona 6
      Serial.print("Salida ");
      myFile.print("Salida ");
      P6 = false;
      x=true; 
    }
      if(tag[6] == read_rfid && P7 == false && x==false){   // condicion para salida de persona 7 
      Serial.print("Entrada ");
      myFile.print("Entrada ");
      P7 = true;
      x=true;
    }
      if(tag[6] == read_rfid && P7 == true && x==false){   // condicion para salida de persona 7
      Serial.print("Salida ");
      myFile.print("Sallida ");
      P7 = false;
      x=true; 
    }
      if(tag[7] == read_rfid && P8 == false && x==false){    // condicion para salida de persona 8 
      Serial.print("Entrada ");
      myFile.print("Entrada ");
      P8 = true;
      x=true;
    }
      if(tag[7] == read_rfid && P8 == true && x==false){     // condicion para salida de persona 8 
      Serial.print("Salida ");
      myFile.print("Salida ");
      P8 = false;
      x=true;
    }
     if(tag[8] == read_rfid && P9 == false && x==false){  // condicion para entrada de persona 9
      Serial.print("Entrada ");
      myFile.print("Entrada ");
      P9 = true;
      x=true;
    }
     if(tag[8] == read_rfid && P9 == true  && x==false){   // condicion para salida de persona 9 
      Serial.print("Salida ");
      myFile.print("Salida ");
      P9 = false;
      x=true;
    }
      if(tag[9] == read_rfid && P10 == false && x==false){    // condicion para entrada de persona 10
      Serial.print("Entrada ");
      myFile.print("Entrada ");
      P10 = true;
      x=true; 
    }
      if(tag[9] == read_rfid && P10 == true && x==false){   // condicion para salida de persona 10
      Serial.print("Salida ");
      myFile.print("Salida ");
      P10 = false;
      x=true; 
    }
      if(tag[10] == read_rfid && P11 == false && x==false){   // condicion para salida de persona 11 
      Serial.print("Entrada ");
      myFile.print("Entrada ");
      P11 = true;
      x=true;
    }
      if(tag[10] == read_rfid && P11 == true && x==false){   // condicion para salida de persona 11
      Serial.print("Salida ");
      myFile.print("Sallida ");
      P11 = false;
      x=true; 
    }
      if(tag[11] == read_rfid && P12 == false && x==false){    // condicion para salida de persona 12 
      Serial.print("Entrada ");
      myFile.print("Entrada ");
      P12 = true;
      x=true;
    }
      if(tag[11] == read_rfid && P12 == true && x==false){     // condicion para salida de persona 12 
      Serial.print("Salida ");
      myFile.print("Salida ");
      P12 = false;
      x=true;
    }
     if(tag[12] == read_rfid && P13 == false && x==false){  // condicion para entrada de persona 13
      Serial.print("Entrada ");
      myFile.print("Entrada ");
      P13 = true;
      x=true;
    }
     if(tag[12] == read_rfid && P13 == true  && x==false){   // condicion para salida de persona 13
      Serial.print("Salida ");
      myFile.print("Salida ");
      P13 = false;
      x=true;
    }
      if(tag[13] == read_rfid && P14 == false && x==false){    // condicion para entrada de persona 14
      Serial.print("Entrada ");
      myFile.print("Entrada ");
      P14 = true;
      x=true; 
    }
      if(tag[13] == read_rfid && P14 == true && x==false){   // condicion para salida de persona 14
      Serial.print("Salida ");
      myFile.print("Salida ");
      P14 = false;
      x=true; 
    }
      if(tag[14] == read_rfid && P15 == false && x==false){   // condicion para salida de persona 15 
      Serial.print("Entrada ");
      myFile.print("Entrada ");
      P15 = true;
      x=true;
    }
      if(tag[14] == read_rfid && P15 == true && x==false){   // condicion para salida de persona 15
      Serial.print("Salida ");
      myFile.print("Sallida ");
      P15 = false;
      x=true; 
    }
      if(tag[15] == read_rfid && P16 == false && x==false){    // condicion para salida de persona 16 
      Serial.print("Entrada ");
      myFile.print("Entrada ");
      P16 = true;
      x=true;
    }
      if(tag[15] == read_rfid && P16 == true && x==false){     // condicion para salida de persona 16 
      Serial.print("Salida ");
      myFile.print("Salida ");
      P16 = false;
      x=true;
    }
     if(tag[16] == read_rfid && P17 == false && x==false){  // condicion para entrada de persona 17
      Serial.print("Entrada ");
      myFile.print("Entrada ");
      P17 = true;
      x=true;
    }
     if(tag[16] == read_rfid && P17 == true  && x==false){   // condicion para salida de persona 17
      Serial.print("Salida ");
      myFile.print("Salida ");
      P17 = false;
      x=true;
    }
      if(tag[17] == read_rfid && P18 == false && x==false){    // condicion para entrada de persona 18
      Serial.print("Entrada ");
      myFile.print("Entrada ");
      P18 = true;
      x=true; 
    }
      if(tag[17] == read_rfid && P18 == true && x==false){   // condicion para salida de persona 18
      Serial.print("Salida ");
      myFile.print("Salida ");
      P18 = false;
      x=true; 
    }
      if(tag[18] == read_rfid && P19 == false && x==false){   // condicion para salida de persona 19 
      Serial.print("Entrada ");
      myFile.print("Entrada ");
      P19 = true;
      x=true;
    }
      if(tag[18] == read_rfid && P19 == true && x==false){   // condicion para salida de persona 19
      Serial.print("Salida ");
      myFile.print("Sallida ");
      P19 = false;
      x=true; 
    }
      if(tag[19] == read_rfid && P20 == false && x==false){    // condicion para salida de persona 20 
      Serial.print("Entrada ");
      myFile.print("Entrada ");
      P20 = true;
      x=true;
    }
      if(tag[19] == read_rfid && P20 == true && x==false){     // condicion para salida de persona 20 
      Serial.print("Salida ");
      myFile.print("Salida ");
      P20 = false;
      x=true;
    }
     if(tag[20] == read_rfid && P21 == false && x==false){  // condicion para entrada de persona 21 
      Serial.print("Entrada ");
      myFile.print("Entrada ");
      P21 = true;
      x=true;
    }
     if(tag[20] == read_rfid && P21 == true  && x==false){   // condicion para salida de persona 21 
      Serial.print("Salida ");
      myFile.print("Salida ");
      P21 = false;
      x=true;
    }
      if(tag[21] == read_rfid && P22 == false && x==false){    // condicion para entrada de persona 22
      Serial.print("Entrada ");
      myFile.print("Entrada ");
      P22 = true;
      x=true; 
    }
      if(tag[21] == read_rfid && P22 == true && x==false){   // condicion para salida de persona 22
      Serial.print("Salida ");
      myFile.print("Salida ");
      P22 = false;
      x=true; 
    }
      if(tag[22] == read_rfid && P23 == false && x==false){   // condicion para salida de persona 23 
      Serial.print("Entrada ");
      myFile.print("Entrada ");
      P23 = true;
      x=true;
    }
      if(tag[22] == read_rfid && P23 == true && x==false){   // condicion para salida de persona 23 
      Serial.print("Salida ");
      myFile.print("Sallida ");
      P23 = false;
      x=true; 
    }
      if(tag[23] == read_rfid && P24== false && x==false){    // condicion para salida de persona 24 
      Serial.print("Entrada ");
      myFile.print("Entrada ");
      P24 = true;
      x=true;
    }
      if(tag[23] == read_rfid && P24 == true && x==false){     // condicion para salida de persona 24 
      Serial.print("Salida ");
      myFile.print("Salida ");
      P24 = false;
      x=true;
    }
     if(tag[24] == read_rfid && P25 == false && x==false){  // condicion para entrada de persona 25
      Serial.print("Entrada ");
      myFile.print("Entrada ");
      P25 = true;
      x=true;
    }
     if(tag[24] == read_rfid && P25 == true  && x==false){   // condicion para salida de persona 25
      Serial.print("Salida ");
      myFile.print("Salida ");
      P25 = false;
      x=true;
    }
      if(tag[25] == read_rfid && P26 == false && x==false){    // condicion para entrada de persona 26
      Serial.print("Entrada ");
      myFile.print("Entrada ");
      P26 = true;
      x=true; 
    }
      if(tag[25] == read_rfid && P26 == true && x==false){   // condicion para salida de persona 26
      Serial.print("Salida ");
      myFile.print("Salida ");
      P26 = false;
      x=true; 
    }
      if(tag[26] == read_rfid && P27 == false && x==false){   // condicion para salida de persona 27 
      Serial.print("Entrada ");
      myFile.print("Entrada ");
      P27 = true;
      x=true;
    }
      if(tag[26] == read_rfid && P27 == true && x==false){   // condicion para salida de persona 27
      Serial.print("Salida ");
      myFile.print("Sallida ");
      P27 = false;
      x=true; 
    }
      if(tag[27] == read_rfid && P28 == false && x==false){    // condicion para salida de persona 28 
      Serial.print("Entrada ");
      myFile.print("Entrada ");
      P28 = true;
      x=true;
    }
      if(tag[27] == read_rfid && P28 == true && x==false){     // condicion para salida de persona 28 
      Serial.print("Salida ");
      myFile.print("Salida ");
      P28 = false;
      x=true;
    }
     if(tag[28] == read_rfid && P29 == false && x==false){  // condicion para entrada de persona 29
      Serial.print("Entrada ");
      myFile.print("Entrada ");
      P29 = true;
      x=true;
    }
     if(tag[28] == read_rfid && P29 == true  && x==false){   // condicion para salida de persona 29
      Serial.print("Salida ");
      myFile.print("Salida ");
      P29 = false;
      x=true;
    }
      if(tag[29] == read_rfid && P30 == false && x==false){    // condicion para entrada de persona 30
      Serial.print("Entrada ");
      myFile.print("Entrada ");
      P30 = true;
      x=true; 
    }
      if(tag[29] == read_rfid && P30 == true && x==false){   // condicion para salida de persona 30
      Serial.print("Salida ");
      myFile.print("Salida ");
      P30 = false;
      x=true; 
    }
      if(tag[30] == read_rfid && P31 == false && x==false){   // condicion para salida de persona 31 
      Serial.print("Entrada ");
      myFile.print("Entrada ");
      P31 = true;
      x=true;
    }
      if(tag[30] == read_rfid && P31 == true && x==false){   // condicion para salida de persona 31
      Serial.print("Salida ");
      myFile.print("Sallida ");
      P31 = false;
      x=true; 
    }
      if(tag[31] == read_rfid && P32 == false && x==false){    // condicion para salida de persona 32 
      Serial.print("Entrada ");
      myFile.print("Entrada ");
      P32 = true;
      x=true;
    }
      if(tag[31] == read_rfid && P32 == true && x==false){     // condicion para salida de persona 32 
      Serial.print("Salida ");
      myFile.print("Salida ");
      P32 = false;
      x=true;
    }
     if(tag[32] == read_rfid && P33 == false && x==false){  // condicion para entrada de persona 33
      Serial.print("Entrada ");
      myFile.print("Entrada ");
      P33 = true;
      x=true;
    }
     if(tag[32] == read_rfid && P33 == true  && x==false){   // condicion para salida de persona 33
      Serial.print("Salida ");
      myFile.print("Salida ");
      P33 = false;
      x=true;
    }
      if(tag[33] == read_rfid && P34 == false && x==false){    // condicion para entrada de persona 34
      Serial.print("Entrada ");
      myFile.print("Entrada ");
      P34 = true;
      x=true; 
    }
      if(tag[33] == read_rfid && P34 == true && x==false){   // condicion para salida de persona 34
      Serial.print("Salida ");
      myFile.print("Salida ");
      P34 = false;
      x=true; 
    }
      if(tag[34] == read_rfid && P35 == false && x==false){   // condicion para salida de persona 35 
      Serial.print("Entrada ");
      myFile.print("Entrada ");
      P35 = true;
      x=true;
    }
      if(tag[34] == read_rfid && P35 == true && x==false){   // condicion para salida de persona 35
      Serial.print("Salida ");
      myFile.print("Sallida ");
      P35 = false;
      x=true; 
    }
      if(tag[35] == read_rfid && P36 == false && x==false){    // condicion para salida de persona 36 
      Serial.print("Entrada ");
      myFile.print("Entrada ");
      P36 = true;
      x=true;
    }
      if(tag[35] == read_rfid && P36 == true && x==false){     // condicion para salida de persona 36 
      Serial.print("Salida ");
      myFile.print("Salida ");
      P36 = false;
      x=true;
    }
    
}

Te he reducido un poco el tamaño del código.
Repeticiones y repeticiones de cosas.

Cuando comparas Strings no puedes usar == debes usar
https://www.arduino.cc/reference/en/language/variables/data-types/string/functions/compareto/

Syntax

myString.compareTo(myString2)

Parameters

myString: a variable of type String.
myString2: another variable of type String.

Returns

a negative number: if myString comes before myString2.
0: if String equals myString2.
a positive number: if myString comes after myString2.

Entonces

Primero yo he simplificado tu código, eliminando las repeticiones y agregando un array de P[36]

#include <SPI.h>       // libreria comunicacion SPI
#include <MFRC522.h>   // libreria del Lector RFID
#include <Wire.h>      // libreria comunicacion I2C
#include <Time.h>      // libreria para el tiempo 
#include <DS1307RTC.h> // libreria del reloj
#include <SD.h>        // libreria para la memoria SD
#define RST_PIN 9 // Configurable, pin 9 para Reset del MFRC522 
#define SS_PIN 10 // Configurable, pin 8 para el selector de chip del MFRC522
const char* Mes [13] = { " ",        // arreglo de meses 
  "Ene", "Feb", "Mar", "Abr", "May", "Jun",
  "Jul", "Ago", "Sep", "Oct", "Nov", "Dic"
};
File myFile;
MFRC522 mfrc522(SS_PIN, RST_PIN); // Create MFRC522 instance
String read_rfid;                 // variable donde almacena la tarjeta leida 
String tag[36] = { "c3e14de", "c31e31e", "3b83ee", "73a246e","537d44e", "f3cc4de", "93a043e", "235436e","f3b137e", "53933ce", "63f13fe", "131132e","634030e", "237149e", "d3904de", "239d4ae","f33c35e", "e33342e", "c37942e", "83543be","d36043e", "332049e", "134c3ce", "e37242e","3ea33e", "e36b3de", "a34933e", "43993ce","5353f912", "f37f35e", "738947e", "e32d31e","735530e", "331a4be", "13884ee", "438448e" };   // tag Almacenados 

//boolean P1 = false, P2 = false, P3 = false, P4 = false, P5 = false, P6 = false, P7 = false, P8 = false, P9 = false, P10 = false, P11 = false, P12 = false, P13 = false, P14 = false, P15 = false, P16 = false, P17 = false, P18 = false, P19 = false, P20 = false, P21 = false, P22 = false, P23 = false, P24 = false, P25 = false, P26 = false, P27 = false, P28 = false, P29 = false, P30 = false, P31 = false, P32 = false, P33 = false, P34 = false, P35 = false, P36 = false;    // condiciones para los estados de entrada o salida 
boolean P[36]; // reemplazo las 36 variables por un array pero desplazado en 1.

int nombre[36] = { 1 ,2 ,3 ,4 ,5 ,6 ,7 ,8 ,9 ,10 ,11 ,12 ,13 ,14 ,15 ,16 ,17 ,18 ,19 ,20 ,21 ,22 ,23 ,24 ,25 ,26 ,27 ,28 ,29 ,30 ,31 ,32 ,33 ,34 ,35 ,36 };   // Usuarios registrados 
int pinSD = 4;    // pin selector para la SD 
int LedVerde = 7;    // pin 7 para el led verde 
int LedRojo = 6;    // pin 7 para el led Rojo 
void setup() {
    pinMode(LedVerde, OUTPUT);    // pin 7 se declara como salida 
    pinMode(LedRojo, OUTPUT);    // pin 6 se declara como salida 
    Serial.begin(9600);        // se inicializa el puerto serial 
    SPI.begin();            // se inicializa la comunicacion SPI 
    mfrc522.PCD_Init();     // se inicia el modulo lector RFID 
    if (!SD.begin(pinSD)) {     // se compruba que este activa la tarjeta SD 
        Serial.println("initializacion fallida!");
        digitalWrite(LedRojo, HIGH);   // enciende el led rojo 
        return;
    }
    Serial.println("initializacion lista.");
    for (int i = 0; i < 36; i++) {
        P[i] = false;
    }
}

// funcion para leer los bloques de la tarjeta RFID 
void dump_byte_array(byte* buffer, byte bufferSize) {
    read_rfid = "";
    for (byte i = 0; i < bufferSize; i++) {
        read_rfid = read_rfid + String(buffer [i], HEX);
    }
}

void loop() {
    if (!mfrc522.PICC_IsNewCardPresent())   // comprueba si no existe alguna targeta presente en el lector 
        return;

    if (!mfrc522.PICC_ReadCardSerial())     // comprueba si no se ha leido la tarjeta 
        return;

    dump_byte_array(mfrc522.uid.uidByte, mfrc522.uid.size);       // va a la funcion para leer el codigo de la tarjeta 
    registro();  // entra en el registro de evento 
    digitalWrite(LedVerde, LOW);   // apaga el led indicador 
}

// registro de evento
void registro(){
    myFile = SD.open("registro.txt", FILE_WRITE);  // abre el archivo Registro donde se guardan los datos obtenidos 
    tmElements_t tm;      // reasiga nombre a variable 
    RTC.read(tm);     // lee los datos del reloj
    ingreso();      // va a la funcion ingreso para indicar su estado si es entrada o salida 
    Serial.print(",");  // separadores de datos 
    myFile.print(",");
    Personal();   // va a la funcion personal para identicar el tag leido 
    Serial.print(",");
    myFile.print(",");
    Serial.print("UID:");
    //myFile.print("UID:");
    Serial.print(read_rfid);    // ID del tag leido 
    myFile.print(read_rfid);    // guarda el tag leido en la memoria SD 
    Serial.print(",");
    myFile.print(",");
    //Registra Hora 
    Serial.print(" Hora:");
    //myFile.print(" Hora:");
    print2digits(tm.Hour);
    Serial.write(':');
    myFile.print(":");
    print2digits(tm.Minute);
    Serial.write(':');
    myFile.print(":");
    print2digits(tm.Second);
    Serial.print(",");
    myFile.print(",");
    // Registro de fecha 
    Serial.print(" Fecha(D/M/Y):");
    //myFile.print(" Fecha(D/M/Y):");
    Serial.print(tm.Day);
    myFile.print(tm.Day);
    Serial.write('/');
    myFile.print("/");
    Serial.print(Mes [tm.Month]);
    myFile.print(Mes [tm.Month]);
    Serial.write('/');
    myFile.print("/");
    Serial.print(tmYearToCalendar(tm.Year));
    myFile.print(tmYearToCalendar(tm.Year));
    Serial.println();
    myFile.println();// realiza un salto de linea en la memoria SD 
    myFile.close();     // cierra el archivo de la SD 
    digitalWrite(LedVerde, HIGH);   // enciende el led verde 
    delay(500);   // esperaa 1/2 segundo 
}

// le asiga un cero si el digito es mejor a 10 
void print2digits(int numero) {
    if (numero >= 0 && numero < 10) {  // si el digito es menor de 10 y mayor o igual a cero 
        Serial.write('0');     // coloca un cero 
        myFile.print("0");
    }
    Serial.print(numero);
    myFile.print(numero);
}

// identificacion de personal
void Personal() {

    for (int i=0; i<36; i++) {
        if (tag [i].compareTo(read_rfid) == 0) {      // si es igual a 0 es que son iguales
            Serial.print(nombre[i]);
            myFile.print(nombre[i]);
        }
    }
}

// comprobacion de estado del ingreso MODIFICADO
void ingreso() {
    bool x = false;   // condicion inicial 
    for (int i = 0; i < 36; i++) {
        if (tag [i].compareTo(read_rfid) && P[i] == false && x == false) {  // condicion para entrada de persona 1 
            Serial.print("Entrada ");
            myFile.print("Entrada ");
            P[i] = true;
            x = true;
        }
        if (tag [i].compareTo(read_rfid) && P[i] == true && x == false) {   // condicion para salida de persona 1 
            Serial.print("Salida ");
            myFile.print("Salida ");
            P[i] = false;
            x = true;
        }
    }
}

Ahora tu problema esta en Personal()
Asi estaba hecha luego de la simplificación

// identificacion de personal
void Personal() {

    for (int i=0; i<36; i++) {
        if (tag [i] == read_rfid) {      // tag de Persona 1 
            Serial.print(nombre[i]);
            myFile.print(nombre[i]);
        }
    }
}

Esa comparación esta mal, realizada

// identificacion de personal
void Personal() {

   for (int i=0; i<36; i++) {
        if (tag [i].compareTo(read_rfid) == 0) {      // si es igual a 0 es que son iguales
            Serial.print(nombre[i]);
            myFile.print(nombre[i]);
        }
    }
}

He subido su código en arduino, pero al momento de pasar un llavero rfid el lector no lo lee, tambien he corregido lo de la comparación del personal