Boa tarde, tenho um problema... Meu sensor me informa uma variavel de valor inteiro x, preciso transformar esse valor em metros cubicos. Por exemplo:

Tenho 1500 kg de um material, isso representa 1m^3 . No arduino mostrara 1.0 certo?

Tenho 750kg do mesmo material, mostrará 0.5 no arduino, até ai está perfeito! Porém, quando esse valor ultrapassa, no arduino, 3,42 ele retorna a -3,42 e conta a partir daí! Preciso de uma forma que contorne esse limite de float..

Ex.: 

int peso2;


float mediaFinal; 


float peso3;


peso2 = peso; //Peso é a váriavel inteira que armazena o peso.


peso3 = (float) peso2; //transformo peso 2 em float, virando peso 3.


mediaFinal = (peso3/1500); 

Como contornar isso?

Exibições: 166

Responder esta

Respostas a este tópico

Boa tarde GR,

Não conheço seu sketch completo, mas o teste que fiz aqui, não deu problema não.

Veja o resultado 

peso: 5230
media: 3.49

peso: 5230
media: 3.49

peso: 5230
media: 3.49

peso: 5230
media: 3.49

peso: 5230
media: 3.49

Se for colocar seu sketch aqui faça assim:

Clique em : " Deseja carregar arquivos? " e depois em " Escolher arquivo" e anexe o arquivo
com o seu sketch.

RV

Boa noite, 

Esta difícil de entender. 

Mas creio que esteja usando um módulo de balança . Qual?

O problema pode estar no uso incorreto desse módulo. 

O float não tem esse limite...

Na linha: (peso3/1500) o ideal seria usar (peso3/1500.0) isso força o float.

Mas ta tudo certo.

Uma possibilidade é a rotina que escreve não estar float ou algo assim.

Ref:

https://www.arduino.cc/reference/pt/language/variables/data-types/f...

Boa tarde EHM, eu forcei o float e deu certo!  Porém, quando ele chega a 11.0 ele volta a -11.0, ou seja, o problema persiste porém a grandeza foi aumentada! Alguma ideia do que pode ser?

Obs.: Obrigado pela atenção! 

Boa tarde Gabriel, 

Se quer ajuda, envie o sketch e detalhes da sua montagem, como circuitos usados, diagrama da montagem, etc. 

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço