我的DS18B20读得很高。如何获得正确的温度?


10

我正在为我的房屋设计加热控制系统,但是温度传感器的读数比我预期的要高。

我有一个连接到继电器模块,HD47780显示器和Tiny RTC模块的5V Arduino Mini Pro克隆,并连接了DS18B20。

DS18B20由应用于Tiny RTC模块的5v Vcc供电,而不是在DQ线上使用寄生电源(因为我不确定Onewire库是否支持这种工作模式),并且DS18B20数据表称Vcc可能介于3.0v和5.5v。我测量了Mini Pro在5.2v时的稳压功率。

我正在将DS的温度与现有的房间温度调节器(双金属),带有两个传感器的RS台式温度监控器,一个小的“温湿度计”和一个双金属冰箱温度计(在温度的上半部分)进行比较。范围)。DS的读数总是比其他传感器的读数高1-2度左右,而其他传感器的读数在一定范围内。

†不是实际的,而是类似的内容。

在各种论坛上阅读,我听说这些传感器非常准确,但是会受到附近组件局部加热的影响,因此我将传感器移到20厘米电缆上,并将其放置在与其他电子设备相距甚远的位置。这没什么区别。

然后我读到,如果为其提供过高的Vcc电压,DS可能会自行发热,因此我添加了一个1.7v压降的红色LED并测量了DS上的新电压为3.5v,但是在等待温度再次稳定下来,这没有什么区别。

谁能说出DS为何读得很高,我能做些什么来防止这种情况?


您对房间恒温器的读数不仅 1-2度有多自信?您应该得到第三个温度计,并进行比较以确定偏移量的实际来源。由于RS温度计可能对两个传感器都使用相同的读出电子设备,因此作为两个不同的校准参考可能并不真正有用。
康纳·沃尔夫

Answers:


9

现在,我已经在各种传感器节点上放置了很多DS18B20传感器-大概有50个左右。我已经了解了一些有关他们返回的读数的信息。我知道您已经隔离了其中的一些原因,但这不是问题的根源,但最好确认它们是问题所在。

我不知道您使用的是摄氏温度还是华氏温度,因此问题的严重程度尚不清楚。

局部加热

我不认为Arduino是“热”芯片,但是将DS18B20放在带有Arduino和LCD的外壳中会使我看到的读数比预期高2-3°C。

将其移至机柜外即可解决此问题。

高Vcc /频繁转换产生的热量

如果为芯片提供较高的Vcc并执行频繁的转换(即,尽可能频繁地进行转换),则芯片会预热。我已经看到读数增加了1-2°C。

我还没有看到单独使用高Vcc的问题,但是我以寄生模式操作大多数DS18B20,每10s最多转换一次。在不使用时,处于活动模式的设备通常会关闭电源。

OneWire和DallasTemperature确实支持寄生模式。

并非所有温度传感器的创建都相同

在开始使用DS18B20之前,我有许多温度传感器。几乎无一例外,这些都被阅读了。它们大多数是基于热敏电阻的,并且校准效果很差。我以为DS18B20读数超标,但是当我使用好的热电偶和仪表时,我可以验证它们是否正确。

这是关于学会信任DS18B20的知识。

沿导线传导的热量

如果将传感器放在电线上,则电线会传导出惊人的热量。沿管道布线时可能会出现问题。

假DS18B20

这些传感器非常受欢迎,这似乎导致了假货的出现。我有一批不锈钢防水传感器,它们会被过度读取并且计时已到。他们使用OneWire库,但不能使用DS2482 OneWire主机。我听说普通的TO-92装箱的也是假的。


用开发板软件的大智慧,不允许我回答这个问题,因此我将在此处添加评论。正如我在github.com/PaulStoffregen/OneWire/issues/91上发现的困难方法一样,如果使用3.3V芯片,则需要用2.7k电阻替换4.7k电阻,否则某些传感器将返回错误的值。
Marc Merlin

2

就我而言,uC和传感器之间的接线太短,并且正在散发热量。我以为一开始可能不是这样,因为另一个温度传感器正在报告相同距离的准确温度。我将其移至板上的另一个位置,瞧!


1

也许您可能要校准传感器。

浸入沸腾的水中(假设海平面)会读什么?102.5摄氏度?这将为您提供-2.5C的高温校准。

显然,最好在您期望我测量的温度附近进行校准。这意味着信任(或求平均值?)某些测量设备并对其进行校准。


1

在3.3V总线上使用DS18B20,切换到稳定的5.0V总线时,我已经看到了几摄氏度的偏移,并且得到了更合理的值。(在有无寄生电源的情况下进行测试)


有趣的是,谢谢,与某些人所报告的相反。我想知道这是否是另一个伪造的DS18B20问题。
Mark Booth

0

我做了一些实验。如果DS18B20用短于1厘米的电缆连接到Arduino Pro Micro,则读数比环境读数高5度。在距离arduino板长度> 10cm的电缆上,无论电阻安装在何处(arduino附近或DS18B20附近),读数都很好。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.