Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 最大和最小温度传感器_C++_Arduino - Fatal编程技术网

C++ 最大和最小温度传感器

C++ 最大和最小温度传感器,c++,arduino,C++,Arduino,(参考最后一条if语句)我这里有一些代码,它不断地给我T_High始终与T相同。如果我在寻找代码所看到的最高温度,我不确定是否需要添加另一个变量并调整代码,或者我当前的问题是什么。我曾尝试在网上查找有关max和mins的信息,但即使有多个不同的来源,我也无法让它发挥作用。我知道在我的if语句之后,它们是相等的,但是我认为if语句会处理这个问题。这是粒子IDE(非常类似于Arduino)` #包括 恒温器热敏电阻输出=A1; 无效设置(){ Serial.begin(9600); } void循环

(参考最后一条if语句)我这里有一些代码,它不断地给我T_High始终与T相同。如果我在寻找代码所看到的最高温度,我不确定是否需要添加另一个变量并调整代码,或者我当前的问题是什么。我曾尝试在网上查找有关max和mins的信息,但即使有多个不同的来源,我也无法让它发挥作用。我知道在我的if语句之后,它们是相等的,但是我认为if语句会处理这个问题。这是粒子IDE(非常类似于Arduino)`

#包括
恒温器热敏电阻输出=A1;
无效设置(){
Serial.begin(9600);
}
void循环(){
浮动T_Low=999;
浮T_高,;
int x=0;
int热敏电阻;
双a,b,c,d,e,f,g,h,i,j,T;
双输出电压,热敏电阻电阻,热敏电阻,温度摄氏度;
而(x<10)
{
热敏电阻adc val=模拟读数(热敏电阻输出);
输出电压=((热敏电阻adc值*3.3)/4095.0);
热敏电阻电阻=((3.3*(10.0/输出电压))-10);/*以千欧姆为单位的电阻*/
热敏电阻电阻=热敏电阻电阻*1000;/*电阻,单位为欧姆*/
therm_res_ln=对数(热敏电阻电阻);
/*斯坦哈特热敏电阻方程:*/
/*以开尔文表示的温度=1/(A+B[ln(R)]+C[ln(R)]^3)*/
/*其中A=0.001129148,B=0.000234125和C=8.76741*10^-8*/
温度=(1/(0.001129148+(0.000234125*热分辨率)+(0.0000000876741*热分辨率*热分辨率*热分辨率]);/*以开尔文表示的温度*/
温度摄氏度=温度摄氏度-273.15;/*温度摄氏度*/
T=温度摄氏度*1.8+29;/*温度,单位为华氏度*/
延迟(100);
x++;
如果(x==1){a=T;}
如果(x==2){b=T;}
如果(x==3){c=T;}
如果(x==4){d=T;}
如果(x==5){e=T;}
如果(x==6){f=T;}
如果(x==7){g=T;}
如果(x==8){h=T;}
如果(x==9){i=T;}
}
j=a+b+c+d+e+f+g+h+i;
T=j/9;
x=0;
延迟(2000年);
如果(T>T_高){
T_高=T;
}
Particle.publish(“Temp”,字符串(T));
Particle.publish(“高”,字符串(T_高));
}
`

T\u High
循环()中的局部变量。它仅在
loop()
函数退出之前存在。在下一次迭代中,
T_High
变量的一个新实例与前一个变量无关。因此,在调用
loop()
期间,您没有保存
T\u High
的值

将变量移到文件范围内(即函数定义之外),使其具有静态存储持续时间,并在整个程序执行过程中保持有效

此外,在执行测试之前,您从不将
T\u High
初始化为某个值或分配给该值。此时,
T_High
具有不确定值,并且几乎以任何方式使用不确定值都会导致程序具有未定义的行为,这里就是这种情况

如果将变量移动到文件范围,此特定问题将自动解决,因为静态存储持续时间对象始终为零初始化,但仍建议将
T_High
初始化为合理的值,例如:

float T_High = 0;

或者任何适合您的用例的东西。

T\u High
loop()函数中的局部变量。将其设置为全局或
静态
,使其在功能结束后保持不变。另外,它还没有初始化。好的,谢谢你,对于糟糕的编程实践感到抱歉。我这几年来第一次重返it行业,这是我第一次重返it行业。再次感谢。
float T_High = 0;