一、BH1750简介
BH1750是一款数字型光照强度传感器,能够获取周围环境的光照强度。其测量范围在0~65535 lx。lx勒克斯,是光照强度的单位。BH1750可用于调节手机屏幕和键盘的背光功率,或者用于智能灯光控制,比如,随着外界光照强度的变化调节灯光亮度。
BH1750
BH1750有以下特点
• I2C总线接口
• 接近视觉灵敏度的光谱灵敏度特性
• 输出对应亮度的数字值
• 高分辨率(0~65535 lx)
• 通过降低功率功能,实现低电流化
• 50Hz / 60Hz光噪声抑制功能
• 可以选择两种类型的I2C从属地址
• 最小误差变动在±20%
• 受红外线影响很小
二、BH1750原理图
BH1750原理图
• PD —— 接近人眼反应的光敏二极管
• AMP —— 集成运算放大器(将 PD 电流转换为 PD 电压)
• ADC —— 模数转换获取 16 位数字数据
• Logic + IC Interface(逻辑+ IC 界面)
• OSC —— 内部振荡器(该时钟为内部逻辑时钟,时钟频率典型值:320kHz)
PD二极管通过光伏效应将输入光信号转换成电信号,经运放电路放大后,电压经ADC采集,再经逻辑电路转换成16位二进制数,存储在内部的寄存器中(进入光窗的光越强,光电流越大,电压就越大,所以光强可以通过电压的大小判断,但是应该注意的是,虽然电压和光强一一对应,但它们不是成正比关系,所以该芯片内部是对数据进行了线性处理,这就是为什么直接使用集成IC而不是光电二极管的原因)。BH1750引出了时钟线和数据线,单片机可以通过I2C协议与BH1750进行通讯,可选择BH1750的工作模式,提取BH1750寄存器中的照度数据。
三、BH1750数据手册
3.1 指令集
BH1750的数据手册中给出了一些指令
BH1750指令集
其中的H分辨率模式和L分辨率模式等,是BH1750的测量模式,数据手册中也给出了说明
BH1750测量模式
我们通常使用H分辨率模式,H 分辨率模式下足够长的测量时间(积分时间)能够抑制一些噪声(包括 50Hz/60Hz)。同时,H 分辨率模式的分辨率在 1lx 下,适用于黑暗场合下(少于 10 lx)。
3.2 IIC通信读/写
上面介绍,BH1750有两种从属地址,由 ADDR 端口的电平决定。
• ADDR=“H”( ADDR ≧ 0.7VCC ) →“1011100”
• ADDR=“L”( ADDR ≦ 0.3VCC ) →“0100011”
关于IIC通信的详细内容,这里就不再介绍了,可以去本系列的OLED篇查看。BH1750数据手册中给出了一种配置连续高分辨率模式的方法
配置连续高分辨率模式方法步骤
BH1750数据读取格式如下
BH1750数据读取格式
光照强度(单位lx)=(High Byte + Low Byte)/ 1.2 * 测量精度
|