三行代码实现BH1750光照强度传感器读取并USB串口打印

96 篇文章 0 订阅
67 篇文章 0 订阅

BH1750光照强度传感器

本教程来源于 FlexLua 官网,专注于降低 IoT 硬件开发难度,零门槛 Lua 低代码编程技术开发 IoT 硬件。

一、本例程实现功能

通过BH1750光照强度传感器模块测量周围灯光或太阳光等光照强度,并通过 print() 函数在电脑串口调试终端打印输出。

二、基本概念

光照强度: 光照强度是一种物理术语,指单位面积上所接受可见光的光通量。简称照度 [1] ,单位勒克斯(Lux或lx)。用于指示光照的强弱和物体表面积被照明程度的量。

三、 传感器参数配置概述

Core提供的库函数默认将BH1750传感器配置在H-Resolution Mode,即精确度配置在1勒克斯(lx),测量范围在1~65535(lx),每次测量时间在120~180毫秒之间。所以保守估计传感器每秒可以输出5组光照强度数据,具体参数配置如下图中红色方框中的内容:

2596ed5eaae2761fcf6aff808b90c17b.jpeg

关于BH1750传感器更详细的介绍请在下文中提供的资料下载地址中下载并查阅。

四、接线图

57955a7d9e4ca737983d767aa62a57ad.jpeg

五、材料清单

  • BH1750光照强度传感器模块

67487343ccaf9057567ed87cd1c23a13.jpeg

六、完整代码

--配置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查询。

七、代码运行结果

电脑串口调试终端上显示的光照强度(单位:勒克斯(lx))内容如下图:

7882642846e744074fa16d7d93dc853e.jpeg

  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值