Módulo Max7219 matriz de leds 8×8
Abordei anteriormente o uso do CI Max7219 para controle de display de 7 segmentos. Vimos que com ele é possível controlar até 8 displays de 7 segmentos por CI, e podemos ligar 8 CI’s em série, ou seja, podemos utilizar o Arduino para controlar até 64 displays. Neste post veremos um outro uso deste CI usando o Módulo Max7219 com matriz de leds 8×8.
O uso desse tipo de matriz possibilita a montagem de painéis elaborados, onde podemos exibir números, letras e desenhos, e dependendo da configuração da matriz, mostrar tudo isso em várias formas, tamanhos e cores:
A ligação da matriz de leds na protoboard costuma ser um pouco complexa e exige muita atenção para não danificar os componentes, principalmente a matriz de leds em si, que costuma ser um componente sensível.
Felizmente, existem módulos matriz de leds prontos para este fim, que consistem em um CI Max7219, uma matriz de leds 8×8 e alguns outros componentes, como capacitores e resistores. Pode ser encontrado em forma de kits, como esse:
ou já montados e prontos para usar, como esse:
Repare que no lado esquedo do módulo, estão os pinos de entrada, nomeados como VCC, GND, DIN, CS e CLK. Os pinos do lado direito são utilizados para interligar vários módulos, e serão assunto para outro post. Hoje vamos ver como ligar este único módulo no Arduino e como mostrar caracteres na matriz em scroll horizontal. Fiz um pequeno vídeo de teste, onde além dos caracteres em scroll podem ser visualizadas outras figuras:
Como usar o módulo Max7219 com Arduino
A ligação ao Arduino, da mesma forma que no post Controlando Display 7 Segmentos com o Max7219, usa apenas 3 portas da placa, o que dá bastante flexibilidade para usarmos sensores, leds, botões, etc. juntamente com o módulo:
Conexões do módulo Max7219 no Arduino:
- 5v do Arduíno ligado ao VCC do módulo
- GND do Arduino ligado ao GND do módulo
- Porta 4 do Arduino ligada ao pino DIN do módulo
- Porta 5 do Arduino ligada ao pino CS do módulo
- Porta 6 do Arduino ligada ao pino CLK do módulo
O programa foi baseado no livro Arduino Básico, do autor Michael McRoberts, com pequenas alterações e adaptações. Carregue o programa no Arduino alterando as linhas de mensagem, conforme indicado no final do programa, para exibir as informações que você quiser:
// Programa : Scroll horizontal com matriz de leds 8x8 // Baseado no livro Arduino Basico, de Michael McRoberts // Alterações e comentários : Arduino e Cia #include <pgmspace.h> #include <TimerOne.h> int DataPin = 4; //Ligar o pino 4 do Arduino ao DIN do modulo int ClockPin = 5; //Ligar o pino 5 do Arduino ao CLK do módulo int LoadPin = 6; //Ligar o pino 6 do Arduinio ao pino CS/Load do módulo byte buffer[8]; static byte font[][8] PROGMEM = { {B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000}, {B00000100, B00000100, B00000100, B00000100, B00000100, B00000100, B00000000, B00000100}, {B00001010, B00001010, B00001010, B00000000, B00000000, B00000000, B00000000, B00000000}, {B00000000, B00001010, B00011111, B00001010, B00011111, B00001010, B00011111, B00001010}, {B00000111, B00001100, B00010100, B00001100, B00000110, B00000101, B00000110, B00011100}, {B00011001, B00011010, B00000010, B00000100, B00000100, B00001000, B00001011, B00010011}, {B00000110, B00001010, B00010010, B00010100, B00001001, B00010110, B00010110, B00001001}, {B00000100, B00000100, B00000100, B00000000, B00000000, B00000000, B00000000, B00000000}, {B00000010, B00000100, B00001000, B00001000, B00001000, B00001000, B00000100, B00000010}, {B00001000, B00000100, B00000010, B00000010, B00000010, B00000010, B00000100, B00001000}, {B00010101, B00001110, B00011111, B00001110, B00010101, B00000000, B00000000, B00000000}, {B00000000, B00000000, B00000100, B00000100, B00011111, B00000100, B00000100, B00000000}, {B00000000, B00000000, B00000000, B00000000, B00000000, B00000110, B00000100, B00001000}, {B00000000, B00000000, B00000000, B00000000, B00001110, B00000000, B00000000, B00000000}, {B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000100}, {B00000001, B00000010, B00000010, B00000100, B00000100, B00001000, B00001000, B00010000}, {B00001110, B00010001, B00010011, B00010001, B00010101, B00010001, B00011001, B00001110}, {B00000100, B00001100, B00010100, B00000100, B00000100, B00000100, B00000100, B00011111}, {B00001110, B00010001, B00010001, B00000010, B00000100, B00001000, B00010000, B00011111}, {B00001110, B00010001, B00000001, B00001110, B00000001, B00000001, B00010001, B00001110}, {B00010000, B00010000, B00010100, B00010100, B00011111, B00000100, B00000100, B00000100}, {B00011111, B00010000, B00010000, B00011110, B00000001, B00000001, B00000001, B00011110}, {B00000111, B00001000, B00010000, B00011110, B00010001, B00010001, B00010001, B00001110}, {B00011111, B00000001, B00000001, B00000001, B00000010, B00000100, B00001000, B00010000}, {B00001110, B00010001, B00010001, B00001110, B00010001, B00010001, B00010001, B00001110}, {B00001110, B00010001, B00010001, B00001111, B00000001, B00000001, B00000001, B00000001}, {B00000000, B00000100, B00000100, B00000000, B00000000, B00000100, B00000100, B00000000}, {B00000000, B00000100, B00000100, B00000000, B00000000, B00000100, B00000100, B00001000}, {B00000001, B00000010, B00000100, B00001000, B00001000, B00000100, B00000010, B00000001}, {B00000000, B00000000, B00000000, B00011110, B00000000, B00011110, B00000000, B00000000}, {B00010000, B00001000, B00000100, B00000010, B00000010, B00000100, B00001000, B00010000}, {B00001110, B00010001, B00010001, B00000010, B00000100, B00000100, B00000000, B00000100}, {B00001110, B00010001, B00010001, B00010101, B00010101, B00010001, B00010001, B00011110}, {B00001110, B00010001, B00010001, B00010001, B00011111, B00010001, B00010001, B00010001}, {B00011110, B00010001, B00010001, B00011110, B00010001, B00010001, B00010001, B00011110}, {B00000111, B00001000, B00010000, B00010000, B00010000, B00010000, B00001000, B00000111}, {B00011100, B00010010, B00010001, B00010001, B00010001, B00010001, B00010010, B00011100}, {B00011111, B00010000, B00010000, B00011110, B00010000, B00010000, B00010000, B00011111}, {B00011111, B00010000, B00010000, B00011110, B00010000, B00010000, B00010000, B00010000}, {B00001110, B00010001, B00010000, B00010000, B00010111, B00010001, B00010001, B00001110}, {B00010001, B00010001, B00010001, B00011111, B00010001, B00010001, B00010001, B00010001}, {B00011111, B00000100, B00000100, B00000100, B00000100, B00000100, B00000100, B00011111}, {B00011111, B00000100, B00000100, B00000100, B00000100, B00000100, B00010100, B00001000}, {B00010001, B00010010, B00010100, B00011000, B00010100, B00010010, B00010001, B00010001}, {B00010000, B00010000, B00010000, B00010000, B00010000, B00010000, B00010000, B00011111}, {B00010001, B00011011, B00011111, B00010101, B00010001, B00010001, B00010001, B00010001}, {B00010001, B00011001, B00011001, B00010101, B00010101, B00010011, B00010011, B00010001}, {B00001110, B00010001, B00010001, B00010001, B00010001, B00010001, B00010001, B00001110}, {B00011110, B00010001, B00010001, B00011110, B00010000, B00010000, B00010000, B00010000}, {B00001110, B00010001, B00010001, B00010001, B00010001, B00010101, B00010011, B00001111}, {B00011110, B00010001, B00010001, B00011110, B00010100, B00010010, B00010001, B00010001}, {B00001110, B00010001, B00010000, B00001000, B00000110, B00000001, B00010001, B00001110}, {B00011111, B00000100, B00000100, B00000100, B00000100, B00000100, B00000100, B00000100}, {B00010001, B00010001, B00010001, B00010001, B00010001, B00010001, B00010001, B00001110}, {B00010001, B00010001, B00010001, B00010001, B00010001, B00010001, B00001010, B00000100}, {B00010001, B00010001, B00010001, B00010001, B00010001, B00010101, B00010101, B00001010}, {B00010001, B00010001, B00001010, B00000100, B00000100, B00001010, B00010001, B00010001}, {B00010001, B00010001, B00001010, B00000100, B00000100, B00000100, B00000100, B00000100}, {B00011111, B00000001, B00000010, B00000100, B00001000, B00010000, B00010000, B00011111}, {B00001110, B00001000, B00001000, B00001000, B00001000, B00001000, B00001000, B00001110}, {B00010000, B00001000, B00001000, B00000100, B00000100, B00000010, B00000010, B00000001}, {B00001110, B00000010, B00000010, B00000010, B00000010, B00000010, B00000010, B00001110}, {B00000100, B00001010, B00010001, B00000000, B00000000, B00000000, B00000000, B00000000}, {B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00011111}, {B00001000, B00000100, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000}, {B00000000, B00000000, B00000000, B00001110, B00010010, B00010010, B00010010, B00001111}, {B00000000, B00010000, B00010000, B00010000, B00011100, B00010010, B00010010, B00011100}, {B00000000, B00000000, B00000000, B00001110, B00010000, B00010000, B00010000, B00001110}, {B00000000, B00000001, B00000001, B00000001, B00000111, B00001001, B00001001, B00000111}, {B00000000, B00000000, B00000000, B00011100, B00010010, B00011110, B00010000, B00001110}, {B00000000, B00000011, B00000100, B00000100, B00000110, B00000100, B00000100, B00000100}, {B00000000, B00001110, B00001010, B00001010, B00001110, B00000010, B00000010, B00001100}, {B00000000, B00010000, B00010000, B00010000, B00011100, B00010010, B00010010, B00010010}, {B00000000, B00000000, B00000100, B00000000, B00000100, B00000100, B00000100, B00000100}, {B00000000, B00000010, B00000000, B00000010, B00000010, B00000010, B00000010, B00001100}, {B00000000, B00010000, B00010000, B00010100, B00011000, B00011000, B00010100, B00010000}, {B00000000, B00010000, B00010000, B00010000, B00010000, B00010000, B00010000, B00001100}, {B00000000, B00000000, B00000000, B00001010, B00010101, B00010001, B00010001, B00010001}, {B00000000, B00000000, B00000000, B00010100, B00011010, B00010010, B00010010, B00010010}, {B00000000, B00000000, B00000000, B00001100, B00010010, B00010010, B00010010, B00001100}, {B00000000, B00011100, B00010010, B00010010, B00011100, B00010000, B00010000, B00010000}, {B00000000, B00001110, B00010010, B00010010, B00001110, B00000010, B00000010, B00000001}, {B00000000, B00000000, B00000000, B00001010, B00001100, B00001000, B00001000, B00001000}, {B00000000, B00000000, B00001110, B00010000, B00001000, B00000100, B00000010, B00011110}, {B00000000, B00010000, B00010000, B00011100, B00010000, B00010000, B00010000, B00001100}, {B00000000, B00000000, B00000000, B00010010, B00010010, B00010010, B00010010, B00001100}, {B00000000, B00000000, B00000000, B00010001, B00010001, B00010001, B00001010, B00000100}, {B00000000, B00000000, B00000000, B00010001, B00010001, B00010001, B00010101, B00001010}, {B00000000, B00000000, B00000000, B00010001, B00001010, B00000100, B00001010, B00010001}, {B00000000, B00000000, B00010001, B00001010, B00000100, B00001000, B00001000, B00010000}, {B00000000, B00000000, B00000000, B00011111, B00000010, B00000100, B00001000, B00011111}, {B00000010, B00000100, B00000100, B00000100, B00001000, B00000100, B00000100, B00000010}, {B00000100, B00000100, B00000100, B00000100, B00000100, B00000100, B00000100, B00000100}, {B00001000, B00000100, B00000100, B00000100, B00000010, B00000100, B00000100, B00001000}, {B00000000, B00000000, B00000000, B00001010, B00011110, B00010100, B00000000, B00000000} }; void clearDisplay() { for (byte x=0; x<8; x++) { buffer[x] = B00000000; } screenUpdate(); } void initMAX7219() { pinMode(DataPin, OUTPUT); pinMode(LoadPin, OUTPUT); pinMode(ClockPin, OUTPUT); clearDisplay(); writeData(B00001011, B00000111); writeData(B00001001, B00000000); writeData(B00001100, B00000001); intensity(1); } void intensity(int intensity) { writeData(B00001010, intensity); } void writeData(byte MSB, byte LSB) { byte mask; digitalWrite(LoadPin, LOW); for (mask = B10000000; mask>0; mask >>= 1) { digitalWrite(ClockPin, LOW); if (MSB & mask) { digitalWrite(DataPin,HIGH); } else { digitalWrite(DataPin,LOW); } digitalWrite(ClockPin, HIGH); } for (mask = B10000000; mask>0; mask >>= 1) { digitalWrite(ClockPin, LOW); if (LSB & mask) { digitalWrite(DataPin,HIGH); } else { digitalWrite(DataPin,LOW); } digitalWrite(ClockPin, HIGH); } digitalWrite(LoadPin, HIGH); digitalWrite(ClockPin, LOW); } void scroll(char myString[], int speed) { byte firstChrRow, secondChrRow; byte ledOutput; byte chrPointer = 0; byte Char1, Char2; byte scrollBit = 0; byte strLength = 0; unsigned long time; unsigned long counter; while (myString[strLength]) {strLength++;} counter = millis(); while (chrPointer < (strLength-1)) { time = millis(); if (time > (counter + speed)) { Char1 = myString[chrPointer]; Char2 = myString[chrPointer+1]; for (byte y= 0; y<8; y++) { firstChrRow = pgm_read_byte(&font[Char1 - 32][y]); secondChrRow = (pgm_read_byte(&font[Char2 - 32][y])) << 1; ledOutput = (firstChrRow << scrollBit) | (secondChrRow >> (8 - scrollBit) ); buffer[y] = ledOutput; } scrollBit++; if (scrollBit > 6) { scrollBit = 0; chrPointer++; } counter = millis(); } } } void screenUpdate() { for (byte row = 0; row < 8; row++) { writeData(row+1, buffer[row]); } } void setup() { initMAX7219(); Timer1.initialize(10000); Timer1.attachInterrupt(screenUpdate); } void loop() { clearDisplay(); //Exibe a mensagem, com intervalo de scroll de 100 scroll(" Arduino e Cia ", 100); //Adicione mais linhas para mostrar outros caracteres scroll(" - 2013 ", 100); }
Quer interligar dois ou mais módulos? Veja o artigo Painel de Led com módulo Max7219. Confira também como montar um placar eletrônico usando Max7219 no post Placar Eletrônico com Arduino.
Onde eu acho os "includes" ??
#include
#include
Eles vêm junto com o diretório do Arduino ??
Dá um help por favor.
Abraços
Boa noite Alexandre !
Esses includes se referem às bibliotecas, que na maioria das vezes você vai ter que baixar da internet e colocar na pasta "libraries", dentro da IDE do Arduino.
A biblioteca pgmspace.h já vem junto com o Arduíno, você não precisa baixar. A biblioteca TimerOne você encontra nesse link :
https://code.google.com/p/arduino-timerone/
Se precisar de ajuda, volte aqui, por favor. Abraço e obrigado !
pgmspace.h e timerone.h aqui n veio n tive q baixar, timerone.h dá p baixar direto na ide do arduino pgmspace.h tem q ser no google msm
Boa tarde amigo gostei muito do seu projeto estou tentando copilar o código mas esta dando erro nessa parte void setup() {
initMAX7219();
Timer1.initialize(10000);
Timer1.attachInterrupt(screenUpdate)
poderia me ajudar.Obrigado
Bom dia. Qual erro aparece ?
Decobri o erro,agora eu quero saber o que eu tenho que alterar no codigo para passar as msg em 5 modulo max
Como resolveu o problema do erro!?
Só uma ressalva , o clock fica no pino 5
Boa tarde, gostaria de saber o que muda pra duas matrizes de LED. Abraços.
Boa tarde !
Acabou de sair um artigo sobre como interligar 2 módulos :
http://www.arduinoecia.com.br/2014/04/Painel-de-led-max7219.html
Abraço !
Amigo, não consegui entender esse monte de código: {B00000000, etc.), sei que é binário, mas por exemplo, como eu mostraria em uma matriz destas o mome "Daniel e Sandra" com rolagem?
Seria possível me dar uma dica, por favor?
email: [email protected]
Obrigado
Boa tarde,
Os códigos binários são os que formam as letras. Você não precisa alterar nada para mudar o texto na tela, porque os códigos binários já contém praticamente todas as letras que você precisa.
A única linha que você tem que alterar é essa :
scroll(" Arduino e Cia ", 100);
Ali você troca o "Arduino e Cia" pelo texto que precisa mostrar. 🙂
Abraço !
Desculpe, não tinha visto a resposta – muito obrigado mesmo!
Deus lhe abençoe,
abraço,
Boa tarde,
Sem problemas. Eu poderia ter respondido por email também. rs.
Abraço e obrigado !
ola amigo, parabens pelo projeto, uma duvida como faço para mudar as figuras, tipo assim eu sei como criar um coraçao, mas qual linha eu posso apagar p/ colocar a sequencia do coraçao ?? obrigado, abraço
Oi Lucas,
Com esse código realmente a coisa é meio complicada. Eu tenho um outro que é um pouco mais fácil de mexer, e de alterar o que você precisa. inclusive usei para montar o vídeo desse post.
Se puder, entre em contato usando o formulário de contato no lado direito da página, e eu te mando o código por email, ok ?
Abraço !
ok amigo, obrigado pelo retorno, quero sim sou novato nesse maravilhoso mundo do arduino, obrigado mesmo d coração,abraço
Valeu Lucas. Abraço !
O meu aparece esse erro:
MAX7219.ino: In function 'void setup()':
MAX7219:223: error: 'TimerOne' was not declared in this scope
Boa noite,
Qual versão da IDE você está usando ?
Abraço !
Amigo, como insiro textos animado com esse sketch base seu?… Poderia me ajudar? https://www.youtube.com/watch?v=bxUe58OxdBc
Boa noite Hailton,
Não tenho nada pronto nesse sentido, mas talvez exista até alguma biblioteca com esses efeitos pré-definidos.. vou dar uma pesquisada.
Abraço !
Boa noite amigo,
Nesse exemplo, é possível começar do zero?
No codigo acima sei que os binários são as letras, mas, é possível fazer os LEDs piscarem do meu jeito? Ex:. Pisca led da coluna x?
Att!
Boa tarde,
É possível sim. Tente o código abaixo, que acende vai percorrendo as linhas e colunas, acendendo um led de cada vez, utilize a biblioteca Ledcontrol, ok ?
//We always have to include the library
#include "LedControl.h"
/*Now we need a LedControl to work with.
pin 4 is connected to the DataIn
pin 5 is connected to the CLK
pin 6 is connected to LOAD / CS
We only have a single MAX7219 */
LedControl lc=LedControl(4,6,5,1);
/* we always wait a bit between updates of the display */
unsigned long delaytime=500;
void setup()
{
/* The MAX72XX is in power-saving mode on startup,
we have to do a wakeup call */
lc.shutdown(0,false); //* Set the brightness to a medium values */
lc.setIntensity(0,8); //* and clear the display */
lc.clearDisplay(0);
}
void loop()
{
lc.setIntensity(0,8);
single();
lc.clearDisplay(0);
}
/* This function will light up every Led on the matrix. The led will blink along with
the row-number. row number 4 (index==3) will blink 4 times etc. */
void single() {
for(int row=0;row<8;row++)
{
for(int col=0;col<8;col++)
{
delay(50);
lc.setLed(0,row,col,true);
delay(50);
for(int i=0;i<col;i++)
{
lc.setLed(0,row,col,false);
delay(50);
lc.setLed(0,row,col,true);
delay(50);
}
}
}
}
Abraço !
compilou, mas quando eu carreguei no Arduíno não funcionou. Eu troquei os pinos para que fiquem compatíveis com o especificado. no caso a instrução "
LedControl lc=LedControl(4,6,5,1);" define os comportamentos dos pinos. Porém não surgiu efeito. Não ligou. Como faço?
como eu faço para inserir valores,como de sensores,ja vi muitos codigos mas todos para inserir texto,mensagens,alguem pode me ajudar
Boa noite Sidnei,
Realmente a maioria dos exemplos envolvem texto. Tente usar a biblioteca MD_MAX72xx.h. Eu falo dela neste artigo :
http://www.arduinoecia.com.br/2014/04/Painel-de-led-max7219.html
Abraço !
Cara eu estou com uma dúvida semelhante, eu não quero que o texto se mova para a esquerda, eu quero que apareça um valor e fique fixo.
Exemplo, acionou o sensor 1, ai aparece o número 1 e fica fixo no display…
Se puder me ajudar eu agradeceria muito.
meu e-mail é [email protected]
Interessante. Todas as pesquisas que eu vejo é referente a textos se movendo. Eu quero desenhar definido pontos na tela do led 8×8. Sem movimentos. Mas eu geralmente só encontro referências a bibliotecas onde o texto aparecem e são especificados em um método passando uma String como parâmetro. Aguém pode me ajudar nisso?
Boa noite
Esta dando este erro
Arduino: 1.6.5 (Windows XP), Placa:"Arduino Uno"
In file included from Modulo_8x8_Matrix.ino:7:0:
Modulo_8x8_Matrix:16: error: variable 'font' must be const in order to be put into read-only section by means of '__attribute__((progmem))'
variable 'font' must be const in order to be put into read-only section by means of '__attribute__((progmem))'
Estou usando o Windows 10 e o código também há erro de refer~encia nas bibliotecas. Onde informa que os valores de referência são incompatíveis. Eu não encontrei essa biblioteca no site do arduino. 🙁
Estou tendo este mesmo erro… vocês descobriram como corrigi-lo?
O compilador avr-gcc mais recente (usado pelo Arduino 1.6.x) requer que as variáveis no PROGMEM sejam declaradas como const ok.
pode me ajudar ja estou quebrando a cabeça a 3 semanas segue o erro
Arduino: 1.6.5 (Windows 8.1), Placa:"Arduino Mega or Mega 2560, ATmega2560 (Mega 2560)"
In file included from testeled.ino:7:0:
C:UsersRafaelDocumentsArduinolibrariesgalileo-Pgmspace.h-master/pgmspace.h:28:37: error: 'int sprintf' redeclared as different kind of symbol
#define sprintf_P(s, f, …) sprintf((s), (f), __VA_ARGS__)
^
In file included from C:Program Files (x86)Arduinohardwarearduinoavrcoresarduino/Print.h:24:0,
from C:Program Files (x86)Arduinohardwarearduinoavrcoresarduino/Stream.h:26,
from C:Program Files (x86)Arduinohardwarearduinoavrcoresarduino/HardwareSerial.h:29,
from C:Program Files (x86)Arduinohardwarearduinoavrcoresarduino/Arduino.h:224,
from testeled.ino:10:
c:program files (x86)arduinohardwaretoolsavravrincludestdio.h:669:12: error: previous declaration of 'int sprintf(char*, const char*, …)'
extern int sprintf(char *__s, const char *__fmt, …);
^
In file included from testeled.ino:7:0:
c:program files (x86)arduinohardwaretoolsavravrincludestdio.h:675:12: error: expected primary-expression before 'char'
extern int sprintf_P(char *__s, const char *__fmt, …);
^
c:program files (x86)arduinohardwaretoolsavravrincludestdio.h:675:12: error: expected ')' before 'char'
Multiple libraries were found for "TimerOne.h"
Used: C:UsersRafaelDocumentsArduinolibrariesTimerOne-v9
Not used: C:UsersRafaelDocumentsArduinolibrariesTimerOne-r11
Erro compilando.
Oi Rafael,
O que é essa biblioteca galileo-Pgmspace.h/pgmspace.h ?
Abraço!
Boa tarde, gostaria de saber o que é preciso mudar para que o texto se desloque na posição vertical.
Obrigao
Boa tarde!
Sou novo neste mundo do Arduino e como toda a novidade, as dúvidas aparecem.
Estou precisando montar um painel de leds (para deixar no vidro da minha sala onde trabalho), mas com 5 paineis, para deixar informações para os usuários do setor.
Minhas dúvidas!
Qual o Arduino utilizar? pode ser o UNO?
Tem como deixar o scroll como no projeto que vi no yoputube (https://www.youtube.com/watch?v=FoHU6PrZcDg)?
E por último eu acho!
Tem como disponibilizar o código que tenho que gravar no arduino?
Quanto a compilar e a gravar, vou tentar me virar sozinho, pois tenho que quebrar a cabeça também… não tem graça receber tudo mastigado!!!
Desde já agradeço!
Boa tarde Henrique,
Vamos lá.
– Sim, pode ser o Uno, pois você vai utilizar os módulos em "cascata", ou seja, a saída de dados de um vai ligado na entrada de dados do outro.
– Eu tenho um projeto muito parecido com esse do vídeo, nesse link: http://www.arduinoecia.com.br/2014/04/Painel-de-led-max7219.html
Quanto ao código, eu posso te ajudar a tirar alguma dúvida referente ao programa ou circuito. 🙂
Abraço!
Olá, eu fui compilar essa programação e apareceu o seguinte erro : fatal error: pgmspace.h: No such file or directory.
O que eu faço para resolver esse problema ?
boa noite,
nao estou conseguindo descompactar o arquivo "TimerOne" do link, como devo proceder??
Olá Amigo.
Na minha IDE tambem esta dando esse erro na biblioteca pgmspace.h, ele não esta encontrando esta biblioteca no diretório, a minha versão da IDE é a 1.5.
Onde consigo as bibliotecas
hi help me
Arduino: 1.6.8 (Windows 10), Board: "Arduino/Genuino Uno"
C:UsersBakhuDocumentsArduinosketch_apr04bsketch_apr04b.ino:5:24: fatal error: pgmspace.h: No such file or directory
#include
^
compilation terminated.
exit status 1
Error compiling for board Arduino/Genuino Uno.
quanto custa esse módulo de leds 8×8 ? Eu preciso de um, já tenho o Arduino.
Boa tarde,
Eu tenho um disponível, já montado. Entre em contato utilizando o formulário de contato no lado direito da página. Te passo as informações por email.
Abraço!
Já estou com a matriz de led, estava trabalhando com Arduino 1.0.6 e atualizei para o Arduino 1.6.8 e agora o programa dá o seguinte erro:
Error compiling for board Arduino/Genuino Uno.
Será que vou ter que voltar para o 1.0.6? Peço uma ajuda, Rene.
Boa tarde,
Não sei se o erro tem a ver com a versão da IDE. Você tentou algum outro programa ?
Abraço!
Bom dia! O Código está dando erro de compilação, queria saber qual o erro?
compilation terminated
exit status 1
Erro compilando para placa Arduino/Genuino Uno
necessito demais desse exemplo, me ajude por favor
Oi amigo! Existe alguma função no código ou na biblioteca de forma que o texto gire 90º à esquerda ou à direita? A razão para isso é que eu quero encadear vários módulos verticalmente em relação aos pinos de saída do módulo pois, de outra forma, esses pinos atrapalham (não dá para juntar os módulos); Obrigado
Bom dia !
Desconheço uma função na biblioteca para fazer isso, mas estou fazendo um post para ligar os módulos do jeito que vc precisa… 🙂
Abraço!
OK! Fico no aguardo, obrigado
oi eu gostaria de saber se pode me ajudar, eu estou querendo fazer um painel de leds pequeno de começo porem mais pra frente quero um bem grande de mais ou menos 2 metros por 70 ou 50 cm e eu gostaria de saber se exste um modo mais facil de eu fazer isso tipo eu quero de começo fazer um pequeno e controlar por CI ate ai beleza mas e se eu fizer um bem grande ? eu consigo controlar por CI junto do arduino ? eu terei que escrever em binario nele ?
exste uma forma que eu possa escrever em decmal mesmo e ele converter para binario ?
"-IC:UsersRobert1DocumentsArduinolibrariesAdafruit_LED_Backpack_Library" "C:UsersRobert1AppDataLocalTemparduino_build_825943sketchmatrix8x8.ino.cpp" -o "nul"
"C:Program FilesArduinohardwaretoolsavr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -flto -w -x c++ -E -CC -mmcu=atmega2560 -DF_CPU=16000000L -DARDUINO=10613 -DARDUINO_AVR_MEGA2560 -DARDUINO_ARCH_AVR "-IC:Program FilesArduinohardwarearduinoavrcoresarduino" "-IC:Program FilesArduinohardwarearduinoavrvariantsmega" "-IC:Program FilesArduinohardwarearduinoavrlibrariesWiresrc" "-IC:UsersRobert1DocumentsArduinolibrariesAdafruit_LED_Backpack_Library" "C:UsersRobert1AppDataLocalTemparduino_build_825943sketchmatrix8x8.ino.cpp" -o "C:UsersRobert1AppDataLocalTemparduino_build_825943preprocctags_target_for_gcc_minus_e.cpp"
In file included from C:UsersRobert1DocumentsArduinolibrariesAdafruit_LED_Backpack_Libraryexamplesmatrix8x8matrix8x8.ino:23:0:
C:UsersRobert1DocumentsArduinolibrariesAdafruit_LED_Backpack_Library/Adafruit_LEDBackpack.h:32:26: fatal error: Adafruit_GFX.h: No such file or directory
#include "Adafruit_GFX.h"
^
compilation terminated.
Usando a biblioteca Wire na versão 1.0 na pasta: C:Program FilesArduinohardwarearduinoavrlibrariesWire
Usando a biblioteca Adafruit_LED_Backpack_Library na versão 1.1.5 na pasta: C:UsersRobert1DocumentsArduinolibrariesAdafruit_LED_Backpack_Library
exit status 1
Erro compilando para a placa Arduino/Genuino Mega or Mega 2560
Nao estou encontrando essa biblioteca pgmspace.h
https://github.com/mikalhart/galileo-Pgmspace.h
Confundi PGM com pgm, então:
pgmspace.h está em arduino-0015hardwaretoolsavravrincludeavr
Dessa forma, use o Arduino 0015
Ou, de outra forma, se você estiver compilando a partir do seu IDE, o sketch deve conter: #include
Bom dia,
Montei um relógio usando a matriz de led 32×8 (4 módulos), o circuito, por enquanto está na matriz de contato. Quando ligo o faiscador do fogão, que se encontra a 5 metros do relógio, o mostrador fica instável…acendendo blocos de leds etc. Retorno ao funcionamento normal ressetando o arduino. Alguém já percebeu essa sensibilidade da matriz aos ruídos elétricos desse tipo?
boa noite, no meu esta dando erro nessa parte
"static byte font[][8] (PROGMEM) = { "
aparece isso
sketch_jun13a: 15: erro: a variável 'fonte' deve ser const a fim de ser colocada na seção somente leitura por meio de '__attribute __ ((progmem))'
Não estou conseguindo essa blibioteca pgmspace.h. onde encontro essa biblioteca?