Para escrever sketches para o display com matriz de LEDs usa-se a biblioteca MD_MAX72xx.
Esta biblioteca suporta diferentes hardwares. A versão que eu instalei vem configurada para o Parola. Mas o Hardware que eu tinha em mãos era um genérico compatível com FC16 e os nos exemplos que experimentei, os caracteres apareciam invertidos e os efeitos não funcionavam como o esperado. Foi necessário mudar a configuração.
Configurando: Localize e abra o arquivo MD_MAX72xx.h e mude as linhas abaixo:
#define USE_PAROLA_HW 0 // original é 1
#define USE_FC16_HW 1 // original é 0
sketch de teste "Hello, world!":
#include <MD_MAX72xx.h>
#define NUM_DEVICES 4
#define DATA_PIN 12
#define CS_PIN 11
#define CLK_PIN 10
MD_MAX72XX mx = MD_MAX72XX(DATA_PIN, CLK_PIN, CS_PIN, NUM_DEVICES);
#define DELAYTIME 100
void scrollText(char *p)
{
uint8_t charWidth;
uint8_t cBuf[8];
mx.clear();
while (*p != '\0')
{
charWidth = mx.getChar(*p++, sizeof(cBuf)/sizeof(cBuf[0]), cBuf);
for (uint8_t i=0; i<charWidth + 1; i++)
{
mx.transform(MD_MAX72XX::TSL);
if (i < charWidth)
mx.setColumn(0, cBuf[i]);
delay(DELAYTIME);
}
}
}
void setup()
{
mx.begin();
}
void loop()
{
scrollText("Hello, world! ");
delay(2000);
}