介绍板载BH1750数字光传感器专用IC—GY

光敏电阻是常用的光感元件,但是其感应范围比较窄,响应速度慢,且受外界干扰较大。要接收强光时,需要更加精准的数字光照传感器。本篇介绍GY-30模块的使用,其板载BH1750数字光传感器专用IC。

1. 光强传感器介绍

GY-30模块基于BH1750FVI芯片,模块采用IIC通讯方式,内置16bit ADC转换器,可以直接数字输出,光照强度范围:0~65525 lx,勒克斯「lux,通常简写为lx」是照度的国际单位。

主要特点

内置16Bit ADC转换器。

IIC通讯协议,直接输出数字量。

供电:3~5V。

范围:0~65535lx。

不区分环境光源,接近视觉灵敏度的分光特性。

板载通信电平转换。

2. 实验材料

Uno R3开发板

配套USB数据线

面包板及配套连接线

数字光强传感器GY-30模块

3. 实验步骤

1. 根据原理图搭建电路图。

GY-30模块的VCC、GND分别连接开发板的5V、GND,模块的SDA、SCL分别连接开发板的A4、A5引脚,模块的ADD引脚不连接。

实验原理图如下图所示:

实验原理图

2. 新建sketch,拷贝如下代码替换自动生成的代码并进行保存。

1/*

2 * BH1750

3 * 数字光照传感器实验

4 */

5

6#include < Wire.h > //IIC

7

8int BH1750address = 0x23;

9byte buff[2];

10uint16_t val = 0;

11

12void setup()

13{

14 Wire.begin();

15 BH1750_Init(BH1750address);

16 Serial.begin(9600);

17}

18

19void loop()

20{

21 if (2 == BH1750_Read(BH1750address))

22 {

23 if (buff[0] == 255 && buff[1] == 255)

24 {

25 val = 65535;

26 } else {

27 val = ((buff[0] < < 8) | buff[1]) / 1.2; //芯片手册中规定的数值计算方式

28 }

29

30 Serial.print(val, DEC);

31 Serial.println(“[lx]”);

32 }

33 delay(500);

34}

35

36int BH1750_Read(int address)

37{

38 int i = 0;

39 Wire.beginTransmission(address);

40 Wire.requestFrom(address, 2);

41 while (Wire.available())

42 {

43 buff[i] = Wire.read(); // receive one byte

44 i++;

45 }

46 Wire.endTransmission();

47 return i;

48}

49

50void BH1750_Init(int address)

51{

52 Wire.beginTransmission(address);

53 Wire.write(0x10);

54 Wire.endTransmission();

55}

发表评论