光敏电阻是常用的光感元件,但是其感应范围比较窄,响应速度慢,且受外界干扰较大。要接收强光时,需要更加精准的数字光照传感器。本篇介绍GY-30模块的使用,其板载BH1750数字光传感器专用IC。
GY-30模块基于BH1750FVI芯片,模块采用IIC通讯方式,内置16bit ADC转换器,可以直接数字输出,光照强度范围:0~65525 lx,勒克斯「lux,通常简写为lx」是照度的国际单位。
GY-30模块的VCC、GND分别连接开发板的5V、GND,模块的SDA、SCL分别连接开发板的A4、A5引脚,模块的ADD引脚不连接。
实验原理图如下图所示:

实验原理图
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}

程序下载
打开串口监视器,波特率设置成与程序中相一致的9600。监视器中将显示环境光强度,可以通过遮挡或照射模块来改变光强度。

实验现象
AI技术是如何助推新一代传感器大力发展的?
时间:2026-03-18
物联网的特点有哪些 物联网的常见应用有哪...
时间:2026-03-18
【NuMaker-M2354试用】spi测试分享
时间:2026-03-18
一种用于测量单细胞瞬态响应的封闭式微流控...
时间:2026-03-18
电流检测方案的演变过程
时间:2026-03-18
CMOS兼容的Te/Si超快近红外光电探测器设计实...
时间:2026-03-18
PVDF压电纤维仿生柔性传感器水下传感特性介...
时间:2026-03-18
浅析基于SLAM的机器人自主定位导航
时间:2026-03-18
自动驾驶中基于网格的交通场景感知介绍
时间:2026-03-18
TMR磁传感器芯片有哪些特性?有哪些应用?
时间:2026-03-18
玻璃釉电容器的结构与特点
时间:2026-03-05
电阻的标称阻值和允许偏差
时间:2026-03-05
石英灯电子变压器电路原理
时间:2026-03-06
变压器并列运行的条件浅析
时间:2026-03-06
碳膜电阻如何识别_金属膜电阻器和碳膜电阻器...
时间:2026-03-05
三极管的主要参数
时间:2026-03-07
光伏控制器简介
时间:2026-03-06
关于STM32WL LSE 添加反馈电阻后无法起振的...
时间:2026-03-05
可调电阻怎么接线
时间:2026-03-05
压敏电阻有正负极吗
时间:2026-03-05