3177|0

212

帖子

0

TA的资源

一粒金砂(高级)

楼主
 

【GD32F350分享】【五】GY-30光强模块驱动程序编写 [复制链接]

        本次作品中使用GY-30光强模块采集周围光照强度信息,来调节OLED显示屏的显示亮度。GY-30 数字光模块采用了BH1750FVI传感器,采用IIC数字接口。BH1750环境光传感器内置16位的模数转换器,它能够直接输出一个数字信号,不需要再做复杂的计算。这是一种更精良的和容易使用简易电阻器的版本,通过计算电压,来获得有效的数据。这款环境光传感器能够直接通过光度计来测量。光强度的单位是流明"lx"。当物体在均匀的光照下它能够在每平方米获得1lx的光通量,它们的光强度是1lx。        

          再工程目录Driver文件夹下增加bh1750源文件和头文件,并做接口配置:

BH1750内部寄存器定义:

  1. #define BH1750_ADDR                                                        0x46  //定义器件在IIC总线中的从地址

  2. //***************BH1750内部寄存器地址***********
  3. #define BH1750_POWER_DOWN                                0x00  //关闭模块
  4. #define BH1750_POWER_ON                                        0x01  //打开模块等待测量指令
  5. #define BH1750_RESET                                                0x07  //重置数据寄存器值在PowerOn模式下有效
  6. #define BH1750_CONT_H_MODE                        0x10  //高分辨率 单位1lx 测量时间120ms
  7. #define BH1750_CONT_H_MODE2                        0x11  //高分辨率模式2 单位0.5lx 测量时间120ms
  8. #define BH1750_CONT_L_MODE                        0x13  //低分辨率 单位4lx 测量时间16ms
  9. #define        BH1750_ONE_H_MODE                                0x20  //一次高分辨率 测量 测量后模块转到 PowerDown模式
  10. #define BH1750_ONE_H_MODE2                        0x21  //同上类似
  11. #define BH1750_ONE_L_MODE                                0x23  //同上类似
  12. #define BH1750_CHG_MEAS_TIME_H        0x40
  13. #define BH1750_CHG_MEAS_TIME_L        0x60
复制代码


  1. //BH1750 IIC控制函数
  2. void BH1750_I2C_GPIO_Config(void);
  3. void BH1750_I2C_Delay(void);
  4. uint8_t BH1750_I2C_Start(void);
  5. void BH1750_I2C_Stop(void);
  6. void BH1750_I2C_Ack(void);
  7. void BH1750_I2C_NoAck(void);
  8. uint8_t BH1750_I2C_WaitAck(void);
  9. void I2C_BH1750_SendByte(uint8_t SendByte);
  10. unsigned char BH1750_I2C_RadeByte(void);
  11. uint8_t BH1750_Single_Write(unsigned char SlaveAddress,unsigned char REG_Address,unsigned char REG_data);
  12. unsigned char BH1750_Single_Read(unsigned char SlaveAddress,unsigned char REG_Address);
  13. uint8_t BH1750_Write_Cmd(unsigned char cmd);
  14. void Init_BH1750(void);
  15. uint16_t READ_BH1750(void);
复制代码



        使用OLED对光强数据进行显示,调节光强亮度,可以看到采集的数据变化。



此帖出自GD32 MCU论坛
点赞 关注
 

回复
举报
您需要登录后才可以回帖 登录 | 注册

查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表