一、实物图

二、原理图


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

PD二极管通过光伏效应将输入光信号转换成电信号,经运放电路放大后,电压经ADC采集,再经逻辑电路转换成16位二进制数,存储在内部的寄存器中。BH1750引出了时钟线和数据线,单片机可以通过I2C协议与BH1750进行通讯,可选择BH1750的工作模式,提取BH1750寄存器中的照度数据
六、流程设计
初始化:
配置STM32的I2C接口,包括设置I2C的时钟速度、总线地址、应答模式等。
初始化BH1750传感器,确保其与STM32的I2C接口正确连接并可以通信。
配置BH1750:
通过I2C接口发送配置命令给BH1750,设置其测量模式。BH1750支持多种测量模式,包括连续高分辨率模式、一次高分辨率模式、连续低分辨率模式等。
选择最合适的测量模式,这取决于应用程序对测量精度和响应时间的需求。
等待测量:
BH1750在接收到测量命令后,需要一定的时间来完成光照强度的测量。这个等待时间根据所选的测量模式而不同,例如在高分辨率模式下可能需要约180毫秒。
STM32在这段时间内可以执行其他任务,或者简单地等待直到测量完成。
读取数据:
测量完成后,STM32通过I2C接口从BH1750的输出寄存器中读取光照强度的原始值。这个值通常是一个16位的数字,由两个字节组成:高8位和低8位。
数据处理:
将读取到的原始值转换为实际的光照强度值。BH1750的数据手册提供了转换公式,通常需要将原始值乘以一个特定的系数(取决于所选的测量模式)并除以1.2,以得到以勒克斯(lx)为单位的光照强度。
进行数据的格式化,以便在OLED显示屏上显示或者通过串口输出。
显示数据:
将处理后的数据发送到显示屏。
在显示屏上格式化并显示光照强度值,以便用户可以直观地看到当前环境的光照情况。
循环更新:
为了实时监测光照强度,上述流程在STM32的主循环中不断重复执行,以持续更新显示的光照数据。

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。