#include <PxMatrix.h>
#include <Ticker.h>
#define P_LAT D0 //D0
#define P_A D1 //D1
#define P_B D2 //D2
#define P_C D8 //D8
#define P_OE D4 //D4
#define PxMATRIX_MAX_WIDTH 96
#define PxMATRIX_MAX_HEIGHT 16
#define panel_width 3
PxMATRIX display(96, 16, P_LAT, P_OE, P_A, P_B, P_C);
//#define double_buffer 0
uint16_t myRED = display.color565(255, 0, 0);
uint16_t myGREEN = display.color565(0, 255, 0);
uint16_t myBLUE = display.color565(0, 0, 255);
uint16_t myWHITE = display.color565(255, 255, 255);
uint16_t myYELLOW = display.color565(255, 255, 0);
uint16_t myCYAN = display.color565(0, 255, 255);
uint16_t myMAGENTA = display.color565(255, 0, 255);
uint16_t myBLACK = display.color565(0, 0, 0);
uint16_t myCOLORS[8] = {myRED, myGREEN, myBLUE, myWHITE, myYELLOW, myCYAN, myMAGENTA, myBLACK };
Ticker display_ticker;
void display_updater() {
display.display(70);
}
void setup() {
Serial.begin(9600);
display.begin(8);
display.setPanelsWidth(panel_width);
display_ticker.attach(0.002, display_updater);
display.setFastUpdate(true);
display.clearDisplay();
display.setTextWrap(false);
display.fillScreen(myBLACK);
}
void loop() {
for (byte x = 0; x < 8; ++x) {
display.setTextColor(myCOLORS[x], myBLACK);
display.setFont();
display.setCursor(0, 0);
display.setTextSize(1);
display.print("3 x P10 RGB");
delay(1000);
}
yield();
}
I use RGB matrix led panel from China with specifications:
Hardware : Nodemcu ESP8266 Lolin
The result is normal for multi panel = 2. the rest (panel_width> 2) the result is the text / pixel shifts approximately 2 pixels for each color.
the code that I use:
image :
