由于摩尔定律,电子设备继续提高他们的智商。随着MIPS和兆字节软件的不断涌现,设计人员可以获得前所未有的处理能力。但在添加引人注目的新产品功能时,这只是答案的一部分。处理数据的能力很好,但前提是我们可以捕获有趣的数据以便首先处理。例如,现在触摸感应风靡一时。那么设计师为再来做些什么呢?一个明显的点缀是让设备能够感知接近度。进入Vishay VCNL4000红外(红外)接近传感器(见图1)。
图1:VNL4000模块。
使用红外线感知接近度的想法不是新的,这个概念很容易理解。只需使用红外LED照亮感兴趣的区域,然后使用红外光电二极管测量反射光量。反射越高,物体越接近(和/或越大,和/或反射越多)。
更进一步,VCNL4000还集成了可见波长光电二极管,用于环境光感测(见图1)。红外接近检测和可见光感应的结合使该模块成为手持设备的理想选择。例如,在手机中,可见光检测器可用于自动调节显示器的背光水平。同时,红外接近功能可用于检测手机是否被保持在用户的耳朵上,此时显示器可以完全关闭以节省电量。
图2:VCNL4000框图。
滚动自己?
当然可以。所需要的只是一个MCU,一个红外LED,一个红外光电二极管,一个可见光光电二极管和一些软件,对吧?这听起来很容易,但像往常一样,魔鬼在细节中。事实上,实现真正准确和强大的实现所需的修饰是非常重要的,并且可以很容易地看到简单的死亡解决方案。
一个简单的方法是看看VCNL4000的功能和考虑一下背面的卫生巾设计要匹配它们。例如,你需要几个A/D通道来测量光电二极管输出,对吗?没什么大不了的,因为即使是蓝的蓝领MCU现在也配备了ADC。的问题是典型MCU上的ADC与Vishay器件的16位分辨率不匹配。哦,我想你需要添加一个高分辨率的ADC芯片。不要忘记一些运算放大器,以充分利用光电二极管。当你在它的时候,投入一个晶体管来驱动IR LED达到200 mA,远远超出MCU GPIO引脚的驱动能力。
但这只是一个开始。 VCNL4000的一个关键特性是它可以高频率调制IR LED,可达3.125 MHz,带通滤波原始IR返回。专注于反射有助于消除环境和干扰红外光源(如荧光灯镇流器)的影响。现在你的自己设计需要一些真正的帮助,可能是PLD和滤波器芯片?或者踩到价格更高的MCU/DSP。
虽然红外接近功能成为头条新闻,但VCNL4000可见光传感器并不懈怠。值得注意的是,它包括自动平均多128个光读数的能力。这有助于分别滤除外部和内部干扰 - 例如60/120 Hz干扰和转换器噪声基底干扰 - 从而在夜间和白天提供0.2至13,000 lux的更灵敏和准确的测量。
电源跳闸
在你自己的思考中,似乎迷你MCU不仅可以轻松处理这项工作,而且还有足够的时间来回击并在读数之间小睡一下。到目前为止,你可以看到你需要更强大的硅片,并且它将会非常忙于所有高频的事情,例如调制,滤波,平均和位冲击。例如,匹配VCNL4000环境光平均功能需要多达128个A/D转换,或者对于数字光传感器,如I²C,需要数千个时钟边沿。更不用说所有相关的CPU周期。这意味着功耗正在上升,因此需要对更大的电池进行一些备用更换。
您可能会认为,当谈到以高达200 mA的电流驱动LED时,任何解决方案都将成为一种耗电量。但事实上,由于LED照明的占空比稀疏和优化的信号处理,VCNL4000的功耗非常低。
假设您希望每秒使用100 mA LED驱动电流获取10次接近读数。如图2所示,在每100 ms采样时间内,LED仅亮起约70μs。因此,LED和VCNL4000的总平均功耗低于100μA。环境光传感器同样是绿色的。例如,每秒十个样本,每个样本包含平均八个读数,平均功耗再次低于100μA。
图3:接近度测量时序我是和的MCU的忠实粉丝,并且充分尊重聪明的设计师从中获取能力的能力。如果没有实际进行设计,我不能完全排除多部分绑定可能接近匹配VCNL4000功能的可能性。但不要忘记光学方面。采用自己动手设计,您需要采用光学隔离封装方案,避免内部串扰,例如盒内反射。无论分立设计多么聪明,它都将比3.95 mm x 3.95 mm x 0.75 mm的超小而薄的Vishay模块消耗更多的电路板空间。
Vishay可以轻松地将电池放在低位 - 成本评估套件(见图2),包括VCNL4000载板,USB接口和基于Windows的仪表板软件。载板有一个插入USB适配器的10针接头,可插入PC。
仪表板软件(见图3)具有传感器输出的实时条形图,能够点击即可配置各种选项,如LED电流,采样频率,偏移补偿和滤波,以及直接读取和写入VCNL4000寄存器。
图4:VCNL4000评估套件。
图5:VCNL4000评估套件软件屏幕截图。
Light Show
分裂VCNL4000载板的Vishay方法USB接口非常方便,因为它允许您自己使用载板进行原型设计和实验。
将您喜欢的MCU连接到VCNL4000只需要五个连接:双线I²C接口(SCL,SDA),接地,逻辑电源(VDD)和LED(IR阳极)的单独电源。虽然电源指定为2.5 V至3.6 V,但I²C总线可处理1.7 V至5.5 V,几乎可与任何MCU连接。
请注意,评估套件可通过单个电源为逻辑和LED供电。在您自己的应用中,确保高LED电流脉冲(高达200 mA)不会为其余逻辑产生电源故障。如果这是一个问题,你可以,例如,直接从电池供电LED和你的数字逻辑从稳压电源供电。
我急于连接小工具,但模块的细间距,0.05英寸。连接器让我挠头。我不想直接将电线焊接到模块上,所以我做了正确的事并订购了匹配的插座。由于没有脑外科医生,当我能够将电线固定到插座上时,我为自己感到非常自豪。但掌声并没有持续多久。当我试图插入Vishay模块时,插座上的引脚就会掉出来。终,我几乎无法获得四个引脚 - SDA,SCL,GND以及LED和逻辑电源的组合 - 连接到VCNL4000模块,造成一些麻烦的抨击(见图4)。 Vishay的人们可能会考虑在适配器或分线板上投掷更多的连接空间。
一旦我得到了剪辑导致留下来,很容易将连接带到Parallax Inc. SBC(单个) - 基于该公司新颖的Propeller多核MCU的计算机)。这是一个对实验和原型设计特别有用的设置,因为编辑 - 编译 - 周期只需几秒钟,而且公司拥有一个庞大且不断增长的用户贡献软件对象库。例如,我只是从Parallax网站了一个“Basic_I²C_Driver”,而不是必须编写I²C驱动程序。
图6:连接到Parallax SBC的VCNL4000。
由于模块内置的平均和偏移补偿,使环境光读数非常简单。首先,使用所选选项配置零件,包括要平均的样品数量和时间以及是否执行自动偏移补偿。之后,发出命令,然后在忙碌位上旋转,或插入软件延迟,直到操作在1到100毫秒后完成,这取决于平均样本的数量和时间,这是一个简单的问题。现在,您可以读取结果,其中每个计数或LSB(有效字节)对应于0.2 lux(要获得lux读数,将偏移补偿的16位结果除以5)。请记住,根据光源的性质,例如白炽灯,荧光灯或阳光,人眼对给定勒克斯水平感知的照明水平会有所不同。
红外接近功能需要更多工作,因为MCU软件必须执行平均和偏移补偿。让我们来看看照片5中显示的程序。
初始化模块后,通过取16个接近读数的平均值来建立基线偏移。显然,这个校准阶段取决于没有任何接近以建立准确的基线。
图7:红外接近感应程序截图。
随后,程序通过取8个读数的平均值,减去基线偏移量,并将结果与应用程序特定阈值进行比较来执行接近度检查。通常,您可以通过增加平均采样数以减少噪声来降低接近检测的阈值,即增加范围。,在SBC的8个LED上显示条形图显示的结果或距离。
在考虑应用的具体情况时,请记住灵敏度,阈值和校准策略是相互交织的。例如,在具有大摆动的粗糙的“是/否”接近应用中,高阈值是可以的,工厂或手动校准可能就足够了。但对于灵敏度的低阈值应用,可能需要更频繁的校准,理想情况是在每次读取之前。
例如,通过我的演示设置,我注意到看起来有点温度漂移,偏移从上电缓慢增加。 VCNL4000数据表在这方面并不明确,但有一个图表表明温度漂移在整个-40到+ 85°C范围内变化,具体取决于配置的LED电流。虽然只有大约百分之一的数量级,但在灵敏度的应用中需要定期重新校准就足够了。
软件装饰可能包括通过根据历史记录调整基线偏移来动态校准基线偏移。所用算法的确切性质取决于应用程序的具体情况,例如采样率与接近变化率之间的关系。请注意确认您的算法是健壮的,并避免诸如“基线蠕变”和“卡住键”之类的错误。由于单个IR接近读取仅需要170微秒,比读取忙位所需的I²C事务更快,我刚刚在软件中包含了命令完成的延迟。的“问题”是初始化后的次读取需要额外的400微秒延迟。我没有放慢每阅读的速度,而是通过在程序开始时执行虚拟接近读取来处理这种特殊情况。
底线是VCNL4000的工作方式与宣传的一样。例如,我的演示设置可以从近8英寸或200毫米的距离可靠地检测到我的手的存在。在范围内,设备的高分辨率,辅以软件信号处理(如噪声滤波,校准和线性化),可实现非常的距离测量。与此同时,16位动态范围有足够的空间来处理真实的变幻莫测,例如划伤或肮脏的窗口。
免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。