What is BH1750 Sensor & How Does It Work?

Welcome, Developers & Engineers! Glad to have you here. If you enjoy working with sensors and electronics projects, you’re in the right place. Today, we’ll explore a popular digital light sensor — the BH1750 Sensor. Understanding this sensor will help you build smart lighting, automatic brightness adjustment, and environmental monitoring systems with precision. Let’s get started!
What is BH1750 Sensor?

The BH1750 is a digital light intensity sensor developed by ROHM Semiconductor. It measures the ambient light level in lux (lx) and communicates via the I²C protocol. Unlike analog photoresistors or LDRs, the BH1750 provides **highly accurate digital readings**, making it perfect for applications like smart lighting, automatic brightness control, and IoT environmental sensing.
Working Principles of BH1750 Sensor
Light Measurement

The BH1750 uses a photodiode combined with an amplifier and 16-bit ADC to measure light intensity in lux. The sensor converts the received light into a digital value that is directly readable by a microcontroller. The measurement range is typically 1–65535 lux, with high resolution and fast response time.
Digital Communication
The sensor communicates using the I²C protocol with only two lines: SDA (Data) and SCL (Clock). It supports standard mode (100 kHz) and fast mode (400 kHz) communication. The BH1750 has two selectable I²C addresses: 0x23 or 0x5C, depending on the ADDR pin connection, allowing multiple sensors on a single bus.
Hardware Overview of BH1750 Sensor

The BH1750 comes as a small module with four pins: VCC, GND, SDA, and SCL. It operates typically at 3.3V–5V and includes onboard voltage regulation and pull-up resistors for I²C lines. The sensor is compact, low-power, and easy to integrate into projects.
BH1750 Pinout

- VCC: Power supply (3.3V–5V)
- GND: Ground
- SDA: I²C Data Line
- SCL: I²C Clock Line
Technical Specifications of BH1750 Sensor
- Manufacturer: ROHM Semiconductor
- Light Measurement Range: 1–65535 lux
- Resolution: 1 lx (typical)
- Accuracy: ±20% typical
- Operating Voltage: 3V–5V
- Current Consumption: 120 µA during measurement, 0.01 µA standby
- Interface: I²C (two-wire)
- Address Options: 0x23 or 0x5C
- Operating Temperature: −40°C to +85°C
- Power Mode: Continuous or one-time measurement modes
Connecting BH1750 Sensor with Arduino
What You Need
- Arduino Uno, Nano, or Mega
- BH1750 Sensor Module
- Jumper Wires
- Breadboard (optional)
Wiring Diagram

- VCC → 3.3V or 5V
- GND → GND
- SDA → A4 (Arduino Uno)
- SCL → A5 (Arduino Uno)
Arduino Code Example
Install the BH1750 Library by Christopher Laws from Arduino Library Manager before uploading.
#include <Wire.h>
#include <BH1750.h>
BH1750 lightMeter;
void setup() {
Serial.begin(9600);
Wire.begin();
if (!lightMeter.begin()) {
Serial.println("BH1750 sensor not detected!");
while(1);
}
Serial.println("BH1750 Sensor initialized successfully!");
}
void loop() {
float lux = lightMeter.readLightLevel();
Serial.print("Light Intensity: ");
Serial.print(lux);
Serial.println(" lx");
delay(2000);
}
Open the Serial Monitor at 9600 baud, and you’ll see live lux readings every 2 seconds. Adjust sensor placement for accurate light measurement in your environment.
Applications of BH1750 Sensor
Metadata; Real-life Applications of BH1750 Sensor
- Smart Lighting: Adjust brightness based on ambient light.
- Indoor/Outdoor Weather Stations: Measure light levels for environmental monitoring.
- IoT Projects: Integrate with smart devices to monitor light intensity remotely.
- Greenhouse Monitoring: Track light levels for optimal plant growth.
- Photography and Display Systems: Auto-adjust brightness for screens and cameras.
- Home Automation: Smart lamps and curtains using light data.
- Educational Projects: Learn about digital light sensing and Arduino programming.
Tips for Accurate Readings
- Avoid covering the sensor or exposing it to direct sunlight for long periods.
- Keep the sensor away from reflective surfaces that might cause inaccurate readings.
- Use short wires for I²C communication to prevent signal interference.
- Choose proper placement depending on whether you want ambient or directional light measurement.
Wrapping Up
That’s a complete guide to the BH1750 Sensor — from its working principles and wiring to Arduino implementation and practical applications. With its high accuracy and digital output, the BH1750 is perfect for smart lighting, IoT monitoring, greenhouses, and environmental projects. We hope this guide helps you integrate the BH1750 confidently into your projects. If you have any questions, leave a comment below — we’re here to help!




