1.GY30简介
GY-30是一款内置ROHM-BH1750FLV芯片的数字光照强度模块,用于光照强度采集。
BH1750FVl是一种用于RC总线接口的数字环境光传感器LC。该芯片最适合于获取移动电话液晶显示器和按键背光功率的环境光数据。在高分辨率(1~65535 l×)范围内检测是可行的。
2.特性
3.应用
硬件接口及原理图
4.程序设计
BH1750指令集
#define BHAddWrite 0x46 //写地址
#define BHAddRead 0x47 //读地址
#define BHPowDown 0x00 //关闭模块
#define BHPowOn 0x01 //打开模块等待指令
#define BHReset 0x07 //重置数据寄存器仅在BHpowOn模式下有效
#define BHModeH1 0x10 //高分辨率 模式1 单位 11X 测量时间 120ms
#define BHModeH2 0x11 //高分辨率 模式2 单位 11X 测量时间 120ms
#define BHModeL 0x13 //低分辨率 单位4lx 测量时间16ms
#define BHSigModeH 0x20 //一次测量高分辨率模式1,然后转到powerdown模式
#define BHSigModeH2 0x21 //同上类似
#define BHSigModeL 0x23 //同上类似
模块驱动时序
//发送起始信号
void IIC_Start(void)
{
IIC_SDAout_Mode();//输出模式
IIC_SCL=1;
IIC_SDAout=1;
delay_us(2);
IIC_SDAout=0;
IIC_SCL=0;//方便后续数据收发
}
//停止信号
void IIC_Stop(void)
{
IIC_SDAout_Mode();//输出模式
IIC_SCL=0;
IIC_SDAout=0;
delay_us(2);
IIC_SCL=1;
delay_us(2);
IIC_SDAout=1;
}
/***********发送应答信号**************************
**
**形参:u8 ack -- 0应答,1非应答
**
***************************************************/
void IIC_SendAck(u8 ack)
{
IIC_SDAout_Mode();//输出模式
IIC_SCL=0;//告诉从机,主机开始发送数据
IIC_SDAout=ack&0x01;
delay_us(2);
IIC_SCL=1;//告诉从机,主机数据发送完成
//方便下一次数据收发
delay_us(2);
IIC_SCL=0;
}
//获取应答信号
u8 IIC_Wait_Ack(void)
{
u8 cnt=0;
IIC_SDAIN_Mode();//配置为输入模式
IIC_SDAout=1;
IIC_SCL=0;//告诉从机,主机需要获取数据
delay_us(2);
IIC_SCL=1;//从机数据发送完成,主机开始读取数据
while(IIC_SDAin)
{
cnt++;
delay_us(1);
if(cnt>=100)return 1;
}
delay_us(2);
IIC_SCL=0;//方便下一次数据收发
return 0;
}
BH1750发送数据
void bh_data_send(u8 command)
{
do{
IIC_Start(); //iic开始
IIC_Send_Byte(BHAddWrite); //写地址
}while(IIC_Wait_Ack()); //等待响应
IIC_Send_Byte(command); //发送命令
IIC_Wait_Ack(); //等待响应
IIC_Stop(); //iic停止
}
BH1750初始化
void BH1750init(void)
{
IIC_Init();//GPIO初始化
bh_data_send(BHPowOn); //发送启动信号
bh_data_send(BHReset); //清除寄存器
bh_data_send(BHModeH1); //设置为模式2
delay_ms(180); //最高延时180ms
}
数据采集效果
审核编辑:汤梓红
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
传感器
+关注
关注
2547文章
50541浏览量
751473 -
模块
+关注
关注
7文章
2662浏览量
47316 -
数据采集
+关注
关注
38文章
5870浏览量
113488
发布评论请先 登录
相关推荐
OLED屏幕和GY30光照传感器接在IIC(I2C)总线上
最终效果展示OLED屏幕和GY30光照传感器(BH1750FVI)都连接在一个IIC(I2C)总线上,所以只需要接4根线即可。获取到的光照强度可以在OLED上实时显示并通过串口打印。IIC是IO模拟
发表于 01-13 08:31
STM32读取GY30传感器并通过串口输出的方法
串口显示GY30.c#include "GY30.h"//MPU IIC 延时函数void GY30_IIC_Delay(void){delay_us(2);}//初始化
发表于 02-22 06:04
PLC常用程序设计语言简介
PLC常用程序设计语言简介
在可编程控制器中有多种程序设计语言,它们是梯形图语言、布尔助记符语言、功能表图语言、功能模块图语言
发表于 06-17 14:07
•1374次阅读
STC_GY-30接线图
51单片机控制GY-30,里面有接线图,程序在原来的基础上多了不少注释,以便大家理解为什么要这样写程序,仅适用于理解学习控制GY-30
发表于 03-05 15:34
•49次下载
使用LCD1602显示GY30数字光强度模块BH1750FVI采集的光照度
GY-30数字光强度模块BH1750FVI资料。STC89c52用Lcd1602显示光照度数据的例子程序、还有avr的例子程序。资料是网上找到的,这段时间在用这个
发表于 07-11 17:40
•34次下载
关于GY-30的简介与驱动及如何操作
GY-30是一款内置ROHM-BH1750FLV芯片的数字光照强度模块。芯片内置16bitAD转换器,可直接数字输出,测量光照强度范围为0-65535lx(精度可选)。
c++程序设计_基于proteus的51单片机开发实例30-模块化程序设计
1. 基于proteus的51单片机开发实例30-模块化程序设计1.1. 实验目的模块化程序设计不知不觉我们的51单片机开发实例已经进行到第
发表于 11-21 15:36
•13次下载
STM32读取GY30传感器并通过串口输出
串口显示GY30.c#include "GY30.h" //MPU IIC 延时函数void GY30_IIC_Delay(void){ delay_us(2);}//初始化IICvoid
发表于 12-27 19:29
•28次下载
评论