GY-30是一款ROHM-BH1750FVI可测量芯片数字输出的感光模块的光照度范围为0~65535勒克斯最小误差变化为±20%,分辨率为1勒克斯。
GY-三十是五针脚模块,包括VCC、SCL、SDA、ADDR、GND五个引脚。其中VCC连接电源正极的电压范围为3~5V之间;GND接地;SCL为时钟线;SDA数据线;而且,SCL和SDA与单片机连接时,连接5k电阻值的上拉电阻;ADDR接地时设备地址为0100011,接电正极时设备地址为101100。
GY-30与STM32单片机之间的通信采用IIC在这里简单解释一下通信协议IIC通讯。
在上图中,左边是起始信号,拉高数据线,然后拉高时钟线,然后拉低数据线,产生起始信号,然后拉低时钟线,等待数据发送。右边是停止信号(当数据传输结束时,时钟线和数据线为低电平),首先拉高时钟线,当时钟线为高电平时拉高数据线,产生停止信号。
数据传输由数据线承载,以确保数据线在时钟线上升时保持稳定。发送数据1,保持时钟线低电平,提高数据线;在数据线上升的过程中,提高时钟线,等待几次us之后,拉下时钟线。发送数据0与之相同,只需将数据线保持在低电平。
IIC每次发送指令后,协议将由接受指令的设备响应;如果响应继续,如果不响应,则停止。
说完IIC同一通信,让我们详细解释一下BH1750芯片通信流程。
测量过程为:单片机发送机地址(7位)和写命令(1位)→传感器应答→单片机发送测量指令→传感器应答
读取测量结果的流程位:单片机发送器地址和读命令→传感器应答→传感器向单片机发送高8位数据→单片机应答→传感器发送低8的数据→单片机不应答(通讯结束)
下面附上程序代码(关于这里)IIC协议的代码不会给出。网上有很多。我用正点原子写的。myiic.c文件)
bh1750.c
//写入
void Single_Write_BH1750(unsigned char REG_Address)
{
IIC_Start();
IIC_Send_Byte(BHAddWrite);
IIC_Send_Byte(REG_Address);
IIC_Stop();
}
//发送
void bh_data_send(u8 command)
{
do{
IIC_Start();
IIC_Send_Byte(BHAddWrite);
}while(IIC_Wait_Ack());
IIC_Send_Byte(command);
IIC_Wait_Ack();
IIC_Stop();
}
//接受
u16 bh_data_read(void)
{
u16 buf;
u8 a;
u8 b;
IIC_Start();
IIC_Send_Byte(BHAddRead);
IIC_Wait_Ack();
b=IIC_Read_Byte(1);
a=IIC_Read_Byte(0);
buf=b*256 a;
IIC_Stop();
return buf;
}
//初始化
void Init_BH1750(void)
{
GPIO_InitTypeDef GPIO_InitStruct;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);
GPIO_InitStruct.GPIO_Pin = GPIO_Pin_6|GPIO_Pin_7;
GPIO_InitStruct.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOB,&GPIO_InitStruct);
Single_Write_BH1750(0x01);
delay_ms(180);
}
bh1750.h
///每个命令代码的具体含义可以参考相关的使用说明(绝不是因为看字太多懒得打)
#define ADDR 0x23//0100011
#define BHAddWrite 0x46
#define BHAddRead 0x47
#define BHPowDown 0x00
#define BHPowOn 0x01
#define BHReset 0x07
#define BHModeH1 0x10
#define BHModeH2 0x11
#define BHModeL 0x13
#define BHSigModeH 0x20
#define BHSigModeH2 0x21
#define BHSigModeL 0x23
void Single_Write_BH1750(unsigned char REG_Address);
void Init_BH1750(void);
void bh_data_send(u8 command);
u16 bh_data_read(void);
附上我当时做实验的测试结果图
懒人程序下载通道 :
https://download.csdn.net/download/qq_42560288/12673151
如果这篇文章真的对你有帮助,请用小手点赞!