Why not check the size of both matrices? And, get rid of excessive white space at the same time.
#include <Adafruit_GFX.h>
#include <Adafruit_NeoMatrix.h>
#include <Adafruit_NeoPixel.h>
#define matrixWidth 16
#define matrixHeight 16
#define tilesX 2
#define tilesY 1
Adafruit_NeoMatrix matrix2 = Adafruit_NeoMatrix(matrixWidth, matrixHeight, tilesX, tilesY, 4,
NEO_MATRIX_TOP + NEO_MATRIX_RIGHT + NEO_MATRIX_ROWS + NEO_MATRIX_ZIGZAG +
NEO_TILE_TOP + NEO_TILE_RIGHT + NEO_TILE_ROWS,
NEO_GRB + NEO_KHZ800);
Adafruit_NeoMatrix matrix1 = Adafruit_NeoMatrix(matrixWidth, matrixHeight, tilesX, tilesY, 2,
NEO_MATRIX_TOP + NEO_MATRIX_RIGHT + NEO_MATRIX_ROWS + NEO_MATRIX_ZIGZAG +
NEO_TILE_TOP + NEO_TILE_RIGHT + NEO_TILE_ROWS,
NEO_GRB + NEO_KHZ800);
void setup() {
// Start the serial interface
Serial.begin(57600);
uint16_t numLEDs1 = matrix1.numPixels();
uint16_t numLEDs2 = matrix2.numPixels();
Serial.print("Number of LEDs Matrix 1: ");
Serial.println(numLEDs1);
Serial.print("Number of LEDs Matrix 2: ");
Serial.println(numLEDs2);
matrix1.begin();
matrix1.setTextWrap(false);
matrix1.setBrightness(5);
matrix2.begin();
matrix2.setTextWrap(false);
matrix2.setBrightness(5);
}
void loop() {
showTop();
showBottom();
}
void showTop() {
matrix1.fillScreen(matrix1.Color(0, 128, 0));
matrix1.show();
}
void showBottom() {
matrix2.fillScreen(matrix2.Color(0, 0, 128));
matrix2.show();
}