春回大地,终于要告别数九寒冬了,我们就把目光对准知冷知热的‘它’——温度传感器上面。 人类对外部世界的感知中,温度绝对是非常重要的物理量。人们的衣食住行,工业的安全运转,社会的稳定运行,方方面面都和温度有密切的联系。温度传感器种类繁多,几乎每个 电子工程师都和‘它’打过交道。这次的ROHM传感器评估套件中就包含了一款温度传感器—— BH1900NUX。 BH1900NUX是款数字温度传感器,它的准确度为±3°C,2.0mm x 3.0mm的小型面积,2.7v-3.6v的工作电压,低至1uA的关断电流(工作电流75uA典型值),加上便捷的IIC接口使得它很适合在消费 电子领域应用(图1)。
图1 下面我们就打开ARDUINO的世界,探索发现BH1900NUX的秘密。 首先,我们下载并安装好ARDUINO。打开IDE,插上UNO R3,在“工具”菜单下将会发现正确的 开发板型号和COM口(图2);
图2 然后根据此次活动页面链接下载“BH1900NUX.zip”库文件,在“工具”菜单下加载库(图3-图4);
图3
图4 完成加载后,在“项目”下可以找到名称为“BH1900NUX”的库(图5);
图5 打开库包含的示例,操作如图6;
图6 下一步,按图7绿色上箭头所指图标上传示例,约数十秒后完成上次,并在绿色下箭头所指处出现项目存储空间和变量的使用信息。
图7 现在,让我们来看下采集到的BH1900NUX温度数据吧,这些数据是通过串口监视器窗口列印展示(图8)。
图8 注意到温度数值小数点后有四位,这是因为传感器的分辨率为0.0625°C/LSB,输出12bit数据,因此,测量温度值[°C] = Temperature Data[11:0] x 0.0625。从规格书中,还能发现BH1900NUX的一些特点,比如寄存器配置OS标志位可以使器件在关断模式下单次采集后自动重复进入关断模式,可以最大程度降低功耗;再如通过设置ALERT标志位及阈值寄存器,可以实现告警,而且ALERT输出信号的极性可编程;另外3个外部地址引脚的不同配置可使同一总线上布署8个传感器。由此可见,BH1900NUX是一款功能丰富使用灵活的温度传感器。 接下来,我决定将BH1900NUX和另一款常见的单总线温度传感器DS18B20同时测量温度(图9),看一下是什么情形。
图9(橙色框内为BH1900NUX,白色框内为DS18B20) 首先需要加入支持单总线温度传感器的库“DallasTemperature”,可在IDE的“工具”菜单下的“管理库”中查找,提示同时安装关联库“OneWire”(图10);
图10 安装成功后可查看“项目”下的“加载库”,已经添加了两个库文件(图11);
图11 将示例中的程序稍作添加修改,编译上传,打开串口监视器(图12);
图12 可以看到BH1900NUX和DS18B20实测温度数值十分接近,差值约0.5°C。
|