Ambient Light Sensor / 环境光传感器: BH1750FVI
简介: 环境光传感器
- 厂商: ROHM
- 立创商城采购链接
- 测量精度: 0.96 ~ 1.2 ~ 1.44
- 分辨率: 1 - 65535 lx
- 工作电压: 2.4 - 3.6V,Typ. = 3.0V
- 工作温度: -40℃ ~ +85℃
功能框图:
其中,Logic + I2C Interface 包含两类寄存器:
- 数据寄存器: 测量的环境光数据(即,内部 ADC 转换出的数据,为 16bit),初始值为 “0000 0000 0000 0000”
- 测量时间寄存器: 测量时间,初始值为 “0100 0101”
OSC 为内部电路提供时钟,典型值为 320KHz
管脚定义:
管脚编号 | 管脚名称 | 描述 |
---|---|---|
1 | VCC | 电源脚 |
2 | ADDR | ADDR = H(>= 0.7xVCC),slave 地址为 “1011 100”; ADDR = L(=< 0.3xVCC),slave 地址为 “0100 011”。电路结构为 3 state buffer |
3 | GND | 地 |
4 | SDA | I2C 串行数据接口 |
5 | DVI | I2C 总线的参考电平;内部寄存器异步复位:DVI <= 0.4V, at least 1us。BH1750FVI is pulled down by 150K while DVI=L |
6 | SCL | I2C 串行时钟接口 |
上电及复位操作:
- 异步复位: DVI 需要在 VCC 供电后维持超过 1us 的低电平,以保证内部逻辑正确进入 Power Down Mode
- 复位命令: 即 “0000 0111”,用来清除先前采集的数据。该命令在 Power Down Mode 下无效。
应用电路设计:
设计中,需要保证 DVI 与 VCC 之间的时序关系,一般有两种方案可以实现:
1)MCU 控制 DVI 信号:
2)VCC 与 DVI 之间嵌入 RC 电路实现:
推荐 R = 1K,C = 1uF。
软件 workflow:
指令名称 | 指令代码 | 指令描述 |
---|---|---|
Power Down | 0000 0000 | 掉电模式 |
Power On | 0000 0001 | 上电:等待测量命令 |
Reset | 0000 0111 | 复位数据寄存器。掉电模式下,Reset 命令无效 |
Continuously H-Resolution Mode(推荐) | 0001 0000 | 以 1lx 分辨率开始测量;测量时间约 120ms |
Continuously H-Resolution Mode 2 | 0001 0001 | 以 0.5lx 分辨率开始测量;测量时间约 120ms |
Continuously L-Resolution Mode | 0001 0011 | 以 4lx 分辨率开始测量;测量时间约 16ms |
One Time H-Resolution Mode(推荐) | 0010 0000 | 以 1lx 分辨率开始测量;测量时间约 120ms;测量结束后自动进入 Power Down Mode |
One Time H-Resolution Mode 2 | 0010 0001 | 以 0.5lx 分辨率开始测量;测量时间约 120ms;测量结束后自动进入 Power Down Mode |
One Time L-Resolution Mode | 0010 0011 | 以 4lx 分辨率开始测量;测量时间约 16ms;测量结束后自动进入 Power Down Mode |
Change Measurement time(High bit) | 01000 MT[7,6,5] | 调整测量时间,见如下描述 |
Change Measurement time(Low bit) | 011 MT[4,3,2,1,0] | 调整测量时间,见如下描述 |
调整测量时间::
即,调整传感器灵敏度,用于抵消光学窗口(optical window)带来的影响。
具体通过调整测量时间来实现。MTreg 的调整范围为: “0001 1111/31” ~ “1111 1110/254”,默认值 “0100 0101/69”
比如,光学窗口的透过率为 50%,测量结果则变为之前的一半。通过调整测量时间为 2 倍,可将测量结果弥补到光学窗口透过率为 100% 的值。举个例子,将默认测量值 “0100 0101” 调整为 2 倍 “1000 1010”:
240ms 后,测量数据将被存入 Data Register。
“指令写入及测量值”示例
假定,ADDR = L,slave 地址为 “0100 011”
例如读取到的 High Byte 为 “1000 0011” 和 Low Byte 为 “1001 0000”,则:
(215 + 29 + 28 + 27 + 24 )/ 1.2 = 28067(lx)
设计时需要注意的其他事项:
- 器件背部的 exposed central pad 不做电气属性连接,更不要焊接;
- 避免在强磁场中使用,否则可能出现故障;
来源:CSDN
作者:iStoneWalker
链接:https://blog.csdn.net/syjie19900426/article/details/104478678