一、实物图

二、原理图

三、简介

BH1750是一款数字型光照强度传感器,能够获取周围环境的光照强度。内置16bitAD转换器,其测量范围在0~65535 lx(勒克斯,光照强度的单位),不区分环境光源。BH1750可用于调节手机屏幕和键盘的背光功率,或者用于智能灯光控制,比如,随着外界光照强度的变化调节灯光亮度。

四、工作原理

PD二极管通过光伏效应将输入光信号转换成电信号,经运放电路放大后,电压经ADC采集,再经逻辑电路转换成16位二进制数,存储在内部的寄存器中。BH1750引出了时钟线和数据线,单片机可以通过I2C协议与BH1750进行通讯,可选择BH1750的工作模式,提取BH1750寄存器中的照度数据

六、流程设计

初始化:

配置STM32I2C接口,包括设置I2C的时钟速度、总线地址、应答模式等。

初始化BH1750传感器,确保其与STM32I2C接口正确连接并可以通信。

配置BH1750

通过I2C接口发送配置命令给BH1750,设置其测量模式。BH1750支持多种测量模式,包括连续高分辨率模式、一次高分辨率模式、连续低分辨率模式等。

选择最合适的测量模式,这取决于应用程序对测量精度和响应时间的需求。

等待测量:

BH1750在接收到测量命令后,需要一定的时间来完成光照强度的测量。这个等待时间根据所选的测量模式而不同,例如在高分辨率模式下可能需要约180毫秒。

STM32在这段时间内可以执行其他任务,或者简单地等待直到测量完成。

读取数据:

测量完成后,STM32通过I2C接口从BH1750的输出寄存器中读取光照强度的原始值。这个值通常是一个16位的数字,由两个字节组成:高8位和低8位。

数据处理:

将读取到的原始值转换为实际的光照强度值。BH1750的数据手册提供了转换公式,通常需要将原始值乘以一个特定的系数(取决于所选的测量模式)并除以1.2,以得到以勒克斯(lx)为单位的光照强度。

进行数据的格式化,以便在OLED显示屏上显示或者通过串口输出。

显示数据:

将处理后的数据发送到显示屏。

在显示屏上格式化并显示光照强度值,以便用户可以直观地看到当前环境的光照情况。

循环更新:

为了实时监测光照强度,上述流程在STM32的主循环中不断重复执行,以持续更新显示的光照数据。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。

最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。 若排除这种情况,可在对应资源底部留言,或联络我们。

对于会员专享、整站源码、程序插件、网站模板、网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。

如果您已经成功付款但是网站没有弹出成功提示,请联系站长提供付款信息为您处理

源码素材属于虚拟商品,具有可复制性,可传播性,一旦授予,不接受任何形式的退款、换货要求。请您在购买获取之前确认好 是您所需要的资源