Multiple cards on one RC522

The clumsy, but easy to write way is to write this section of code once for each card number

if (strID.indexOf("89:E2:7E:CB") >= 0)   //put your own tap card key;
{
  Serial.println("");
  Serial.println("Authorized Access");
  Serial.println("");
  digitalWrite(A0, HIGH);
  delay (5000);
  digitalWrite(A0, LOW);
}

A better way would be to write

if (strID.indexOf("89:E2:7E:CB") >= 0 || strID.indexOf("second card") >= 0 || strID.indexOf("third card") >= 0) //and so on
{
  Serial.println("");
  Serial.println("Authorized Access");
  Serial.println("");
  digitalWrite(A0, HIGH);
  delay (5000);
  digitalWrite(A0, LOW);
}

an even better way would be to write something like

String cardIDs[] =
{
  "89:E2:7E:CB",
  "second card",
  "third card",
  //and so on
};

const byte NUMBER_OF_CARDS = sizeof(cardIDs) / sizeof(cardIDs[0]);

for (int cardNumber = 0; cardNumber < NUMBER_OF_CARDS; cardNumber++)
{
  if (cardIDs[cardNumber].indexOf("89:E2:7E:CB") >= 0)
  {
    Serial.println("");
    Serial.println("Authorized Access");
    Serial.println("");
    digitalWrite(A0, HIGH);
    delay (5000);
    digitalWrite(A0, LOW);
  }
}

even better would be to use C style strings instead of Strings, but I suggest that you use one of the methods above for now

What will determine which LED is lit ?

1 Like