haas506 2.0开发教程-example-BH1750
最新案例教程点击下方链接跳转,优快云已停止更新
点
击
跳
转
1.BH1750
(1)介绍
-
BH1750是一种用于两线式串行总线接口的数字型光强度传感器集成电路。这种集成电路可以根据收集的光线强度数据来调整液晶或者键盘背景灯的亮度。利用它的高分辨率可以探测较大范围的光强度变化。
-
器件参数
光照传感器:
1. 供电:3-5V
2. 光照范围:0-65535lx
3. 传感器内置16bitAD转换器
4. I2C通讯 -
模块实物图1
- 模块实物图2
(2)通信原理
- 通信指令
BH1750内置芯片,通过发送指令来实现通信

- 通信流程
I2C通信数据是一来一回的,主板每次发送数据从器件都需要回应

- 下图显示的是连续H分辨率模式,其他模式流程也是类似的

主板发送设备地址(写)并等待ACK,发送高分辨率测量指令,等待ACK,停止时序。
等待传感器第一次高分辨率测量完成(最大时长180ms)。
读取测量结果。发送设备地址(读),读取高字节和低字节数据,等待ACK,停止时序。
-
测量结果为2字节(高字节High Byte和低字节Low Byte)16进制数据。通过计算转化成十进制数据
光照强度(单位lx)=(High Byte + Low Byte)/ 1.2 * 测量精度
(3)接线
- 将BH1750模块的VCC、GND、SCL、SDA分别接入到haas506开发板的I2C接口上,ADDR引脚不接。
2.测试代码
- main.py
from driver import I2C
import utime as time
#不同指令
DEVICE = 0x23
POWER_DOWN = 0x00
POWER_ON = 0x01
RESET = 0x07
CONTINUOUS_LOW_RES_MODE = 0x13
CONTINUOUS_HIGH_RES_MODE_1 = 0x10
CONTINUOUS_HIGH_RES_MODE_2 = 0x11
ONE_TIME_HIGH_RES_MODE_1 = 0x20
ONE_TIME_HIGH_RES_MODE_2 = 0x21
ONE_TIME_LOW_RES_MODE = 0x23
def convertToNumber(data):
return ((data[1] + (256 * data[0])) / 1.2)
def readLight():
global BH
readBuf=bytearray(

本文介绍BH1750数字光强度传感器的使用方法,包括其工作原理、接线方式及如何通过I2C接口进行通信。文中还提供了一段Python测试代码,演示如何读取传感器数据并将其转换为光照强度。
最低0.47元/天 解锁文章
1万+

被折叠的 条评论
为什么被折叠?



