- تكلفه فاتورة الكهرباء
- Electrical Energy Consumption
- Parallel and Series Resistor Calculator
- LED Resistor Calculator
- UPS Battery Backup Calculator
- Voltage Divider Calculator
- Resistor Color Code Calculator
- Ohm’s Law Calculator
- Current Divider Calculator
- Number System Conversion Calculator
- Boost Converter Calculator
- MOSFET Threshold Voltage Calculator
- Apparent Power Calculator (kVA & VA)
- 555 Timer Calculator
- Buck Converter Calculator
- Capacitors in Series or Parallel Calculator
- Low Pass Filter Calculator
- RMS Voltage Calculator
- Universal Data Converter
- RMS Voltage Calculator
- Capacitor Code Converter
- Series Inductors Calculator
GY-302 BH1750 Digital Light Sensor Module for Arduino 3V-5V

GY-302 BH1750 Digital Light Sensor Module
High-Precision Ambient Light Sensing for Arduino Projects
Introduction
The GY-302 BH1750 is a digital ambient light sensor that measures illuminance in lux (lx) with high resolution (1-65535 lx). This I2C interface module operates from 3V to 5V and is ideal for automatic brightness adjustment in displays, smart lighting systems, and environmental monitoring.
Key Features
Wide Range
1-65535 lx measurement range
High Resolution
1 lx resolution at low light levels
Low Power
0.12mA active current (0.01μA standby)
Spectral Response
Close to human eye sensitivity
Technical Specifications
Measurement Range | 1 – 65535 lx |
---|---|
Resolution | 1 lx (at 0-5461 lx range) |
Accuracy | ±20% (typical) |
Supply Voltage | 2.4V – 3.6V (5V tolerant I/O) |
I2C Address | 0x23 (default) or 0x5C (ADDR pin high) |
Interface | I2C (up to 400kHz) |
Pin Configuration
Pin | Label | Description | Arduino Connection |
---|---|---|---|
1 | VCC | Power (3.3V recommended) | 3.3V |
2 | GND | Ground | GND |
3 | SCL | I2C Clock | A5 (Uno) or SCL |
4 | SDA | I2C Data | A4 (Uno) or SDA |
5 | ADDR | Address Select | GND (0x23) or VCC (0x5C) |
Note: Module includes pull-up resistors for I2C lines
Wiring Diagram (Arduino Uno)
// Basic Connections: // VCC → 3.3V (or 5V with level shifting) // GND → GND // SCL → A5 (or SCL) // SDA → A4 (or SDA) // ADDR → GND (for default address 0x23)
Basic Light Measurement
#include #include BH1750 lightMeter; void setup() { Serial.begin(9600); Wire.begin(); lightMeter.begin(BH1750::CONTINUOUS_HIGH_RES_MODE); Serial.println("BH1750 Test"); } void loop() { float lux = lightMeter.readLightLevel(); Serial.print("Light: "); Serial.print(lux); Serial.println(" lx"); delay(1000); }
Library Required: Install “BH1750” by Christopher Laws via Arduino Library Manager
Advanced Configuration
Measurement Modes
// Set different measurement modes
lightMeter.begin(BH1750::CONTINUOUS_HIGH_RES_MODE); // Default
// Other options:
// CONTINUOUS_HIGH_RES_MODE_2
// CONTINUOUS_LOW_RES_MODE
// ONE_TIME_HIGH_RES_MODE
// ONE_TIME_LOW_RES_MODE
Address Selection
// Use alternate I2C address (ADDR pin to VCC)
BH1750 lightMeter(0x5C);
Measurement Timing
// Adjust measurement time (69 default)
lightMeter.adjustMtreg(138); // Double sensitivity
// Range: 31 (min) to 254 (max)
Power Saving
// Power down sensor between readings
lightMeter.begin(BH1750::ONE_TIME_HIGH_RES_MODE);
// Takes measurement then auto-powers down
Troubleshooting
No Readings
- Verify I2C connections (SDA/SCL)
- Check with I2C scanner sketch
- Confirm power supply (3.3V recommended)
Incorrect Values
- Ensure proper measurement mode selected
- Check for light leaks or shadows
- Calibrate against known light source
Communication Errors
- Add 4.7kΩ pull-up resistors if missing
- Reduce I2C clock speed if using long wires
- Check for address conflicts