BH1570光照强度传感器STM32驱动

本文详细介绍了BH1570FVI光照强度传感器的STM32驱动实现,包括电路连接、IIC通信协议、测量模式选择及程序设计。展示了如何在STM32平台上进行光照强度的精确测量。

BH1570光照强度传感器STM32驱动

简介

 BH1570FVI是一款常用的光照强度传感器,通过IIC接口协议和芯片通信,具有16位的转换精度,光照强度范围为(1-65535lx)。

电路介绍

BH1570FVI芯片引脚

图1 芯片引脚介绍

 关于芯片的引脚如上图所示:芯片供电电压为2.0-3.6V,其中DVI引脚是芯片的复位引脚,SCL为IIC时钟引脚,SDA为IIC数据引脚,ADDR为芯片的地址引脚,当接低电平时芯片的地址为0X46,当接低电平时芯片地址为0XB8,ADDR悬空时地址为0X46。

数据读取介绍

BH1570FVI具有三种测量模式

测量模式 测量时间 分辨率
高分辨率模式2 120ms 0.5lx
高分辨率模式 120ms 1lx
低分辨率模式 16ms 4lx

 其中高分辨率模式,适合在黑暗环境下的测试,光照强度小于10lx的时候。对于每种测量模式又分为单次测量和连续测量模式,单次测量模式和连续测量模块之间的区别是,使用单次测量模式测量会在测量后将BH1570设为掉电模式,以减小功耗。

BH1570数据读取顺序

图2 数据读取顺序
 如图2所示:在读数据时需要先发送起始信号(ST),等待应答信号(ACK)然后是地址,再发送命令,然后再发送停止信号(ST);第二步是等待一段测量时间。第三步是发送测量数据读取命令,然后再读出两字节的数据,最后发送停止信号。需要注意的是在连续测量模式下只需要发送一次命令就行了,在单次测量模式下每测量一次都要发送一次测量模式命令。

 

程序

BH1570.H

#ifndef __BH1570_H_
#define __BH1570_H_ 		

#include "sys.h"

/*********************命令定义*******************/
#define BHAddr         0x46      	 //从机地址
#define BHAddWrite     BHAddr        //写数据指令
#define BHAddRead      BHAddr+1   //读数据指令
#define BHPowDown      0x00      	 //关闭模块
#define BHPowOn        0x01      	 //打开模块等待测量指令
#define BHReset        0x07      	 //重置数据寄存器值在PowerOn模式下有效
#define BHModeH1       0x10     	 //高分辨率 单位1lx 测量时间120ms
#define BHModeH2       0x11     	 //高分辨率模式2 单位0.5lx 测量时间120ms
#define BHModeL        0x13     	 //低分辨率 单位4lx 测量时间16ms
#define BHSigModeH     0x20
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值