If statement won't trigger Digital write

Hi,

I'm running a mag lock of a arduion uno using rfid, however it doesn't want to unlock using if statement returns true. however I do get Access granted?

Am I doing something stupid?

#include <SPI.h>
#include <MFRC522.h>
 
#define SS_PIN 10
#define RST_PIN 9
MFRC522 mfrc522(SS_PIN, RST_PIN);   // Create MFRC522 instance.
 
void setup() 
{
  Serial.begin(9600);   // Initiate a serial communication
  SPI.begin();      // Initiate  SPI bus
  mfrc522.PCD_Init();   // Initiate MFRC522
  Serial.println("Approximate your card to the reader...");
  Serial.println();
  {pinMode(4, OUTPUT);          // sets the digital pin 13 as output
}
}
void loop() 
{
  // Look for new cards
  if ( ! mfrc522.PICC_IsNewCardPresent()) 
  {
    return;
  }
  // Select one of the cards
  if ( ! mfrc522.PICC_ReadCardSerial()) 
  {
    return;
  }
  //Show UID on serial monitor
  Serial.print("UID tag :");
  String content= "";
  byte letter;
  for (byte i = 0; i < mfrc522.uid.size; i++) 
  {
     Serial.print(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " ");
     Serial.print(mfrc522.uid.uidByte[i], HEX);
     content.concat(String(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " "));
     content.concat(String(mfrc522.uid.uidByte[i], HEX));
  }
  
  Serial.println();
  Serial.print("Message : ");
  content.toUpperCase();
  if (content.substring(1) == "F9 DC F5 20"||content.substring(1) == "09 17 C3 48" ||content.substring(1) == "D9 69 84 48" ||content.substring(1) == "09 62 C4 48" ||content.substring(1) == "89 BA C2 48" ||content.substring(1) == "89 B5 85 48" )
  {
    Serial.println("Authorized access");
    Serial.println(); 
    digitalWrite(4,LOW);
    delay(10000); // sets the digital pin 13 off
  }
 
 else   {
    Serial.println(" Access denied");
    delay(3000);
  }
}

There is nothing in that code that says "Access granted" so perhaps you're looking at something else. And the comments are rubbish, talking about pin13 while the code writes to pin4 and there is no indication of anything to do with a lock.

Please post a circuit diagram showing what is actually connected where.

Steve

you have pin 4 as output

in the if, you have digitalWrite(4,LOW); //I suppose ok authorised

but you nener have
digitalWrite(4,HIGH); //not authorised
not even on initialisation in setup, (after pinmode)