|
在本篇文章中,我们将使用BH1750环境光传感器和Arduino开发板制作一个光照强度计(Light Meter),并在1602 LCD显示屏上显示强度值。使用这个传感器,我们可以计算以勒克斯(Lux)为单位的光量。该传感器应用范围广泛,最适合获取环境光数据,可以用于调整手机的LCD屏幕和Keypad背光亮度。
在之前的帖子中,我们使用TEMT6000环境光传感器制作了光照强度计并测量了光强度。但是TEMT6000是一个模拟传感器,因此电压参数的轻微波动会显着影响强度值。因此使用BH1750和Arduino是光传感器应用项目的更好传感器。
所需的组件
● Arduino UNO开发板 ● 1602 LCD显示屏 ● BH1750环境光传感器模块 ● 10K电位器 ● 连接跳线 ● 面包板
BH1750环境光传感器
这款BH1750光强度传感器模块采用I2C总线接口。该IC最适合获取手机中的环境光数据,以根据环境光来控制屏幕亮度。该传感器可以准确测量高达65535的光的LUX值。它消耗非常低的电流并使用光电二极管来感应光。
BH1750可以轻松实现与Arduino或任何其他微控制器的连接。BH1750上的光电二极管检测光强度,然后使用集成运算放大器将其转换为电压输出。
内置ADC最终输出16位数字数据。BH1750的内部逻辑避免了任何复杂计算的需要,因为它直接输出以勒克斯 (Lx) 为单位的数字数据。
BH1750模块电路结构 BH1750使用2.4V至3.6V的电源电压工作。BH1750FVI是传感器的主要模块,需要3.3V才能工作。因此,电路中使用了稳压器。SDA和SCL是用于I2C通信的引脚。这些引脚使用4.7kΩ的上拉电阻。
器件的地址取决于地址(ADR)引脚的逻辑状态。地址引脚上有一个板载下拉电阻,因此在没有连接的情况下,它默认为低地址(0x23)。 PCB 跳线 (J1) 可轻松配置地址引脚;如果J1闭合,地址引脚将被拉高,地址为0x5C。模块的地址也可以通过ADD引脚上的输入信号来控制。DVI引脚上有一个RC延迟,延迟到足以允许正确的上电复位。I2C接口、地址和 DVI 引脚被引出在与面包板兼容的插头上,便于与Arduino或任何其他微控制器一起使用。
测量模式 BH1705有3种测量模式对应不同的灵敏度等级(0.5lx、1lx、4lx)。推荐使用H分辨率模式,因为它可以提供最佳的噪声抑制。I2C总线的输出逻辑电平可以通过使用PCB跳线(J2)切换3V3和5V电平。
最后,借助电平转换电路、3V3 调节和经过良好校准的BH1705,这款模块将为测量光照强度项目奠定良好的基础,特别是因为它们直接以勒克斯为单位提供输出,具有可接受的精度。
特性和规格参数 • I2C 总线接口 • SCL 时钟频率:最大 400kHz • 在 2 种 I2C 从机地址之间进行选择 • 具有近似人眼响应的光电二极管 • 环境光计算的内部逻辑 • 勒克斯的数字输出数据 • 宽范围和高分辨率。 ( 1 – 65535 lx ) • 测量偏差小(+/- 20%) • 最快的数据输出@ 16ms 每次读数 • 通过断电功能实现低电流消耗 • 50Hz / 60Hz 光噪声抑制功能 • 很少依赖光源 • 红外线的影响非常小 • 电源电压:3V3~5V DC
BH1750的应用 • 用于脉冲传感器以测量 LED 的光强度 • 手机内置BH1750,可根据外界光线条件调节屏幕亮度 • 用于车辆根据黑暗打开/关闭大灯 • 控制自动路灯的开/关 • 用于调整智能手机的键盘背光
使用BH1750环境光传感器和Arduino的硬件连接 现在让我们将BH1750环境光传感器与Arduino连接并制作一个简单的光照强度计。连接图如下。
BH1750采用I2C接口,因此,将其SCL和SDA引脚分别连接到Arduino开发板的A5和A4应交。传感器的VCC和GND引脚分别连接到3.3V和GND引脚。
将LCD显示屏的引脚1、5、16连接到GND。引脚2和15连接到Arduino开发板的5V。同样,引脚4、6、11、12、13、14分别连接到Arduino开发板的12、11、5、4、3、2引脚。
光照强度计的代码 在将代码上传到Arduino开发板之前,我们需要将BH1750库添加到库文件夹中。从此链接下载BH1750的Arduino库。
以下是光照强度计的完整代码:
BH1750.rar
(516 Bytes, 下载次数: 53)
测试BH1750传感器 代码上传后,LCD显示屏开始显示以勒克斯为单位的光照强度。 您可以将手电筒或手机灯放在传感器前面测试强度值。 也可以将设备带到户外,测量以勒克斯为单位日照值。
|