热度 15
2014-8-7 20:53
3271 次阅读|
2 个评论
之前用过MAXIM的光传感器。那个芯片的的对流明度的感光能力很强,但是就是有个缺点。太不同意焊接了。才6个脚。底下那个裸露的焊盘还要求接地,当时搞了好久才把那芯片给弄上去。叫做MAX44009。 MAX44009环境光传感器 ,可理想用于 智能手机、笔记本电脑、工业传感器等便携产品。器件工作 电流小于1μA,是业内功耗最低的环境光传感器,具有22 位超宽动态范围(0.045流明至188,000流明)。 由于能够检测极其微弱的光线,可理想工作在深色玻璃环 境下。 片上光电二极管的光谱响应针对人眼对环境光的响应进行优 化,集成红外及紫外线屏蔽。自适应增益电路可自动选择正 确的流明范围优化测试(计数值/流明)。 44009的结构框图如下。 对光灵敏度有高要求的可以考虑试试MAX44009。对于美信,用它的IC还算比较多。这个也算推荐吧。但是今天他不是重点。重点是介绍德州仪器的唯一一款模拟的光传感器OPT101。为了做一个智能家居的方案。为了能感知环境温度以及对家居内部的灯光效应做出反应,选型方案的时候找过好多关于光的传感器。最后考虑了下用德州仪器这个光传感器来做。 单电源供电+2.7 to +36V。带宽14kHz at RF= 1MΩ。 结构式这样的。 对波长的反应曲线图如下。 但是接的时候是根据经典的接法连接的,另外也可利用内部的光二极管自己设定相关的电路。测量时候。跟光的强弱以及倾斜的角度都有关系,以及远近的距离。说白了其实就是内部接收的光转换为电流的大小的能力决定了输出。 输出端直接用万用表测量可以看到明显的变化。后期用的MAX187这个12位自带4096基准的AD芯片。这个也比较好用。一般单通道的AD自己基本就是用的这个。SPI通信。最关键的就是自带的那个2的12次方4096的基准。 MAX187 用采样 / 保持电路和逐位比较寄存器将输入的模拟信号转换为 12 位的数字信号,其采样 / 保持电路不需要外接电容。 MAX187 有 2 种操作模式:正常模式和休眠模式,将置为低电平进入休眠模式,这时的电流消耗降到 10μA 以下。置为高电平或悬空进入正常操作模式。 完整的操作时序如图 所示。使用内参考时,在电源开启后,经过 20 ms 后参考引脚的 4 . 7μF 电容充电完成,可进行正常的转换操作。 A/D 转换的工作过程是:当为低电平时,在下降沿 MAX187 的 T/H 电路进入保持状态,并开始转换, 8 . 5μs 后 DOUT 输出为高电平作为转换完成标志。这时可在 SCLK 端输入一串脉冲将结果从 DOUT 端移出,读入单片机中处理。数据读取完成后将置为高电平。要注意的是:在置为低电平启动 A/D 转换后,检测到 DOUT 有效(或者延时 8.5μs 以上),才能发 SCLK 移位脉冲读数据, SCLK 至少为 13 个。发完脉冲后应将置为高电平。 结果还比较理想。这款也对光的感知能力比较强。后期又用它来感测光源也能得到输出的变化不同。 简易拍照实物如下图。 程序如下,用的MSP430单片机。 #include"msp430x14x.h" #define MAX187_SK_H P2OUT|=BIT0 #define MAX187_SK_L P2OUT=~BIT0 #define MAX187_CS_H P2OUT|=BIT1 #define MAX187_CS_L P2OUT=~BIT1 #define MAX187_DO P2INBIT2 #define MAX187_CMDOut P2DIR=0xc3 //延迟I*8 US void delays(uint i) { uint j; for(j=i;j0;j--) _NOP(); } unsigned int MAX187read(void) { MAX187_CMDOut; uchar i; int s; //16位变量 MAX187_CS_L; //低电平有效,开始转换 delays(2); //延时8.5μ等待转换结束 MAX187_SK_H; MAX187_SK_L; s=0; //全位变量清零 for(i=12;i0;i--) { MAX187_SK_H; if(MAX187_DO) s++; MAX187_SK_L; delays(1); if(i1) s=1; } delays(1); MAX187_CS_H; return s; }