花世界,五彩缤纷,上天赐予人类一双慧眼,得以领略这世间美丽。而对于传感器世界,分辨色彩就要靠颜色传感器了,ROHM的BH1749NUC就是其中的一员。
BH1749NUC是一款I2C接口的数字颜色传感器(I2C或许是很多传感器的优选接口,这次试用的ROHM三款传感器全部使用了I2C接口),感知红、绿、蓝三原色光还有红外光并将其转换为数字量。灵敏度高,动态范围宽,16bit输出,光照度检测范围可达80k lx,内部电路可抑制50/60Hz光噪声,内建Ircut Filter(网上查询得知,中文名为红外滤光片切换器, 或红外截止滤光片,白天传感器可以接收到人眼无法识别的红外线,会导致图像与肉眼所见有偏差,因而要用红外截止滤光片还原色彩)。这些特性使得BH1749NUC可以获得环境光的准确照度和色温。是调节电视、手机、平板电脑液晶背光的理想选择。图1为传感器内部构造,由前置红外滤光片和色彩滤波器的光电二极管阵列、模拟数字转换器及带I2C接口的数字处理核心组成。
图1(注:PD为光电二极管/OSC为内部时钟发生器/POR为上电复位)
在BH1749NUC的资料中,还有一幅图比较醒目(图2)
图2
这幅图标题为“比率对比波长”,从图中可以观察到蓝、绿、红和红外根据波长从短到长依次排列,红色光和蓝色光数值比率接近,而绿色光峰值显著高于红蓝,说明传感器对绿色灵敏度更高。
下面就是实战体验了,还是请出ARDUINO利器,加上ROHM传感器扩展板和BH1749NUC传感器评估板。在给ARDUINO插上USB线之前,第一步要检测传感器扩展板上的电压配置跳线位置是否正确(在之前ROHM温度传感器的试用贴中遗漏了这一重要步骤,在此向网友致歉)。依照规格书所述工作电压在2.3V-3.6V,将跳线短接在3V电源位置(图3)
图3
下一步就是安装BH1749NUC的库文件,在体验活动页面链接下载“BH1749NUC.zip”库文件,在“工具”菜单下加载库,完成加载后,在“项目”下可以找到名称为“BH1749NUC”的库(图4);
图4
打开库包含的示例,操作如图5;
图5
下一步,按图6箭头所指点击图标上传示例,完成上传后在页面下方出现项目存储空间和变量的使用信息。
图6
点击串口监视器,出现了BH1749NUC传感器采集到的颜色数值。(图7)此时光照条件为室内屋顶15W LED日光灯管照明。
图7
作为对比,分别将9W荧光灯管和手机摄像闪光灯近距离对准传感器,得到如下数值(图8-图9)
图8
图9
从数值的变化可以看出,红绿蓝色和红外以及绿色2(从资料里没有找到为什么会有两个绿色数值)的检测值和光照度存在明显的同步变化。数值的分布趋势也大体符合上面关于“比率对比波长“的分析。
至于颜色是如何识别的,查阅信息分析总结如下:颜色检测并不能由传感器输出数值直接得出结果,而是需要先通过“白平衡”来定标白光,将传感器 “学习”到“白色“中三原色的数值作为参考值,进而在颜色检测中利用实际输出值与参考值的比值得到RGB值。光学知识实在浅薄,网友有兴趣可深入了解,不当之处,还望指正。 |