Codigo com led matrix fuincinou na simulação mas não funcionou na parte fisica

Eu estou fazendo um projeto usando led matrix com um total de 4 de 8x8, o código na simulação funcionou mas quando eu tentei montar não funcionou direito, apenas ligava o primeiro dos 4 ou se ligava os 4 todos ficavam com a mesma imagem.

Essa é a peça em questão que eu estou usando.

Verifique seus fios e fonte de alimentação. Assista a este vídeo.

Fui eu quem reescreveu este simulado para ajudar outro aqui no forum.

Acho que tem algum problema com esta biblioteca , pois não funciona montado nem o exemplo da biblioteca
"LCDemo7segment.ino" .

Usei um teste que tenho aqui com a biblioteca "#include <MD_MAX72xx.h>" e escreve na matriz e funcionou corretamente a escrita.

Vou ver se descubro o problema

Obrigado, dentro do wokwi estava funcionando perfeitamente mas quando eu montei não deu certo, eu e meu professor estamos tentando descobrir o problema a semanas mas sem nenhum sucesso, a única coisa que pensamos era que poderia ser a peça que estávamos usando no caso o led matrix.

Ps: Eu sou a pessoa que tinha feito o outro post, eu não imaginava que você iria acabar vendo esse post também.

Passei o dia estudando o porque de não funcionar fisicamente e ainda não encontrei a razão.
Estudei os pinos Din Clk e CS com o analisador lógico. Fiz pequenas modificações na biblioteca. Mas mesmo assim ainda não entendi porque não funciona.

Depois de estudar bastante o projeto , a biblioteca e analisar toda a carta de tempo do
projeto, cheguei a conclusão que os valores deveriam também aparecer nas matrizes
1,2,e 3 , mas não apareciam.

O problema não estava na biblioteca mas sim no setup do codigo.

Mas da forma que estava nunca poderia ter funcionado corretamente no simulador.
Conclusão, tem um erro no simulador.

Explicando:
Ao ligar o arduino e as matrizes, elas entram em shutdown mode, o seja, ficam
"estacionárias" e não fazem scan dos valores no registrador.

No codigo que escrevi estava assim:

void setup() {
  lc.shutdown(0, false);
  lc.setIntensity(0, 6);
  lc.clearDisplay(0);
  pinMode(pinoBotao, INPUT_PULLUP);
  lastPress = digitalRead(pinoBotao);
}

Aqui o codigo diz para tirar a matriz 0 de shutdowm mode. lc.shutdown(0, false);

Mas precisava tirar todas 4 matrizes.

Não poderia mas mesmo assim funcionou no simulador.

Agora da forma que está funciona no simulador e montado fisicamente aqui na minha bancada.
" Dado - Wokwi ESP32, STM32, Arduino Simulator

Ufa, que couro tomei por uma besteira.... :laughing: :laughing: :laughing:

Isto é mais que óbvio... até simuladores industriais têm problemas destes.

Nossa cara valeu mesmo, mas poxa agora fiquei frustrado porque estava eu e meu professor olhando esse código por 3 semanas e não percebemos o que tinha de errado, serio mesmo muito obrigado.

O que eu acho pior é que eu fiz vários testes mudando o valor

LedControl lc = LedControl(DIN, CLK, CS, 4);

para ver que resultados tinha, no valor 4 ligava apenas o 1 led, no valor 3 ligava o primeiro e o terceiro led, no valor 2 ligava o primeiro e o quarto led e no valor 1 ligava todos os leds, e eu queria perguntar porque eu fiquei bem curioso sobre isso mas como o botão está funcionando ligando daquele jeito?

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.