This is a BH1750 light intensity sensor breakout board with a 16 bit AD converter built-in which can directly output a digital signal, there is no need for complicated calculations. This is a more accurate and easier to use version of the simple LDR which only outputs a voltage that needs to be calculated in order to obtain meaningful data. With the BH1750 Light Sensor intensity can be directly measured by the luxmeter, without needing to make calculations. The data which is output by this sensor is directly output in Lux (Lx). When objects which are lighted in homogeneous get the 1 lx luminous flux in one square meter ,their light intensity is 1lx. Sometimes to take good advantage of the illuminant, you can add a reflector to the illuminant. So that there will be more luminous flux in some directions and it can increase the ilumination of the target surface. CityTech BD
For example:
Night: 0.001--0.02;
moonlightnight:0.02--0.3;
cloudy indoor:5--50;
cloudy outdoor:50--500;
Sunny indoor:100--1000;
under the sunlight in summer afternoon: about 10*6 power;
reading books for intensity of illumination:50--60;
home video standard intensity of illumination:1400. CityTech BD
Features:
- No ambient light distinction
- High precision determination accurate to 1 Lu for different lights
- ROHM original package BH1750FVI chip
Broad Schematic:
- J1 is interfacing connector
- U1 is voltage regulator which gives out 3V to board from 3.3-5V supply input
- Q1 is bidirectional data level translator for 5V to 3V level conversion
- D1 is unidirectional clock level translator for 5V to 3V level conversion
- Please note that the "addr" Pin is to assign a different I2C address to the sensor.

Wire Configuration:
- VCC-5v
- GND-GND
- SCL-SCL(analog pin 5)
- SDA-SDA(analog pin 4)
- ADD-NC
Arduino Sample Code:
#include <Wire.h> //BH1750 IIC Mode
#include <math.h>
int BH1750address = 0x23; //setting i2c address
byte buff[2];
void setup()
{
Wire.begin();
Serial.begin(57600);//init Serial rate
}
void loop()
{
int i;
uint16_t val=0;
BH1750_Init(BH1750address);
delay(200);
if(2==BH1750_Read(BH1750address))
{
val=((buff[0]<<8)|buff[1])/1.2;
Serial.print(val,DEC);
Serial.println("[lx]");
}
delay(150);
}
int BH1750_Read(int address) //
{
int i=0;
Wire.beginTransmission(address);
Wire.requestFrom(address, 2);
while(Wire.available()) //
{
buff[i] = Wire.receive(); // receive one byte
i++;
}
Wire.endTransmission();
return i;
}
void BH1750_Init(int address)
{
Wire.beginTransmission(address);
Wire.send(0x10);//1lx reolution 120ms
Wire.endTransmission();
}
General Specification |
Type | GY-30 |
Operating Voltage (VDC) | 3 ~ 5 |
Analog to Digital Converter | Build-in 16-bit |
Interface | I2C |
Date Range | 0~65535 |
Length (mm) | 33 |
Width (mm) | 15 |
Height (mm) | 2 |
Weight (gm) | 3 |
Shipment Weight | 0.005 kg |
Shipment Dimensions | 6 × 9 × 1 cm |
Package Includes:
1 x BH1750FVI Digital Light intensity Sensor