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