arduino控制数码管读取温度值并闪烁时数码管十位受影响,额定温度48实际温度24最后显示出来的实际温度是44
时间: 2024-03-16 20:41:35 浏览: 49
数码管显示温度
如果在 Arduino 控制数码管读取温度值并闪烁时,数码管十位受影响,额定温度为 48,实际温度为 24,最后显示出来的实际温度是 44,那可能是因为你在计算温度值时没有正确处理额定温度对计算结果的影响。
假设你的额定温度为 48,实际温度为 24,那么如果你直接计算温度值(24 - 48 = -24),就会得到一个负数,这个负数会影响到后面的计算结果,导致数码管十位受影响。
为了解决这个问题,你需要在计算温度值时,先判断当前温度是否小于额定温度,如果是,则将额定温度减去当前温度,否则将当前温度减去额定温度。例如:
```c++
float temperature = readTemperature(); // 读取温度值
int ratedTemperature = 48; // 额定温度值为 48 度
int temperatureDiff = ratedTemperature > temperature ? ratedTemperature - temperature : temperature - ratedTemperature; // 温度差值
int tens = temperatureDiff / 10; // 十位数值
int ones = temperatureDiff % 10; // 个位数值
display(tens, ones); // 在数码管上显示温度值
```
在上面的示例代码中,我们先计算出当前温度值与额定温度值之间的差值,如果当前温度小于额定温度,则将额定温度减去当前温度,否则将当前温度减去额定温度。然后再将差值分别除以 10 和取模 10,得到数码管的十位和个位数值,最后将数码管的数值显示出来。这样就可以避免额定温度对计算结果的影响了。在这个例子中,计算出来的温度差值是 24,显示出来的温度值就是 24。如果显示出来的温度值是 44,可能是因为程序中存在其他错误。
阅读全文