Arduino + Sensor DS18b20 Como exibir os decimais de temperatura ?

Estou usando Arduino e sensor de temperatura DS18b20, usando as mesmas varíaveis, no terminal vejo as temperaturas com dois dígitos de precisão ex;: 23,45 ºC mas no Scada só consigo ver o valor inteiro (23º) usando ou valores estranhos tais como ,0000000000000000000000000000000000000018367099231598242.

No Datapoint estou usando :

Faixa de registro : Registrador Holding

Tipo de dados modbus : Float de 4 bytes (assim mostra  ,0000000000000000000000000000000000000018367099231598242.

ou Tipo de dados modbus : Inteiro 2 bytes com sinal ( aí mostra 23 sem as casas decimais )

Multiplicador : 1

Aditivo : 0

Como devo configurar para mostrar as casas decimais da temperatura ?

Existe alguma forma de contornar isso ?

Exibições: 579

Responder esta

Respostas a este tópico

Boa tarde.

Você tem o manual desse equipamento que esta tentando de fazer a leitura? Esta usando scadaBR? 

Estou usando Arduino UNO e o sensor DS18b20. E usando o ScadaBR via modbus IP.

Opa.
Em vez de trabalhar com graus, passe a trabalhar como centésimos de graus, ou seja, peque sua leitura de temperatura que é um float e multiplique por e 100 e passe a trata-la como um inteiro ( input register de 16bits com sinal).
Ai o exemplo de valor de 23,45 ºC passa a ser um valor inteiro de 2345. cºC, que seria 2345 centi graus.

Ai no scada BR utilize um ganho de 0.01(/100) que converte de cºC para ºC, depois é só formatar a variável com duas casas decimais.
Não tem muito segredo, boa sorte.

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço