Olá pessoal, estou precisando uma ajuda. Eu comprei um modulo laser chinês de 30W da marca Neje. Esse modulo laser possui um sensor de temperatura interna e envia através de comunicação serial a temperatura para outra plaquinha que vai exibir a temperatura. Porém eu não fiz a compra dessa plaquinha e gostaria de estar fazendo esse monitoramento da temperatura utilizando um Arduino e um display de 7 segmentos. Essa é a plaquinha em questão: 

Usando um analisador lógico eu consegui fazer a leitura do sinal serial gerado, além disso o fabricante fornece informação do formato do sinal conforme segue: 

Eu tenho apenas conhecimento básico em programação e através de pesquisa e modificações eu cheguei a esse código que eu esperava que pudesse fazer a leitura dessas informações para visualizar no monitor serial da IDE do Arduino: 

Porém o resultado da leitura é bem diferente do esperado: 

Alguém poderia me ajudar ? Desde já agradeço.

Exibições: 425

Responder esta

Respostas a este tópico

Boa tarde O2S, (se não gosta que te chame pelas iniciais, avise),

vamos por partes:

A listagem que você postou foi obtida no monitor serial da IDE do arduino?

Onde você ligou no arduino a serial vinda do laser?

RV 

Esses valores eu obtive com um programa de terminal chamado PuTTYtel, já que no monitor serial da IDE Arduino não tinha como escolher baudrate 200, que é o padrão do modulo laser para comunicação.

O fio responsável pela comunicação serial do modulo laser foi conectado ao pino RX (0) do Arduino Uno, também esta ligado a porta USB do Arduino no PC, mas isso é apenas para monitorar os valores, nada é enviado pelo PC, só o modulo laser envia dados.

Bom dia O2S,  (se não gosta que te chame pelas iniciais, avise),

realmente não tinha me atentado ao detalhe de que o serial monitor não suporta esta

velocidade de transmissão/recepção.

Eu já usei este programa PuTTYtel, mas prefiro outro, o HTerm.

Como o USB utiliza os ports RX e TX para comunicação entre o PC e o Arduino, 

não é recomendável usar estes ports para qq outra função, principalmente para troca de dados 

entre o arduino e qq outro dispositivo.

Da forma que você está ligando, haverá conflito de dados.

Você tem 2 modos de conseguir ler este dispositivo.

1.  Use um serial virtual,  o softwareSerial   https://www.arduino.cc/en/Reference/softwareSerial

2.  use um arduino com mis de uma serial, por ex: o arduino Mega.

     

Use uma serial para a comunicação PC < -- >  arduino ,

     e a outra para comunicação laser   -- >  arduino .

Depois conta o resultado pra gente.

RV mineirin

PS. Uma detalhe me chamou atenção:

Na tabela que vc postou tem 6 bytes  --  1 até 6, mas na tela do analisador lógico 

apareceram 7 bytes .

Observei que o Packet length tem o valor 07.

Bom dia mineirin RV, obrigado pela atenção. Entendi, eu imaginei que não haveria problema se eu não enviasse nada do PC para o Arduino via serial, mas eu não preciso realmente utilizar a comunicação serial para isso, posso trocar para um LCD por em quanto para evitar esses conflitos que você citou, minha intenção no final seria colher esse valor da temperatura e mostrar num display 7 segmentos.

Quanto a essa diferença da quantia de bytes eu também fiquei em dúvida, realmente não bate com a tabela, mas me parece que o byte 5 continua sendo o da temperatura tanto no analisador quanto na tabela.

Seguindo seu conselho usei o softwareSerial para a comunicação com o módulo laser e a porta serial do Uno para mostrar no terminal do PC, também troquei para o HTerm, não conhecia esse programa, o resultado agora bate com o do analisador logico: Código atual: https://pastebin.com/3r7L28d2

Só tem um detalhe, o primeiro byte esta sendo gravado na posição 6, não sei se isso vai ser um problema. Agora vou apenas mandar exibir o valor num display. Muito obrigado pela ajuda e atenção.

Boa tarde 02S,  (se não gosta que te chame pelas iniciais, avise),

que bom que funcionou.

veja se assim saí certo o resultado impresso.

       https://pastebin.com/684fsqZp

RV

Bom dia mineirin RV, desculpe a demora no retorno, fiz as mudanças que você mostrou, o resultado agora está correto, obrigado mais uma vez.


RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço