Come si usa la libreria 74HC595

ok fin qui tutto ok.
Solo che se per esempio:

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

#define SS_PIN 10
#define RST_PIN 9

MFRC522 mfrc522(SS_PIN, RST_PIN);  // Create MFRC522 instance.
char st[20];
hc595 My595(6, 5, 4, 1); // latch,clock,data,number of 74hc595

char* aNomi[]={"Ettore", "Jussi", "Easy"};
unsigned long aRfid[]= {0xCD4B4479,0x3BC74379,0xD91390C9};

unsigned long readTag=0;

void setup() {
 My595.SendLcdCommand(LCD595_DISPLAY_CLEAR, 0);
  My595.DisplayReset(LCD595_BASIC_DISPLAY_INIT | LCD595_MORELINES , 0);
  My595.SetBackLight(2, HIGH, 0);
 Serial.begin(9600); // Setta la seriale
  SPI.begin();    // Setta  SPI bus
  mfrc522.PCD_Init(); // Setta MFRC522
}

void loop() {
   if ( ! mfrc522.PICC_IsNewCardPresent())   // Look for new cards     
  { return;
  }
                
  if ( ! mfrc522.PICC_ReadCardSerial())    // Select one of the cards
  { return;
  }
readTag = 0;   // azzero il contenuto del tag
         for (byte i = 0; i < mfrc522.uid.size; i++)  { 
         (readTag =readTag << 8 |mfrc522.uid.uidByte[i]); 
      
   My595.SetCursor(0, 0, 2, 0); 
       My595.DisplayWrite(" Ola ", 0);
       My595.DisplayChar(readTag, 0);delay (1000);
   
         }
   
   
   /* for (byte x=0; x<=2;x++) {    // 2 perchè ci sono solo 3 tessere quindi n-1
    if (readTag == aRfid[x]) {
      My595.SendLcdCommand(LCD595_DISPLAY_CLEAR, 0);
       My595.SetCursor(0, 0, 2, 0); 
       My595.DisplayWrite(" Ola ", 0);
       My595.DisplayWrite(aNomi[x], 0);delay (1000);
        My595.SendLcdCommand(LCD595_DISPLAY_CLEAR, 0);
       My595.SetCursor(0, 0, 2, 0); 
       My595.DisplayWrite(" cod ", 0);
       My595.DisplayChar(readTag, 0);

    }}*/


       
}

ho scritto questa, ma sul display mi appare una lettera e basta.
non ti chiedo di darmi la soluzione, ma un indirizzo per capire, la differenza tra My595.DisplayWrite
e My595.DisplayChar

grazie