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:
Tags:
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
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);
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.
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por