SLR2016 5x7 LED OSRAM Opto Semiconductors and the Arduino code to run them

You need to add more spaces before Mary and after lamb, to avoid seeing those random characters like last time. These random characters come from bytes of ram memory either side of your message string, which may be unused, or may contain your other program variables. With languages like BASIC, you get an error message if to try to access an index or an array that is "out of bounds", but C does not check that kind of thing for you. You are expected, as a C programmer, to do any neccessary checking yourself.

Your display is now 12 characters long, not 8, so you need to update the "for (byte c...)" loop.

For your WR pins, try this:

      if (c >= 8) {    
        digitalWrite(SLR2016_WR1, LOW);
        digitalWrite(SLR2016_WR1, HIGH); }
      else if (c >= 4) {    
        digitalWrite(SLR2016_WR2, LOW);
        digitalWrite(SLR2016_WR2, HIGH); }
      else {
        digitalWrite(SLR2016_WR3, LOW);
        digitalWrite(SLR2016_WR3, HIGH);
      }