第1步:关于传感器
好,传感器是MCP9700。我能够以0.2欧元的价格获得它们。输出信号是一个模拟张力,范围为0..5V,这意味着您可以使用微控制器的ADC引脚简单地获取温度。它不需要任何其他部分!温度范围为-40至150°C。对于我的项目来说已经足够好了!!
传感器有不同的包装,我选择了TO-92型号。
传感器数据表在这里。步骤2:Arduino代码,接线和首次测试
左针脚:Vdd-》到Arduino 5v
中间针脚:Vout-》到arduino A0针脚
右引脚:GND-》到arduino GND
代码已附加。这是一个简单的模拟读数。为了使测量更准确,我使用一个简单的循环获取5个温度值并计算平均温度。
在数据表的第11页上,给出了传感器传递函数公式: Vout = Tc * Ta + V0c
其中:
Vout:输出张力(从arduino读取)
Tc:温度系数
Ta:环境温度(我们正在寻找该值)
V0c:0°C时的传感器输出电压
最后一个值可以在数据表第3页的“直流电特性”表中获得。对于我的传感器(MCP9700),该值为500 mV。
这意味着,对于我的Arduino,环境温度公式为:
温度=(( TensionAnalog/204.8)-0.5)/0.01;
TensionAnalog 是从模拟引脚获取的原始值。 arduino ADC的范围是10位,因此5伏特的读取值范围是1024(2 ^ 10),0伏特的读取值范围是0。因此,要获得以伏特为单位的值,您需要将模拟值除以1024/5 = 204.8
0.5是以伏特(500 mV)为单位的 V0C 值
0.01是温度系数 Tc (10 mV/°C)
我在窗口上设置了传感器和气象站传感器,为了比较温度。
几分钟后,我的工作站说环境温度为26.4。同时,传感器显示温度为24.8°C。我们处于Microchip给出的公差范围内,但还不够准确。
让我们对此进行更改!
第3步:校准
确定,因为我们认为温度输出是线性函数,并且温度系数正确,所以我们需要修改 VoC 的偏移量。/p》
与传感器值有关的“精确”温度传感器(我的气象站参考)平均而言(通过Excel计算平均值)高1.98°C。
实际的 V0C 偏移为500mV,因此这意味着新的偏移应为500-1.98,即480.2。
我现在的新温度公式为:
TemperatureMoyenne = TemperatureMoyenne +((((TensionAnalog/204.8)- 0.4802 )/0.01);
相同的安装,现在的新结果更好。
第4步:结论
我们已经看到了如何比较廉价传感器获取的温度以使其更加准确。当然,我的校准技术不是很好,因为我想输出信号是完全线性的,我没有考虑自热的影响,传感器是黑色的,我的气象站传感器是白色的,所以,不是很好。
Microchip在数据表的第11页上说,可以通过在25°C下校准传感器来提高精度(刚刚完成)。
但是请记住,该芯片的价格为0.2欧元,我真的不需要令人难以置信的精度。此处描述的方法只是获取更好值的一种方法,而并非完全准确的值。如果是精确的话,只需要一个热电偶或更精确的(和昂贵的)传感器即可!
最后一句话:校准后几个小时,我们猛烈地打雷(我的气象站是对的^^)。温度下降到18°C,传感器的值还可以。。..!
-
温度传感器
+关注
关注
48文章
2940浏览量
156018
发布评论请先 登录
相关推荐
评论