Boa noite.

Alguém poderia me ajudar... Fiz um controlador de temperatura e o mesmo esta funcionando perfeitamente, mas no meu display aparece 17.00, se colocar em uma variável int o mesmo vai aparecer somente 17. Seria possível mostrar apenas uma casa depois do ponto? Tipo 17.5?

Valeu.

Exibições: 10068

Responder esta

Respostas a este tópico

Coloca um '\0' no lugar do ultimo zero.

Desculpa a ignorancia.. nao entendi.

A classe String possui um construtor que permite converter um float para String especificando o número de casas decimais.

Supondo que a sua temperatura esteja em um variável float de nome temp:

String stemp = String(temp,1); //Vai criar um variável String formatada para 1 casa decimal

lcd.print(stemp);

Qual sensor de temperatura esta usando?

Alguns não tem resolução de 0,5 grau.

18B20

OK , tem resolução suficiente .

A resolução do termômetro é configurável de  9 até 12 bits.

Oi AFM, bom dia.

A sua variável é do tipo "float"?

Se for use assim   lcd.print(suavariavel,1);

aparecerá somente uma casa depois da virgula.

Rui

Realmente, essa forma que o Rui sugeriu é a correta.

Não sei porque ela não está documentada na referência do Arduino para o lcd.
Apenas o manual da Serial cita essa possibilidade para variáveis float.

https://www.arduino.cc/en/Reference/LiquidCrystalPrint

https://www.arduino.cc/en/Serial/Print

Muito obrigado....

Grande Rui IBM... rs

Entao.. nao funcionou... fiz exatamente como voce falou e nao deu..

" lcd.print((sensors.getTempC(Sensor2,1))); "

Não Adriano. Não é assim que o Rui falou.

Ele falou para você fazer assim:

lcd.print(sensors.getTempC(Sensor2),1);

Mas, reforço o que ele disse: O retorno do método getTempC precisa ser float!

poise.. consegui JAC... Muito obrigado pela força... ficou bom agora.

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço