Scrolling multiple lines of text

Good day to you all. After 3 days of searching I finally found a website to help get me started with this project
Took a sketch from a different sized panel (8x32) and adapted it to work with my setup which is
2 x 16x16 flex led matrix panels and an Elegoo UNO R3. External power source which is more than sufficient for scrolling text.
What I've managed to do is adjust panel size, create a second line of text below the top line which is centered under the top line quite nicely and adjust scrolling speed
What I haven't figured out yet is
A: Can I scroll the second line of text at a different speed than the first line and/or
B: Have the bottom line of text a different color than the top line
Here is where I'm at with the code It does work except for the above mentioned limitations

If someone could point me in the right direction or provide an appropriate link that would be amazing

#include <Adafruit_NeoMatrix.h>
#include <Adafruit_NeoPixel.h>

#define PIN 3

// MATRIX DECLARATION:
// Parameter 1 = width of NeoPixel matrix
// Parameter 2 = height of matrix
// Parameter 3 = pin number 
// Parameter 4 = matrix layout flags, add together as needed:

// Parameter 5 = pixel type flags, 
//   NEO_KHZ800  800 KHz bitstream (most NeoPixel products w/WS2812 LEDs)


Adafruit_NeoMatrix matrix = Adafruit_NeoMatrix(32, 16, PIN,
  NEO_MATRIX_BOTTOM    + NEO_MATRIX_RIGHT +
  NEO_MATRIX_COLUMNS + NEO_MATRIX_ZIGZAG,
  NEO_GRB            + NEO_KHZ800);

const uint16_t colors[] = {
  matrix.Color(255, 0, 0), matrix.Color(0, 255, 0), matrix.Color(255, 255, 0),matrix.Color(0, 0, 255), matrix.Color(255, 0, 255), matrix.Color(0, 255, 255), matrix.Color(255, 255, 255)};

void setup() {
  matrix.begin();
  matrix.setTextWrap(false);
  matrix.setBrightness(9);
  matrix.setTextColor(colors[0]);
}

int x    = matrix.width();
int y    = matrix.height();

int pass = 0;

void loop() {
  matrix.fillScreen(0);    //Turn off all the LEDs
  matrix.setCursor(x, 0);
  matrix.print(F("WELCOME TO MY WORLD"));
  matrix.setCursor(x, 8);
  matrix.print(F("      RS - 3D"));
  if( --x < -90 ) {
    x = matrix.width();

    if(++pass >= 8) pass = 0;
    matrix.setTextColor(colors[pass]);
  }
  
  matrix.show();
  delay(25);
}
type or paste code here

Certainly yes to both questions, but I am not sure that the library has a ready-coded methods to it. Perhaps you will have to partially implement this yourself. In the end, the letters on the matrix are nothing more than a set of pixels, the position and color of which you can freely change

This great to know. Any chance you may know of a suitable guide? A good place to start would be amazing . I'm very new to this and each time I can successfully even change a code and the behavior is as expected I get vary excited. So far my google searches have not brought me to the right page

type or paste code here
```const uint16_t colors[] = {
  matrix.Color(255, 0, 0), matrix.Color(0, 255, 0), matrix.Color(255, 255, 0),matrix.Color(0, 0, 255), matrix.Color(255, 0, 255), matrix.Color(0, 255, 255), matrix.Color(255, 255, 255)};


   I now these are the colorvalues. Just don't know how to assign them

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