数字光强采集模块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: 多模块(.py)中全局变量的导入

文章目录 global关键字可变类型和不可变类型数据的内存地址单模块(单个py文件)的全局变量示例总结 多模块(多个py文件)的全局变量from x import x导入全局变量示例 import x导入全局变量示例 总结 global关键字 global 的作用范围是模块(.py)级别: 当你在一个模块(文件)中使用 global 声明变量时,这个变量只在该模块的全局命名空

从去中心化到智能化:Web3如何与AI共同塑造数字生态

在数字时代的演进中,Web3和人工智能(AI)正成为塑造未来互联网的两大核心力量。Web3的去中心化理念与AI的智能化技术,正相互交织,共同推动数字生态的变革。本文将探讨Web3与AI的融合如何改变数字世界,并展望这一新兴组合如何重塑我们的在线体验。 Web3的去中心化愿景 Web3代表了互联网的第三代发展,它基于去中心化的区块链技术,旨在创建一个开放、透明且用户主导的数字生态。不同于传统

深入探索协同过滤:从原理到推荐模块案例

文章目录 前言一、协同过滤1. 基于用户的协同过滤(UserCF)2. 基于物品的协同过滤(ItemCF)3. 相似度计算方法 二、相似度计算方法1. 欧氏距离2. 皮尔逊相关系数3. 杰卡德相似系数4. 余弦相似度 三、推荐模块案例1.基于文章的协同过滤推荐功能2.基于用户的协同过滤推荐功能 前言     在信息过载的时代,推荐系统成为连接用户与内容的桥梁。本文聚焦于

usaco 1.2 Name That Number(数字字母转化)

巧妙的利用code[b[0]-'A'] 将字符ABC...Z转换为数字 需要注意的是重新开一个数组 c [ ] 存储字符串 应人为的在末尾附上 ‘ \ 0 ’ 详见代码: /*ID: who jayLANG: C++TASK: namenum*/#include<stdio.h>#include<string.h>int main(){FILE *fin = fopen (

Jenkins构建Maven聚合工程,指定构建子模块

一、设置单独编译构建子模块 配置: 1、Root POM指向父pom.xml 2、Goals and options指定构建模块的参数: mvn -pl project1/project1-son -am clean package 单独构建project1-son项目以及它所依赖的其它项目。 说明: mvn clean package -pl 父级模块名/子模块名 -am参数

寻迹模块TCRT5000的应用原理和功能实现(基于STM32)

目录 概述 1 认识TCRT5000 1.1 模块介绍 1.2 电气特性 2 系统应用 2.1 系统架构 2.2 STM32Cube创建工程 3 功能实现 3.1 代码实现 3.2 源代码文件 4 功能测试 4.1 检测黑线状态 4.2 未检测黑线状态 概述 本文主要介绍TCRT5000模块的使用原理,包括该模块的硬件实现方式,电路实现原理,还使用STM32类

Verybot之OpenCV应用一:安装与图像采集测试

在Verybot上安装OpenCV是很简单的,只需要执行:         sudo apt-get update         sudo apt-get install libopencv-dev         sudo apt-get install python-opencv         下面就对安装好的OpenCV进行一下测试,编写一个通过USB摄像头采

AIGC6: 走进腾讯数字盛会

图中是一个程序员,去参加一个技术盛会。AI大潮下,五颜六色,各种不确定。 背景 AI对各行各业的冲击越来越大,身处职场的我也能清晰的感受到。 我所在的行业为全球客服外包行业。 业务模式为: 为国际跨境公司提供不同地区不同语言的客服外包解决方案,除了人力,还有软件系统。 软件系统主要是提供了客服跟客人的渠道沟通和工单管理,内部管理跟甲方的合同对接,绩效评估,BI数据透视。 客服跟客人

python内置模块datetime.time类详细介绍

​​​​​​​Python的datetime模块是一个强大的日期和时间处理库,它提供了多个类来处理日期和时间。主要包括几个功能类datetime.date、datetime.time、datetime.datetime、datetime.timedelta,datetime.timezone等。 ----------动动小手,非常感谢各位的点赞收藏和关注。----------- 使用datet

C8T6超绝模块--EXTI

C8T6超绝模块–EXTI 大纲 控制流程结构体分析EXTI实现按键 具体案例 控制流程 这里是流程框图,具体可以去看我STM32专栏的EXTI的具体分析 结构体分析 typedef struct {uint32_t EXTI_Line; // 中断/事件线EXTIMode_TypeDef EXTI_Mode; // EXTI 模式EXTITrigger_TypeDef EXTI_