找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 6267|回复: 0
打印 上一主题 下一主题
收起左侧

环境光强度传感器-BH1750光照测量 程序源码

[复制链接]
跳转到指定楼层
楼主
本帖最后由 roc2 于 2018-6-13 10:10 编辑

转载自:零知lab
1、简介
不区分光源数字型环境光强度传感器BH1750FVI是日本RHOM株式会社近些年推出的一种两线式串行总线接口的集成电路,可以根据收集的光线强度数据来进行环境监测,其具有1~65535 lx的高分辨率,可支持较大范围的光强度变化。它是为适应以移动电话手机为首的便携式机器和液晶电视等的要求而开发出的具有优良光谱灵敏特性、16bit精度串行输出的单片数字照度传感器,其结构框图如下:

注:这里的光强度是以 lx,下面给出一些常见的参考数据:
晚上: 0.001-0.02;
月夜: 0.02-0.3;
多云室内: 5-50;
多云室外: 50-500;
晴天室内: 100-1000;
夏天中午光照下: 大约10*6能量;
阅读书籍时的照明度: 50-60;
家庭录像标准照明度:1400;

2、编程示例参考
BH1750工作模式有6种,分为一次型和连续型两类,两类中有分别包含高精度1,、高精度2、低精度模式,一次型模式在读取一次数据后就会进入到power down模式。几种模式的测量时间和精度如下:

根据我们自己的需求我们选用合适的测量模式即可,具体的参数寄存器配置要参考技术手册(附件中可下载)。
程序参考源码如下:
(1)初始化:
  1. void bh1750_init(void)
  2. {
  3.         twi_init();        //I2C 初始化

  4.         //BH1750 按照手册进行上电操作时序
  5.         nrf_gpio_cfg_output(DVI_PIN);
  6.         nrf_gpio_pin_clear(DVI_PIN);
  7.         nrf_delay_us(2);
  8.         nrf_gpio_pin_set(DVI_PIN);
  9.         
  10.         uint8_t write_buff[1] = {0};
  11.         
  12.         write_buff[0] = 0x10; //连续,高精度模式
  13.         
  14.         //这里我在硬件上把 ADDR 脚接地了,因此,BH1750_ADDR=0x46>>1
  15.         twi_write(BH1750_ADDR, write_buff, 1);
  16. }
复制代码
(2)数据采集
  1. void bh1750_get_sample(void)
  2. {
  3.         uint8_t read_buff[2] = {0};
复制代码


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表