RFID NECESITO QUE MI LECTOR RFID DETECTE SOLO SI SE REMUEVE LA TARJETA

Ok buenas tardes, estoy en un proyecto donde fabrico un compartimento secreto, la idea es darle un tag rfid a un objeto en especifico, al poner el objeto cerca del lector oculto abre el compartimento y lo mantiene iluminado por medio de un modulo relay;
hasta ahora lo unico que he podido lograr es que el relay se quede encendido por 5 minutos despues el lector haga otra lectura y si no esta la tarjeta cierra el relay,
y si esta apaga y prende el relay, es un milisegundo pero esto quiere decir que las luces parpadean y se cierra la compuerta e inmediatamente se vuelve a abrir.
lo que deseo es que: al estar el codigo cerca del lector, active y deje activado el relay, y si lo remuevo del lector lo desactive con un delay de 10 segundos, este es mi codigo actual, espero de verdad que alguien pueda ayudare en este proyecto les agradezco

#include <SPI.h>
#include <MFRC522.h>

#define RST_PIN         9           // Configurable, see typical pin layout above
#define SS_PIN          10          // Configurable, see typical pin layout above
#define CH1             2

MFRC522 mfrc522(SS_PIN, RST_PIN);   // Create MFRC522 instance.

String read_rfid;
String ok_rfid_1="5665367";
//String ok_rfid_2="ffffffff";
int lock=3; //Which pin the lock will be on if using a relay or solenoid or similar 
int RFID_status;
int RFID_read = 0;

/*
* Initialize.
*/
void setup() {
   Serial.begin(9600);         // Initialize serial communications with the PC
   while (!Serial);            // Do nothing if no serial port is opened (added for Arduinos based on ATMEGA32U4)
   SPI.begin();                // Init SPI bus
   mfrc522.PCD_Init();         // Init MFRC522 card

   //Choose which lock below:
   pinMode(lock, OUTPUT);
   pinMode(CH1, OUTPUT);
}

/*
* Helper routine to dump a byte array as hex values to Serial.
*/
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);
   }
}


if (RFID_status != 1)
   {

        RFID_read 0;

   }


void open_lock() {
 
 digitalWrite(lock, HIGH);
 delay(300000);
 digitalWrite(lock,LOW);
}

if (RFID_read 0)
{
digitalWrite(lock,LOW);
}

void loop() {

     // Look for new cards
   if ( ! mfrc522.PICC_IsNewCardPresent())
       return;

   // Select one of the cards
   if ( ! mfrc522.PICC_ReadCardSerial())
       return;

   dump_byte_array(mfrc522.uid.uidByte, mfrc522.uid.size);
   Serial.println(read_rfid);
   if (read_rfid==ok_rfid_1) {
    
     open_lock();
   }
  
   //if (read_rfid==ok_rfid_2) {
    
}

Acá no nos gusta que nos griten, por lo tanto por favor, edita tu mensaje escribiendo en mayúsculas sólo donde corresponde.

Interesante caso de documentación para taxonomía de usuarios....

Voy a traducir a mis colegas (sin ánimo de ofenderlos) porque me parece que ELSEGOVIANO no ha comprendido!!

por favor, edita tu mensaje escribiendo en mayúsculas sólo donde corresponde.

Te pidió Hector_A que EDITES, no que hagas otro post diciendo lo mismo en minúsculas!!
Asi que toma el trabajo escrito en el 2do post, lo copias, vas al primero y lo pegas (en modo EDICION).
Luego borra el segundo post porque es repetición del primero.

Y sigue estando mal.
Hector_A y yo somos Moderadores, de modo que si te pedimos algo, por favor lo haces.

No usaste tag de código asi que la edición es parcial. Asi debe verse el código

#include <SPI.h>
#include <MFRC522.h>
#define RST_PIN         9           // Configurable, see typical pin layout above
#define SS_PIN          10          // Configurable, see typical pin layout above
#define CH1             2

SI lees las normas esta claro que y cómo hacerlo.
Si ves otros hilos esta mucho mas claro como se postea un código o como se pega ya que te gusta el juego de palabras.
Acá solemos no responder cuando la consulta esta mal presentada porque cuando consigues lo que quieres la mayoría suele dejar todo como estaba y el hilo queda mal.

Pero suponiendo que lo vas a hacer te respondo.

RC522 Module and MFRC522 Library How to know PICC still present
La respuesta estaba usando el Search de este foro. Todas las preguntas estan o han sido respondidas alguna vez.

listo, ahora el problema que plantean aho no esta totalmente solucionado, no lo comprendo, podrias ayudarme a integrarlo a mi codigo