数字光强采集模块GY30

2023-10-22 04:10
文章标签 模块 采集 数字 光强 gy30

本文主要是介绍数字光强采集模块GY30,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

数字光强采集模块GY30

GY30简介

  GY-30是一款内置ROHM-BH1750FLV芯片的数字光照强度模块,用于光照强度采集。
  BH1750FVl是一种用于RC总线接口的数字环境光传感器LC。该芯片最适合于获取移动电话液晶显示器和按键背光功率的环境光数据。在高分辨率(1~65535 l×)范围内检测是可行的。

特性

  • IIC总线接口
  • 光强数字转换器
  • 16位分辩率(1~65535)
  • 直接数字输出,省略复杂的计算,省略标定
  • 不区分环境光源,接近于视觉灵敏度的分光特性

应用

手机、数码相机、车载导航,PDA、LCD显示等。

硬件接口及原理图

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

程序设计

  • 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读取数据
u16 bh_data_read(void)  
{  u16 buf;  IIC_Start();                       //iic开始  IIC_Send_Byte(BHAddRead);         //发送读地址IIC_Wait_Ack();                     //等待响应  buf=IIC_Read_Byte();              //读取数据  IIC_SendAck(0);buf=buf<<8;                        //读取并保存高八位数据buf|=IIC_Read_Byte();             //读取并保存低八位数据IIC_SendAck(1);IIC_Stop();                        //发送停止信号return buf;   
} 
  • BH1750初始化
void BH1750init(void)
{IIC_Init();//GPIO初始化bh_data_send(BHPowOn);    //发送启动信号bh_data_send(BHReset);    //清除寄存器  bh_data_send(BHModeH1);   //设置为模式2delay_ms(180);            //最高延时180ms
}
  • 数据采集效果
    在这里插入图片描述
    完整示例:https://download.csdn.net/download/weixin_44453694/16740887

这篇关于数字光强采集模块GY30的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/258982

相关文章

Python AST 模块实战演示

《PythonAST模块实战演示》Python的ast模块提供了一种处理Python代码的强大工具,通过解析代码生成抽象语法树(AST),可以进行代码分析、修改和生成,接下来通过本文给大家介绍Py... 目录 什么是抽象语法树(AST)️ ast 模块的核心用法1. 解析代码生成 AST2. 查看 AST

Python sys模块的使用及说明

《Pythonsys模块的使用及说明》Pythonsys模块是核心工具,用于解释器交互与运行时控制,涵盖命令行参数处理、路径修改、强制退出、I/O重定向、系统信息获取等功能,适用于脚本开发与调试,需... 目录python sys 模块详解常用功能与代码示例获取命令行参数修改模块搜索路径强制退出程序标准输入

Python pickle模块的使用指南

《Pythonpickle模块的使用指南》Pythonpickle模块用于对象序列化与反序列化,支持dump/load方法及自定义类,需注意安全风险,建议在受控环境中使用,适用于模型持久化、缓存及跨... 目录python pickle 模块详解基本序列化与反序列化直接序列化为字节流自定义对象的序列化安全注

python pymodbus模块的具体使用

《pythonpymodbus模块的具体使用》pymodbus是一个Python实现的Modbus协议库,支持TCP和RTU通信模式,支持读写线圈、离散输入、保持寄存器等数据类型,具有一定的参考价值... 目录一、详解1、 基础概念2、核心功能3、安装与设置4、使用示例5、 高级特性6、注意事项二、代码示例

Python中logging模块用法示例总结

《Python中logging模块用法示例总结》在Python中logging模块是一个强大的日志记录工具,它允许用户将程序运行期间产生的日志信息输出到控制台或者写入到文件中,:本文主要介绍Pyt... 目录前言一. 基本使用1. 五种日志等级2.  设置报告等级3. 自定义格式4. C语言风格的格式化方法

Python 基于http.server模块实现简单http服务的代码举例

《Python基于http.server模块实现简单http服务的代码举例》Pythonhttp.server模块通过继承BaseHTTPRequestHandler处理HTTP请求,使用Threa... 目录测试环境代码实现相关介绍模块简介类及相关函数简介参考链接测试环境win11专业版python

Nginx添加内置模块过程

《Nginx添加内置模块过程》文章指导如何检查并添加Nginx的with-http_gzip_static模块:确认该模块未默认安装后,需下载同版本源码重新编译,备份替换原有二进制文件,最后重启服务验... 目录1、查看Nginx已编辑的模块2、Nginx官网查看内置模块3、停止Nginx服务4、Nginx

基于Python实现数字限制在指定范围内的五种方式

《基于Python实现数字限制在指定范围内的五种方式》在编程中,数字范围限制是常见需求,无论是游戏开发中的角色属性值、金融计算中的利率调整,还是传感器数据处理中的异常值过滤,都需要将数字控制在合理范围... 目录引言一、基础条件判断法二、数学运算巧解法三、装饰器模式法四、自定义类封装法五、NumPy数组处理

python urllib模块使用操作方法

《pythonurllib模块使用操作方法》Python提供了多个库用于处理URL,常用的有urllib、requests和urlparse(Python3中为urllib.parse),下面是这些... 目录URL 处理库urllib 模块requests 库urlparse 和 urljoin编码和解码

创建springBoot模块没有目录结构的解决方案

《创建springBoot模块没有目录结构的解决方案》2023版IntelliJIDEA创建模块时可能出现目录结构识别错误,导致文件显示异常,解决方法为选择模块后点击确认,重新校准项目结构设置,确保源... 目录创建spChina编程ringBoot模块没有目录结构解决方案总结创建springBoot模块没有目录