Ajuda com cálculo a partir de valores obtidos nos sensores de temperatura.

Bom dia! Estou com problema em um código, que se trata de obter os valores de dois sensores lm-35, até aí tudo bem, o problema é que eu tenho que calcular a eficiência térmica, que é obtida pela equação "n=(1-(readTemperatureF/readTemperatureQ))". Imaginei criar uma variável float, mas não obtive sucesso. Se trata de um projeto para monitorar uma máquina térmica, temperaturas na fonte quente e no sumidouro de calor, para calcular a respectiva eficiência térmica. Usarei o LM35 pois as temperaturas não são muito altas no protótipo.  Segue o código:

const int LM35Q = A0; //LM35 Fonte quente
const int LM35F = A1; //LM35 Sumidouro
const int BUFFER_SIZE = 1000; //Quantidade de vezes que vai ler para cria a média
const int REFRESH_RATE = 2000; //Tempo de atualização entre as leituras em ms
const float CELSIUS_BASE = 0.4887585532746823069403714565; //Base de conversão para Graus Celsius ((5/1023) * 100)
void setup() {
Serial.begin(9600);
pinMode(A0, INPUT);
pinMode(A1, INPUT);


}

void loop() {
Serial.print("Temperatura Quente (ºC): ");
Serial.println(readTemperatureQ());
Serial.print("Temperatura Fria (ºC): ");
Serial.println(readTemperatureF());
delay(REFRESH_RATE);
}

float readTemperatureQ(){
float buffer = 0;
for (int i = 0; i < BUFFER_SIZE; i++){
buffer += analogRead(LM35Q);
}
return ((buffer/BUFFER_SIZE) * CELSIUS_BASE);
}

float readTemperatureF(){
float buffer = 0;
for (int i = 0; i < BUFFER_SIZE; i++){
buffer += analogRead(LM35F);
}
return ((buffer/BUFFER_SIZE) * CELSIUS_BASE);
}

Exibições: 192

Responder esta

Respostas a este tópico

Você não obteve sucesso porque deu erro ou porque calculou errado?

O cálculo de tempQ e tempF estão corretos?

Não seria assim?

tempQ = readTemperatureQ(); //essas 3 variáveis devem ser declarados como float no início do sketch

tempF =  readTemperatureF();

efTerm = 1 - (tempF/tempQ);

Serial.print("Temperatura Quente (ºC): ");
Serial.println(tempQ);
Serial.print("Temperatura Fria (ºC): ");
Serial.println(tempF);

Serial.print("Eficiencia termica): ");
Serial.println(efTerm);
delay(REFRESH_RATE);

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço