BH1750光照强度传感器
本教程来源于 FlexLua 官网,专注于降低 IoT 硬件开发难度,零门槛 Lua 低代码编程技术开发 IoT 硬件。
一、本例程实现功能
通过BH1750光照强度传感器模块测量周围灯光或太阳光等光照强度,并通过 print() 函数在电脑串口调试终端打印输出。
二、基本概念
光照强度: 光照强度是一种物理术语,指单位面积上所接受可见光的光通量。简称照度 [1] ,单位勒克斯(Lux或lx)。用于指示光照的强弱和物体表面积被照明程度的量。
三、 传感器参数配置概述
Core提供的库函数默认将BH1750传感器配置在H-Resolution Mode,即精确度配置在1勒克斯(lx),测量范围在1~65535(lx),每次测量时间在120~180毫秒之间。所以保守估计传感器每秒可以输出5组光照强度数据,具体参数配置如下图中红色方框中的内容:
关于BH1750传感器更详细的介绍请在下文中提供的资料下载地址中下载并查阅。
四、接线图
五、材料清单
- BH1750光照强度传感器模块
六、完整代码
--配置USB以虚拟串口模式工作,这样调用print()函数就会在电脑串口终端打印输出
LIB_UsbConfig("CDC")
--设置BH1750光照强度传感器占用SCL0和SDA0引脚,并启动传感器以每秒输出5组数据的频率工作
LIB_BH1750Config("IIC0")
--开始大循环
while(GC(1) == true)
do
--每隔200毫秒查询一次传感器是否出数,也可以设置大于200毫秒的查询间隔时间,取决于您的应用需求
LIB_DelayMs(200)
flag, illumination = LIB_BH1750GetResult()
if flag == 1 then --如果传感器此时有数据
--光照强度值去掉小数部分,单位:勒克斯(lx)
print(string.format("illumination: %.0f (lx)", illumination))
end
end
如果感兴趣,上面代码中出现的LIB开头的库函数可以在 API文档 中通过Ctrl+F查询。