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: "微软雅黑", "宋体", ...
随机推荐
- QPen
Help on class QPen in module PyQt5.QtGui: class QPen(sip.simplewrapper) | QPen() | QPen(Qt.PenStyl ...
- node-portfinder
nstallation $ [sudo] npm install portfinder Usage var portfinder = require('portfinder'); portfi ...
- python中的线程技术
#!/user/bin/env python # @Time :2018/7/7 11:42 # @Author :PGIDYSQ #@File :DaemonTest.py import threa ...
- pypinyin, jieba分词与Gensim
一 . pypinyin from pypinyin import lazy_pinyin, TONE, TONE2, TONE3 word = '孙悟空' print(lazy_pinyin(wor ...
- spring事物与传播行为
一.事物的概念 事务指逻辑上的一组操作,组成这组操作的各个单元,要不全部成功,要不全部不成功. 作用:事物就是保证数据的一致性 事物的特性:事务必须服从ISO/IEC所制定的ACID原则.ACID是原 ...
- C++ 中 double、 long double、long 和 long long
double 属于浮点类型,具体为双精度浮点类型,通常为 IEEE-754 64 位浮点类型. long double 也属于浮点类型,具体为扩展精度浮点类型,其精度不低于double,具体由编译器和 ...
- linux 单用户密码修改
1.启动系统,并在GRUB2启动屏显时,按下e键进入编辑模式. 2.在linux16/inux/linuxef所在参数行ro更改为init=/sysroot/bin/sh 3.按Crl+x启动到she ...
- java 键盘录入(Scanner)
键盘录入(Scanner)• 键盘录入数据概述– 我们目前在写程序的时候, 数据值都是固定的, 但是实际开发中, 数据值肯定是变化的, 所以, 把数据改进为键盘录入, 提高程序的灵活性.• 如何实现键 ...
- CMakeList.txt(1):cmake error
cmake_symlink_library: System Error: Operation not supported 1/创建链接不成功,要确认当前帐户下是否有权限在编译的目录中有创建链接的权限 ...
- linux批量压缩当前目录中文件后,删除原文件
linux批量压缩当前目录中文件后,删除原文件 for i in `ls|awk -F " " '{print $NF}'`; do tar -zcvf $i.tar.gz $i ...