AJUDA PARA MONTAR UM SKETCH DE LETREIRO DIGITAL ARDUINO+MAX7219+4 MATRIX LED 8X8=32X8

254 views
Skip to first unread message

Hailton Martins

unread,
Oct 6, 2014, 1:12:56 PM10/6/14
to arduin...@googlegroups.com
Galera sou novo nos processos e estou procurando alguém que fraga o código do Arduino para animação de texto para um painel de led de Matrix de led 32x8 com micro controlador MAX7219. Montei tudo já tá funfando blz, só falta o código certo.

Preciso da ajuda da montagem desses comandos animado para 4 mensagem com letras e caracteres que aparecem uma atrás da outra com animações sequenciais... 

01- Um com texto em movimento
02 - Um com texto que surge como flash, uma vez e sai com efeito flash.
03 - Um com texto que surge como flash, uma vez e sai com efeito flash.
04 - Um que aparece a iluminação completa da grade de led de cima para baixo fica por 30 sec e sai.

TENHO ESSE SKETCH PRIMÁRIO COMO MODELO. Se vc poder me ajudar, dar alguma dica agradeço.


// Programa : Painel de leds com modulo Max7219  
// Adaptacoes e comentarios : Arduino e Cia  

// Carrega a biblioteca MD_MAX72xx  
#include <MD_MAX72xx.h>  
  
// Numero de modulos utilizados  
#define     MAX_DEVICES     4  
  
// Ligacoes ao Arduino  
#define     DATA_PIN     4  
#define     CS_PIN       5  
#define     CLK_PIN      6  
   
MD_MAX72XX mx = MD_MAX72XX(DATA_PIN, CLK_PIN, CS_PIN, MAX_DEVICES);  
  
// Velocidade do scroll  
#define SCROLL_DELAY     100  
// Colunas entre cada caracter  
#define     CHAR_SPACING     1  
  
#define     BUF_SIZE     75  
char curMessage[BUF_SIZE];  
char newMessage[BUF_SIZE];  
  
// int scrollDelay;  
  
uint8_t scrollDataSource(uint8_t dev, MD_MAX72XX::transformType_t t)  
{  
  static char          *p = curMessage;  
  static uint8_t     state = 0;  
  static uint8_t     curLen, showLen;  
  static uint8_t     cBuf[8];  
  uint8_t colData;  
  
  switch(state)  
  {  
  case 0:  
    showLen = mx.getChar(*p++, sizeof(cBuf)/sizeof(cBuf[0]), cBuf);  
    curLen = 0;  
    state++;  
    if (*p == '\0')  
    {  
     p = curMessage;  
    }  
  case 1:       
    colData = cBuf[curLen++];  
    if (curLen == showLen)  
    {  
     showLen = CHAR_SPACING;  
     curLen = 0;  
     state = 2;  
    }  
    break;  
  case 2:  
    colData = 0;  
    curLen++;  
    if (curLen == showLen)  
     state = 0;  
    break;  
    default:  
    state = 0;  
  }  
  return(colData);  
}  
  
void scrollText(void)  
{  
  static uint32_t     prevTime = 0;  
  if (millis()-prevTime >= SCROLL_DELAY)  
  {  
    mx.transform(MD_MAX72XX::TSR);       
    prevTime = millis();  
  }  
}  
  
void setup()  
{  
  mx.begin();  
  mx.setShiftDataInCallback(scrollDataSource);  
  // Define o nivel de luminosidade  
  mx.control(MD_MAX72XX::INTENSITY, 4);  
  // Mensagem a ser exibida   
  strcpy(curMessage, "DAFT PUNK -------->>>>*.*<<<<                 GO...GO...GO...GO                  ---0--0--- ");  
  newMessage[0] = '\0';  
}  
   
void loop()   
{  
  scrollText();  
}  

Reply all
Reply to author
Forward
0 new messages