Moudulo RFID solo lee tras reiniciar arduino, arduino uno

Estoy haciendo un proyecto en el que utilizo el modulo RFID522 para activar un actuador mediante un modulo de relé, el problema es que cuando cargo el programa y lee mi tarjeta funciona correctamente, pero si quiero volver a pasar la tarjeta no activa el actuador, también tengo un boton que hace la misma función que el modulo RFID y con el botón si me funciona pero con la tarjeta no, solo tras presionar el botón de reset de arduino me vuelve a leer la tarjeta pero solo una vez. Si desconecto el actuador de mi relé si me lee la tarjeta las veces que quiera pero en cuanto le conecto el actuador a mi rele solo la lee una vez. Aquí dejo mi código, el actuador es una chapa de 12V, ya probé alimentando el arduino con 5V y 12V y lo raro es que antes si me funcionaba, pero un día dejo de funcionar, probé con 2 arduinos

#include <deprecated.h>
#include <MFRC522.h>
#include <MFRC522Extended.h>
#include <require_cpp11.h>
#include <SPI.h>

#define SAD 10
#define RST 9
#define chapa 8//aqui va el rele
MFRC522 mfrc522(SAD, RST); //Comunicacion

void setup()
{
pinMode(chapa, OUTPUT); //la chapa va a ser salida
digitalWrite(chapa, LOW);
pinMode(7, INPUT); //boton
pinMode(4, OUTPUT); //buzzer
digitalWrite(4, LOW);
pinMode(3, OUTPUT); //led rojo
digitalWrite(3, HIGH);
pinMode(5, OUTPUT); //led verde
digitalWrite(5, LOW);
SPI.begin();
Serial.begin(9600); //a esos baudios
Serial.println("Buscando");
mfrc522.PCD_Init();
}
void loop()
{
if (digitalRead(7) == HIGH )
{
Serial.print("Abierto");
digitalWrite(chapa, HIGH);
digitalWrite(3, LOW);
digitalWrite(5, HIGH);
digitalWrite(4, HIGH);
delay(1500);
digitalWrite(chapa, LOW);
digitalWrite(3, HIGH);
digitalWrite(5, LOW);
digitalWrite(4, LOW);
}
else
{

}
//Mirando para nuevas tarjetas
if (!mfrc522.PICC_IsNewCardPresent())
{
return;
}
//Seleccionando nuevas tarjetas
if (!mfrc522.PICC_ReadCardSerial())
{
return;
}
//Muestra el UID sobre el monitor serie
Serial.print("UID tag :");
String content= "";
byte letter;
for (byte i = 0; i <mfrc522.uid.size; i++)
{
Serial.print(mfrc522.uid.uidByte < 0x10 ? " 0" : " ");
_ Serial.print(mfrc522.uid.uidByte*, HEX);_
_ content.concat(String(mfrc522.uid.uidByte < 0x10 ? " 0" : " "));
content.concat(String(mfrc522.uid.uidByte, HEX));
}
Serial.println();
Serial.print("Message : ");
content.toUpperCase();
if (content.substring(1) == "D9 92 9F 98") //aqui van la uid de la tarjtea que previamente nos mostro el monitor serial*

* {
Serial.println("Bienvenido");
digitalWrite(chapa, HIGH);
digitalWrite(3, LOW);
digitalWrite(5, HIGH);
digitalWrite(4, HIGH);
delay(1500);
digitalWrite(chapa, LOW);
digitalWrite(3, HIGH);
digitalWrite(5, LOW);
digitalWrite(4, LOW);
}
if (content.substring(1) == "A7 22 57 62") //aqui van la uid de la tarjtea que previamente nos mostro el monitor serial, coíar y pergar para agregar mas tarjetas.
{
Serial.println("Bienvenido");
digitalWrite(chapa, HIGH);
digitalWrite(3, LOW);
digitalWrite(5, HIGH);
digitalWrite(4, HIGH);
delay(1500);
digitalWrite(chapa, LOW);
digitalWrite(3, HIGH);
digitalWrite(5, LOW);
digitalWrite(4, LOW);
}
if (content.substring(1) == "4A EF A5 24") //aqui van la uid de la tarjtea que previamente nos mostro el monitor serial*

* {
Serial.println("Bienvenido");
digitalWrite(chapa, HIGH);
digitalWrite(3, LOW);
digitalWrite(5, HIGH);
digitalWrite(4, HIGH);
delay(1500);
digitalWrite(chapa, LOW);
digitalWrite(3, HIGH);
digitalWrite(5, LOW);
digitalWrite(4, LOW);
}
if (content.substring(1) == "9A EF 9A 24") //aqui van la uid de la tarjtea que previamente nos mostro el monitor serial*

* {
Serial.println("Bienvenido");
digitalWrite(chapa, HIGH);
digitalWrite(3, LOW);
digitalWrite(5, HIGH);
digitalWrite(4, HIGH);
delay(1500);
digitalWrite(chapa, LOW);
digitalWrite(3, HIGH);
digitalWrite(5, LOW);
digitalWrite(4, LOW);
}
if (content.substring(1) == "0A D9 83 25") //aqui van la uid de la tarjtea que previamente nos mostro el monitor serial*

* {
Serial.println("Bienvenido");
digitalWrite(chapa, HIGH);
digitalWrite(3, LOW);
digitalWrite(5, HIGH);
digitalWrite(4, HIGH);
delay(1500);
digitalWrite(chapa, LOW);
digitalWrite(3, HIGH);
digitalWrite(5, LOW);
digitalWrite(4, LOW);
}
}*_

Moderador
Por favor edita tu post usando etiquetas de código.
Y también haz que la imagen adjunta sea visible usando la guía que esta al final de las normas.

Lee las Normas del foro

Pareciera como un problema de variables.
Porque no pones

String content= "";

como global en lugar de definirla previo a la lectura de las tarjetas?