RFID reader serial print issue

Hello, I am new to Arduino and so I imagine that I have made plenty mistakes, but my code currently seems to be serial printing the wrong values compared to what I have it printing. For example, if cardnumber is 26, then the value 26 is what I wish to be printing, but this is not the case, as it prints additional numbers afterwards. This code is very large in size so I only included the aspects of it which I believe are important.

setup:

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

#define RST_PIN         9          
#define SS_PIN          10         
MFRC522 mfrc522(SS_PIN, RST_PIN);
void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600);
  SPI.begin();     
  mfrc522.PCD_Init();

}

function:

if ( ! mfrc522.PICC_IsNewCardPresent())
  {
    return;
  }
  if ( ! mfrc522.PICC_ReadCardSerial())
  {
    return;
  }
  int cardnumber;
  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));
  }
  content.toUpperCase();
  if (content.substring(1) == "03 CE 15 94")
  {
    cardnumber = 1;
  }
  else if (content.substring(1) == "B3 A9 23 94") {
    cardnumber = 2;
  }
  else if (content.substring(1) == "C3 AB 23 94") {
    cardnumber = 3;
  }
  else if (content.substring(1) == "33 E6 12 94") {
    cardnumber = 4;
  }
  else if (content.substring(1) == "D3 92 24 94") {
    cardnumber = 5;
  }
  else if (content.substring(1) == "73 DF 1A 94") {
    cardnumber = 6;
  }
  else if (content.substring(1) == "83 4F 14 94") {
    cardnumber = 7;
  }
  else if (content.substring(1) == "5B 54 17 BB") {
    cardnumber = 8;
  }
  else if (content.substring(1) == "BB 23 B9 BA") {
    cardnumber = 9;
  }
  else if (content.substring(1) == "A3 7E 23 94") {
    cardnumber = 10;
  }
  else if (content.substring(1) == "73 8C 0F 94") {
    cardnumber = 11;
  }
  else if (content.substring(1) == "73 EB 14 94") {
    cardnumber = 12;
  }
  else if (content.substring(1) == "53 3D 22 94") {
    cardnumber = 13;
  }
  else if (content.substring(1) == "D3 3D 25 94") {
    cardnumber = 14;
  }
  else if (content.substring(1) == "A3 B0 13 94") {
    cardnumber = 15;
  }
  else if (content.substring(1) == "13 BC 21 94") {
    cardnumber = 16;
  }
  else if (content.substring(1) == "13 CA 26 94") {
    cardnumber = 17;
  }
  else if (content.substring(1) == "63 96 15 94") {
    cardnumber = 18;
  }
  else if (content.substring(1) == "C3 BC 12 94") {
    cardnumber = 19;
  }
  else if (content.substring(1) == "43 A5 24 94") {
    cardnumber = 20;
  }
  else if (content.substring(1) == "C3 BE 13 94") {
    cardnumber = 21;
  }
  else if (content.substring(1) == "83 5A 16 94") {
    cardnumber = 22;
  }
  else if (content.substring(1) == "83 8B 14 94") {
    cardnumber = 23;
  }
  else if (content.substring(1) == "33 7C 15 94") {
    cardnumber = 24;
  }
  else if (content.substring(1) == "C3 B1 0D 94") {
    cardnumber = 25;
  }
  else if (content.substring(1) == "65 5E 21 94") {
    cardnumber = 26;
  }
  else if (content.substring(1) == "63 CD 10 94") {
    cardnumber = 27;
  }
  else if (content.substring(1) == "23 26 16 94") {
    cardnumber = 28;
  }
  else if (content.substring(1) == "B3 D7 62 94") {
    cardnumber = 29;
  }
  else if (content.substring(1) == "93 8F 13 94") {
    cardnumber = 30;
  }
  else if (content.substring(1) == "83 B7 23 94") {
    cardnumber = 31;
  }
  else if (content.substring(1) == "93 F7 14 94") {
    cardnumber = 32;
  }
  else if (content.substring(1) == "7C FC 0C 94") {
    cardnumber = 33;
  }
  else if (content.substring(1) == "E3 2A 1D 94") {
    cardnumber = 34;
  }
  else if (content.substring(1) == "23 1B 4B 94") {
    cardnumber = 35;
  }
  else if (content.substring(1) == "53 1A 4F 94") {
    cardnumber = 36;
  }
  else if (content.substring(1) == "E3 CC 0C 94") {
    cardnumber = 37;
  }
  else if (content.substring(1) == "13 A3 52 94") {
    cardnumber = 38;
  }
  else if (content.substring(1) == "23 98 5B 94") {
    cardnumber = 39;
  }
  else if (content.substring(1) == "43 CC 64 94") {
    cardnumber = 40;
  }
  else if (content.substring(1) == "63 19 19 94") {
    cardnumber = 41;
  }
  else if (content.substring(1) == "B3 01 13 94") {
    cardnumber = 42;
  }
  else if (content.substring(1) == "F3 27 19 94") {
    cardnumber = 43;
  }
  else if (content.substring(1) == "E3 88 5B 94") {
    cardnumber = 44;
  }
  else if (content.substring(1) == "A3 25 4A 94") {
    cardnumber = 45;
  }
  else if (content.substring(1) == "C3 28 48 94") {
    cardnumber = 46;
  }
  else if (content.substring(1) == "53 2C 50 94") {
    cardnumber = 47;
  }
  else if (content.substring(1) == "73 2D 50 94") {
    cardnumber = 48;
  }
  else if (content.substring(1) == "23 DF 2F 94") {
    cardnumber = 49;
  }
  else if (content.substring(1) == "83 07 09 94") {
    cardnumber = 50;
  }
  else if (content.substring(1) == "63 90 56 94") {
    cardnumber = 51;
  }
  else if (content.substring(1) == "B3 0F 3C A7") {
    cardnumber = 52;
  }
  else {
    cardnumber = 99;
  }
  delay(1000);
  int cardOne;
  cardOne = cardnumber;
  while ( cardOne == 99) {
    cardOne = cardnumber;
  }
  delay(1000);
 Serial.print(cardOne);
  while ( ! mfrc522.PICC_IsNewCardPresent() != 0)
  {
    Serial.println("\n waiting for card TWO\n ");
    delay(1000);

  }
  int cardTwo;
  while ( cardOne == cardTwo) {
    cardTwo = cardnumber;
    while (cardTwo == 99) {
      cardTwo = cardnumber;
    }
  }
  delay(1000);
  Serial.println(cardTwo);
  while ( ! mfrc522.PICC_IsNewCardPresent() != 0)
  {
    Serial.print("\n waiting for card THREE\n ");
    delay(1000);

  }
  int commCard;
  while ( cardTwo == commCard) {
    commCard = cardnumber;
    while (commCard == 99) {
      commCard = cardnumber;
    }
  }
  delay(1000);
  Serial.println(commCard);
  while ( ! mfrc522.PICC_IsNewCardPresent() != 0)
  {
    Serial.print("\n waiting for card FOUR\n ");
    delay(1000);

  }
  int commCardTwo;
  while ( commCard == commCardTwo) {
    commCardTwo = cardnumber;
    while (commCardTwo == 99) {
      commCardTwo = cardnumber;
    }
    //Serial.println(commCardTwo);

  }
  delay(1000);
  Serial.println(commCardTwo);
  while ( ! mfrc522.PICC_IsNewCardPresent() != 0)
  {
    Serial.print("\n waiting for card FIVE\n");
    delay(1000);

  }
  int commCardThree;
  while ( commCardTwo == commCardThree) {
    commCardThree = cardnumber;
    while (commCardThree == 99) {
      commCardThree = cardnumber;
    }
  }
  delay(1000);

  Serial.println(commCardThree);

How do you know the number of the card ?

The rfid tags have their own UIDs, and then from this value the card number integer is supposed to store that value

Sorry but I don't understand what you mean

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.