零基础STM32单片机编程入门(十六) BH1750光照强度传感器模块实战含源码

零基础STM32单片机编程入门(十六) BH1750光照强度传感器模块实战含源码介绍了 BH1750 光强度模块的原理 驱动时序等 介绍了 STM32F103C8T 驱动这个模块进行光强度测量 提供代码 bh1750

大家好,欢迎来到IT知识分享网。

一.概要

二.BH1750主要性能参数

三.BH1750光照强度传感器内部框图

BH1750的内部由光敏二极管PD、运算放大器AMP、ADC采集、晶振等组成。PD二极管通过光生伏特效应(光生伏特效应是指半导体在受到光照射时产生电动势的现象)将输入光信号转换成电信号,经运算放大电路放大后,由ADC采集电压,然后通过逻辑电路转换成16位二进制数存储在内部的寄存器中(光照越强,光电流越大,电压就越大)。

四.BH1750模块原理图

在这里插入图片描述

五.BH1750模块跟单片机板子通讯时序

BH1750对光强度数据测量有几种模式

在这里插入图片描述

六.STM32单片机BH1750模块实验

硬件准备:

STLINK接STM32F103C8T6小系统板,STLINK接电脑USB口。

添加BH1750传感器相关代码

在这里插入图片描述
在这里插入图片描述

主要代码

//写入1字节数据到BH170,设备地址0x46 void BH170_WriteReg(uint8_t reg_add,uint8_t reg_dat) { 
    HAL_I2C_Mem_Write(&hi2c1,0x46,reg_add,1,&reg_dat,1,1000); } //读取BH170数据,设备地址0x46 void BH170_ReadData(uint8_t reg_add,unsigned char*Read,uint8_t num) { 
    HAL_I2C_Mem_Read(&hi2c1,0x46,reg_add,1,Read,num,1000); } uint8_t DataBuff[2];//存储数组 float LightData;//光照强度(含小数位,单位lx) uint32_t LightData_Hex;//光照强度(整数,单位lx) int main(void) { 
    /* USER CODE BEGIN 1 */ /* USER CODE END 1 */ /* MCU Configuration--------------------------------------------------------*/ /* Reset of all peripherals, Initializes the Flash interface and the Systick. */ HAL_Init(); /* USER CODE BEGIN Init */ /* USER CODE END Init */ /* Configure the system clock */ SystemClock_Config();//8M外部晶振,72M系统主频 /* USER CODE BEGIN SysInit */ /* USER CODE END SysInit */ /* Initialize all configured peripherals */ MX_GPIO_Init(); MX_I2C1_Init();//PB6,PB7控制BH1750 /* USER CODE BEGIN 2 */ OLED_Init();//OLED初始化  OLED_Clear();//清屏 /* USER CODE END 2 */ /* Infinite loop */ /* USER CODE BEGIN WHILE */ while (1) { 
    /* USER CODE END WHILE */ /* USER CODE BEGIN 3 */ BH170_WriteReg(0x01,0x00);// power on BH170_WriteReg(0x10,0x00);//H- resolution mode HAL_Delay(180);//等待180ms BH170_ReadData(0,DataBuff,2);//读取数据 LightData=((DataBuff[0]<<8)+DataBuff[1])/1.2f;//数据转换成光强度,单位lx LightData_Hex=LightData;//float转换成整数 OLED_ShowNum(6,3,LightData_Hex,5,16);//显示光强度 OLED_ShowString(72,3,"lx");//显示光强度单位lx OLED_ShowCHinese(18,0,0);//光 OLED_ShowCHinese(36,0,1);//子 OLED_ShowCHinese(54,0,2);//物 OLED_ShowCHinese(72,0,3);//联 OLED_ShowCHinese(90,0,4);//网 } /* USER CODE END 3 */ } 

七.CubeMX工程源代码下载

八.小结

BH1750模块可以高精度测量光照强度,可以广泛应用于室内外照明、公路照明、植物生长等领域。

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/120163.html

(0)
上一篇 2025-10-31 15:33
下一篇 2025-10-31 15:45

相关推荐

发表回复

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

关注微信