BH1750FVI调试
在写此博客之前已经看了几遍数据手册了,现在已经调试成功了,可以读出来数据,还有不如意的地方,写此博客整理下思路。
1、BH1750fvi介绍。

这是一个16bit的数字传感器,使用I2C作为通信接口,照度的测量范围是1~65535lx。其实从这里就已经能预见最终读出来的照度原数据是2byte的。

这里具体介绍这款传感器的一些特点,例如接近人眼感测的灵敏度,我的毕业设计是要做一个台灯的调光装置,这款传感器的灵敏特性真好适合。此外这里还提到最小分表率0.11lx,最大感测100000lx。
2、电气特性

我在使用时接的电压值是看的卖家的参考资料选择的(3~5V),这里也讲到这个芯片供电电压Vcc值范围是2.4~3.6V。卖家说的电压值是电路板的供电电压值,这里要注意数据手册上说的这个值是我们在设计芯片外围电路是要参考的电压供电值。
3、工作模式

数据测量的流程图,模块上电,传感器是处于掉电状态(PowerOff),需要写入命令让传感器切换到上电状态(PowerOff),再发送数据测量命令,有单次测量模式和连续测量模式。单次测量模式是测量一次后,传感器切换到掉电状态,要再测量需要重新上电。这个图很容易读懂,虚线代表我们用I2c写入的命令(OpeCode),实现是芯片电路自动切换状态过程。
4、指令/命令

这里建议在编程的时候,用宏定义有规律有条理的组织在一起,模块化封装起来,方便开发。注意不同测量模式的测量时间和分辨率,根据需要合理选取。

上面这个表示总结的各种模式的特点。在手册的这个表的小面有一段问题提及了在H测量模式会抑制噪声,分辨率1lx,可以在黑暗场景测量。
5、驱动电路


这是在某淘宝店铺找的资料,这里重点关注芯片的DVL脚是怎么连的。这个DVI脚是I2C总线的参考电压端口,也是异步重置端口,在给VCC供电之后必须拉低至少1us,在其低电平时,芯片处于掉电状态(PowerDown)。至于原因我不理解,电路板上这个脚串一个0.1uf的电容和1kΩ的电阻,时间常数i=RC=1e-3,对应时间1us,所以在给VCC供电后,DVI在大于1us后才会拉高,和上面的时序图相似。
6、从机地址

在ADR脚拉低时:BHWriteAddr:0x46
BHReadAddr:0x47

另外注意:在一次I2C通讯(一个I2C_Start和一个I2C_Stop)中最多只能发一次命令。
7、读数据格式

这是16位数字传感器,测量的数据是两个字节,读取数据无须发送寄存器地址(regaddr),测量完成直接读取即可。
不过在手册的后半部分讲到了可以通过修改Mtreg寄存器,修改传感器的灵敏度,随之照度和测量数据的对应公式也会发生变化,具体详查手册。
最后贴一些关键的函数:
BH1750FVI调试的更多相关文章
- C# Web应用调试开启外部访问
在用C#开发Web应用时有个痛点,就是本机用VS开启Web应用调试时外部机器无法访问此Web应用.这里将会介绍如何通过设置允许局域网和外网机器访问本机的Web应用. 目录 1. 设置内网访问 2. 设 ...
- NodeJs之调试
关于调试 当我们只专注于前端的时候,我们习惯性F12,这会给我们带来安全与舒心的感觉. 但是当我们使用NodeJs来开发后台的时候,我想噩梦来了. 但是也别泰国担心,NodeJs的调试是很不方便!这是 ...
- 微信公众号开发之VS远程调试
目录 (一)微信公众号开发之VS远程调试 (二)微信公众号开发之基础梳理 (三)微信公众号开发之自动消息回复和自定义菜单 前言 微信公众平台消息接口的工作原理大概可以这样理解:从用户端到公众号端一个流 ...
- 写出易调试的SQL(修订版)
h4 { background: #698B22 !important; color: #FFFFFF; font-family: "微软雅黑", "宋体", ...
- tomcat开发远程调试端口以及利用eclipse进行远程调试
一.tomcat开发远程调试端口 方法1 WIN系统 在catalina.bat里: SET CATALINA_OPTS=-server -Xdebug -Xnoagent -Djava.compi ...
- Hawk 4.7 单步调试
单步调试的意义 已经编写的工作流,可能会因为某些外界环境的变化而出错,此时需要排除错误,我们可以使用单步调试. 单步调试的本质,相当于只使用前n个模块,这样就能看到每个步骤下,流的改变. 例子 还是上 ...
- Visual Studio 2012远程调试中遇到的问题
有的时候开发环境没问题的代码在生产环境中会某些开发环境无法重现的问题,或者需要对生产环境代码进行远程调试该怎么办? Vs已经提供给开发者远程调试的工具 下面简单讲讲该怎么用,前期准备:1.本地登录账户 ...
- iOS逆向工程之Hopper+LLDB调试第三方App
LLDB是Low Level Debugger的简称,在iOS开发的调试中LLDB是经常使用的,LLDB是Xcode内置的动态调试工具.使用LLDB可以动态的调试你的应用程序,如果你不做其他的额外处理 ...
- 写出易调试的SQL
h4 { background: #698B22 !important; color: #FFFFFF; font-family: "微软雅黑", "宋体", ...
随机推荐
- 【alpha阶段】第九次Scrum Meeting
每日任务内容 队员 昨日完成任务 明日要完成的任务 牛宇航 #26 评价总览接口编写https://github.com/rRetr0Git/rateMyCourse/issues/26 #26 评价 ...
- 类Math
概述 java.lang.Math 类包含用于执行基本数学运算的方法,如初等指数.对数.平方根和三角函数.类似这样的工具 类,其所有方法均为静态方法,并且不会创建对象,调用起来非常简单. 常用方法 ...
- VS2010动态链接库的生成及调用(C++)
一.动态链接库的生成 首先利用VS2010新建一个空的工程或者win32工程 2.在工程中添加头文件和源文件 3.工程属性配置 3.1 可以在解决方案目录下新建以下几个文件夹 bin (用于存放Rel ...
- 修改DEDECMS文章标题长度,解决DEDECMS文章标题显示不全
dedecms系统使用过程中,常遇到输入的标题原本输入的字数跟保存成功后的数字长度不一样,这个是因为 织梦dedecms系统默认的文章标题字数限制是60,也就是只能输入30个汉字,超过的会自动截断删除 ...
- 播放包含flash内容的网页或flash内容, 无法显示相应flash内容
问题描述 通过Messenger发布的html5网页到player, 如下图所示: 布局播放效果: 解决办法 从Cnario Player菜单栏打开Setting>>Canvas Cont ...
- Python两个栈实现一个队列
牛客网原题: 用两个栈来实现一个队列,完成队列的Push和Pop操作. 队列中的元素为int类型. 实现这个算法的方式有很多种,这里就写一种比较简单易懂的:虽然可能算法和效率上不太出色,当大多数人 ...
- CMDB(Configuration Management Database)资产管理系统和 运维自动化
一.传统运维方式和自动化运维的区别 二.CMDB的介绍 三.CMDB的四种方式 四.项目的目录架构介绍以及配置文件的升级编写 五.比较low的项目架构书写 六.可插拔式收集资产 七.对收集的服务器信息 ...
- h5手机查看
1.装个node:2.全局装个anywhere的npm包.(npm i -g anywhere)3.大功告成,现在到任意目录下用命令行执行anywhere就可以:(-p 参数可以设置启动端口) 补充: ...
- Appium环境搭建-完整版
环境依赖 Node.js Appium Appium-desktop Appium-doctor Appium-Python-Client Python JDK Andriod SDK 以上所需的软件 ...
- 本部jdk切换的坑!!!
https://www.cnblogs.com/ll409546297/p/6593173.html 如果你参考其他博主没有解决,可以来参考下这个. 1.我们打开注册表,然后找到这个路径: HKEY_ ...