我有四个DS18B20温度传感器连接到我的Raspberry Pi。我使用1wire和上拉电阻。
我直接从1wire设备通过cat
读取值,并将未经计算的折线放入gnuplot数据文件中。
设置已经运行了好几个星期,可以在大约0°C至30°C的范围内的不同位置测量一个冷藏箱。我得到了相当准确的读数和曲线图。
但是所有传感器的值突然开始“波动”,变得不稳定。他们也下降了-全部四个-大约四分之一摄氏度。颤动约为0.1℃至0.2℃。其中两个传感器实际上位于流体中(分别为0.5l和25l),因此几乎不可能突然掉落或飘动。
活动时间恰好与我检查保温箱的时间一致。我可能已经移动或触摸了一些感应部件。但这可以解释温度的变化吗?发生了什么事?我该如何解决?
答案 0 :(得分:0)
似乎是问题的原因可能是分辨率降低。这是存储在传感器本身中的(易失性)设置。可以将其设置为9、10、11或12位。分辨率越高,测量将越精确,但是需要更长的测量时间。
根据DS18B20数据表,默认情况下,上电后分辨率设置为12位。此外,默认情况下,与传感器进行1线通信的驱动程序通常也会在启动期间设置最高的分辨率。这可以解释为什么在使用OP的情况下重新启动可以解决此问题,但不能解释为什么分辨率的更改首先会发生。这可能取决于特定的设置,并且可能必须根据具体情况进行解决。
此外-为了确认测量确实是在较低的分辨率下进行的,可以获取样品的数值并检查测量值变化的最小值。例如,对于12位分辨率,最小增量为0.0625度,而对于9位分辨率,其最小增量只能为0.5度,并且在两者之间什么都没有。