(Ссылаясь на последнее выражение if) У меня есть некоторый код, который постоянно дает мне значение T_High, всегда равное T. Если я ищу самую высокую температуру, которую видел код, я не уверен, что мне нужно добавить другую переменную и скорректировать мой код или какова моя текущая проблема. Я пытался найти это онлайн о максимальных и минимальных значениях, но даже с несколькими различными источниками я не смог заставить его работать. Я понимаю, что после моего заявления if я сравниваю их друг с другом, но я думал, что заявление if позаботится об этом. Это в частице IDE (очень похоже на Arduino) .`
#include <math.h>
const int thermistor_output = A1;
void setup() {
Serial.begin(9600);
}
void loop() {
float T_Low = 999;
float T_High;
int x=0;
int thermistor_adc_val;
double a,b,c,d,e,f,g,h,i,j,T;
double output_voltage, thermistor_resistance, therm_res_ln, temperature_celsius;
while (x < 10 )
{
thermistor_adc_val = analogRead(thermistor_output);
output_voltage = ( (thermistor_adc_val * 3.3) / 4095.0 );
thermistor_resistance = ( ( 3.3 * ( 10.0 / output_voltage ) ) - 10 ); /* Resistance in kilo ohms */
thermistor_resistance = thermistor_resistance * 1000 ; /* Resistance in ohms */
therm_res_ln = log(thermistor_resistance);
/* Steinhart-Hart Thermistor Equation: */
/* Temperature in Kelvin = 1 / (A + B[ln(R)] + C[ln(R)]^3) */
/* where A = 0.001129148, B = 0.000234125 and C = 8.76741*10^-8 */
temperature_celsius = ( 1 / ( 0.001129148 + ( 0.000234125 * therm_res_ln ) + ( 0.0000000876741 * therm_res_ln * therm_res_ln * therm_res_ln ) ) ); /* Temperature in Kelvin */
temperature_celsius = temperature_celsius - 273.15; /* Temperature in degree Celsius */
T = temperature_celsius * 1.8 + 29; /* Temperature in degree Fahrenheit */
delay(100);
x ++ ;
if (x==1){a=T;}
if (x==2){b=T;}
if (x==3){c=T;}
if (x==4){d=T;}
if (x==5){e=T;}
if (x==6){f=T;}
if (x==7){g=T;}
if (x==8){h=T;}
if (x==9){i=T;}
}
j=a+b+c+d+e+f+g+h+i;
T=j/9;
x=0;
delay(2000);
if (T > T_High) {
T_High = T;
}
Particle.publish ("Temp", String(T));
Particle.publish ("High", String(T_High));
}
`