quinta-feira, 29 de junho de 2017

Display com matriz de LEDs




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);
}