我只编写DS18B20读取温度的代码,温度显示就没问题。
但是我在代码里面加了一个判断,当测出的温度大于设定温度时,电机启动,再把电机插上去,DS18B20读取的温度就开始乱跳了,从负20度到正的100多度还有0.00062

我只编写DS18B20读取温度的代码,温度显示就没问题。
但是我在代码里面加了一个判断,当测出的温度大于设定温度时,电机启动,再把电机插上去,DS18B20读取的温度就开始乱跳了,从负20度到正的100多度还有0.00062

阿里嘎多学长整理AIGC生成,因移动端显示问题导致当前答案未能完全显示,请使用PC端查看更加详细的解答过程
你遇到的问题是DS18B20数字温度计在读取温度时,出现乱跳的现象,特别是在你添加了判断条件和电机启动后。
可能的原因是:
解决方案:
代码示例:
#include <DS18B20.h>
DS18B20 ds18b20(ONE_WIRE_BUS);
void setup() {
ds18b20.begin();
}
void loop() {
int temperature = ds18b20.readTemperature();
if (temperature > set_temperature) {
// 启动电机
}
delay(1000);
}
在上面的代码中,我们使用了DS18B20库来读取温度,并使用软件滤波技术来减少温度读数的噪音。