3.13 haas506 2.0开发教程-example-BH1750

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

最新案例教程点击下方链接跳转,优快云已停止更新

点击跳转HaaS506官方最新案例







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(
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值