Saudaçôes:

Desde ja agradeço a boa vontade e colaboração dos colegas.

Preciso de um código para inicialmente ler no lcd  2004A  conectado a um arduino DUE um sinal USB proveniente de um leitor de codigo de barras.

O codigo atual em anexo, faz uma leitura em codigo conforme a primeira imagem,  necessito padronizar o mesmo, imprimir apenas o numero a segunda imagem e o codigo de barras que o leitor esta lendo.

Por favor alguem pode me ajudar?

Exibições: 1866

Anexos

As respostas para este tópico estão encerradas.

Respostas a este tópico

Boa noite a todos, após varias tentativas chegamos a um resultado positivo, eu não sei dizer o por que, mais e método encontrado e um tanto quanto diferente dos demais caminhos para comunicação por meio da porta serial, pra mim e totalmente novo, o importante e que chegamos a um resultado positivo agora vou dar continuidade ao código para juntar todas as demais partes restantes.

Anexos

Bacana da sua parte voltar na postagem antiga e publicar a solução encontrada!  É importante para aqueles que, futuramente, esbarrem com o mesmo problema :)

Um detalhe acerca do que disse em "diferente dos demais caminhos para comunicação por meio da porta serial", o que for realizado foi um tratamento após a comunicação serial e não na comunicação em si.

Você continua recebendo, via serial, os códigos no padrão ASCII do seu leitor de códigos de barras. Porém, antes de serem impressos (print) eles passam por uma conversão de forma a torná-los mais compreensíveis para o usuário final. Em resumo:  Leitura > Tratamento/Conversão > Exibição .

Saudações a todos na santa e gloriosa paz do senhor Jesus.

Dando continuidade ao projeto inicial que e deve armazenar o código de barras em uma variavel que possa ser enviada a um servidor o proximo passo consiste em acoplar ao nosso projeto um LCD.

Realizada a alteração no código atual  deparamos com o seguinte problema o LCD imprime o código lido pelo leitor de codigo de barras , mais um sequencia de tres caracteres inlegiveis, com forme a imagem a baixo algum dos colega saberia me dizer como resolver esse problema ou ainda nos informar porque isso acontece

Figura 1 montagem fisica do projeto

Arduino DUE, LCD 20x4, Shield de Rede, Leitor Codigo de barras USB, Fonte de Alimentação Auxiliar.

Figura dois leitura porta serial:

Anexos

Bom dia ,

Você tem duas opções para não mostrar os caracteres de controle.

Os caracteres de controle sempre são os mesmos?

Teste-os para identificá-los. Se for carácter de controle, suprima a impressão.

Ou se o código de barra sempre tiver o mesmo tamanho, conte o número de caracteres.

Excedendo o valor desejado, suprima a impressão dos outros. 

Por acaso, esse caracteres de controle são o checksum dos dados ?

Boa tarde colega Jose muito obrigado pela atenção voce poderia por favor me mostrar com utilizar a função substring para determinar o numero exato de digitos impressos no lcd do meu codigo

Boa tarde, 

Sugiro que estude essa função:

https://www.arduino.cc/reference/en/language/variables/data-types/s...

E mais o tipo de dado  String() (vejas as inúmeras funções possíveis) :

https://www.arduino.cc/reference/en/language/variables/data-types/s...

Pesquise exemplos para aprender.

Finalizando mais um tópico onde segundo a graça de Deus compartilhamos nossos aprendizados e recebemos o fruto da saberia ministrada pelos colegas, Eu quero agradecer ao colega Jose Gustavo A. Murta pela paciensia e boa vontade em nos orientar.

Com relação a duvida anterior foi resolvida da seguinte forma

auxBarra = codBarra.substring(0, 13);
lcd.println(auxBarra);

Onde a função substring capitura as 13 primeiras casas da variavel string (codBarra) e as armazena na nova variavel criada.

Nota: tambem foi necessario alterar a configuração do leitor de código de barras para o mesmo não apresentar digito verificador.

O programa atual realiza leitura e impressão dos codigo de barras com no maximo treze digitos com impressão no monitor serial e display LCD.

Anexos

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço