Dois displays um MAX7219, como exibir dígitos da direita pra esquerda ?

Olá pessoal.

Sou hobbysta, estou tentando fazer um projetinho com Arduino e estou tendo dificuldades em exibir valores de dois potenciômetros em dois displays de 3 dígitos individuais usando 1 CI MAX7219. Encontrei a biblioteca "Ledprint" que diz na descrição fazer o que eu preciso. Eu quero que os dígitos sejam dispostos da direita pra esquerda e com 1 casa decimal no primeiro display, igual um paquímetro, mas toda tentativa que faço eu acabo tendo problemas com a ordem dos dígitos nas casas e também com a posição. Alguém poderia me dizer como deixar o código e as ligações de forma que os dígitos sejam dispostos da direita pra esquerda? Ainda estou desenvolvendo, mas empaquei nessa parte de exibição nos displays. Na simulação eu só consigo que sejam exibidos da esquerda pra direita e mesmo assim o ponto decimal fica pulando de casa.

Agradeço qualquer ajuda ou dica.

Obrigado pela atenção.

Biblioteca LedPrint:> LedPrint

Código:> https://pastebin.com/eXRUgPqM

Simulação Proteus + código hex:> desenho + código

Esquema:

Chaveteira.pdf

Exibições: 168

Responder esta

Respostas a este tópico

Boa  noite.

Qual release da IDE do arduino vc está usando?

Qual arduino vc está usando?

Coloque o link de onde vc baixou as bibliotecas abaixo, pois baixei algumas e

ao rodar seu  código, estão dando erro de compilação.

LedPrint.h
LedPrintJustifiable.h
ResponsiveAnalogRead.h
Pushbutton.h

RV mineirin

Olá, bom dia.

O código compila nas versões 1.8.19 e 2.1.1 que são as versões que eu testei aqui. Segue os links:

https://github.com/dxinteractive/ResponsiveAnalogRead

https://github.com/pololu/pushbutton-arduino

https://github.com/sleemanj/LedPrint

Olá,

  Nunca usei essa biblioteca, mto legal.

  Lendo a documentação dela:

https://github.com/sleemanj/LedPrint/blob/master/README.md

  Tem o exemplo:

// Floats myDisplay.println(5.345, 3); // 3 dp 

Vc já tentou

disAvanco.println(avanco,3);

?

Caso não resolva, veja se entendi a sua duvida: Hj aparece:

"1.98"

"1.99"

"   2"

" 2.1"

E vc queria:

"1.98"

"1.99"

"2.00"

"2.10"

Se não for isso, faça um exemplo do que seria.

Olá, boa tarde. Então, eu gostaria que ficasse come é nos paquímetros, como esse segundo exemplo que você mostrou. Isso é em um dos displays de 3 dígitos, no outro eu não preciso de casa decimal, mas eu preciso que ambos mostrem os números da direita para esquerda, ou seja o primeiro digito, a casa da unidade fique do lado direito.

Isso é o que acontece atualmente ao fazer um incremento de "1" em ambos displays. No caso do segundo display, além desse problema da orientação, eu preciso que os incrementos fossem de 0.10 em 0.10

 

Vc tentou o disAvanco.println(avanco,3); ?

disAvanco.println(avanco,2);

disAvanco.println(avanco,1);

Pra ver o efeito ?

Tambem:

  // Center justify (0), alternatives -1 for left and 1 for right   
myLed.justify(0);

Ref: https://github.com/sleemanj/LedPrint

Olá, boa tarde, muito obrigado pela dica, já está quase como eu queria. Os incrementos do segundo display eu deixei de 0.10 em 0.10.

Ficou assim:

passes = map(v2, 0, 1023, 0, 200);
avanco = (map(v1, 0, 1023, 0, 90)*0.10);
disAvanco.println(avanco,2);
disPasses.println(passes,1);

Só preciso agora que o primeiro display mostrasse o digito menos significativo do lado direito. Eu testei com: 

myLed.justify(0);
myLed.justify(1);
myLed.justify(-1);

Mas não vi alterações.





Será que existe um:
disAvanco.justify(1); ?

Caso não exista, uma alternativa seria usar como texto.

Aih vc formata a string primeiro e joga no display como no exemplo:

// Strings 
myDisplay.println("Hello");



Olá, boa tarde. Descobri que o motivo da justificação não ter funcionado é porque eu declarei o objeto dos sub-displays como sendo do tipo LedPrint, sendo que para funcionar esse recurso teria que ser LedPrintJustifiable.

LedPrintJustifiable disAvanco;
LedPrintJustifiable disPasses;

Os displays ficaram oscilando bastante na simulação, mas espero que na montagem real isso não seja perceptível. Mais uma vez obrigado pela ajuda.

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço