Counting a loop

  Serial.println("Looking for PN532...");
  deadbolt.attach(9);
  deadbolt.write(locked);

Somehow, I fail to see the relationship between what you printed and what you do.

  pos = deadbolt.read();

Got a short memory, huh?

  volatile boolean valid;

Why is a local variable declared volatile?

        delay(100);

In a sketch based on blink without delay? Shame on you.

    if (ledState == LOW)
      ledState = HIGH;
    else
      ledState = LOW;

or

     ledState = !ledState;