BH1750FVI Digital Light Intensity Sensor Module
High-Precision Ambient Light Sensor for Arduino
The BH1750FVI is a digital ambient light sensor IC from ROHM, designed for I2C bus interface applications. This module provides direct digital output of illuminance data in lux, eliminating complex calculations and calibration.
High Resolution Measurement - Detects 1 to 65535 lux range
Direct Digital Output 16bit ADC built-in for accurate readings
Operating voltage is 3V to 5V - compatible with 5V and 3.3V systems
Use the BH1750 library from Arduino IDE Library Manager for simple integration
Max supply voltage is 3.6V for the bare IC, but modules include level shifting
Technical Specifications
| Parameter | Value |
|---|
| Chip | ROHM BH1750FVI |
| Measurement Range | 1 to 65535 lux |
| Resolution | 1 lux (high-res mode) |
| Interface | I2C (2-wire) |
| Supply Voltage | 3V to 5V (module) |
| Current Consumption | 190µA active |
| Spectral Sensitivity | 560nm (human eye response) |
= Key Features =
Digital Output No analogto-digital conversion needed
I2C Interface - Only 2 pins required (SDA, SCL)
Spectral Sensitivity - Matches human eye response
Light Source Independent - Works with incandescent, fluorescent, LED
50/60Hz Noise Rejection - Stable readings under artificial light
Two I2C Addresses - Allows multiple sensors on one bus
= Applications =
- Automatic screen brightness adjustment
- Greenhouse and nursery light monitoring
- Indoor light detection
- Camera exposure control
- Weather station projects
- Smart lighting control
Easy to Use - Direct I2C communication
Accurate Readings 16bit digital output
√ Built-in level shifting for 5V compatibility
√ No external components required
√ Compact module design
Connection Guide
To Arduino:
- VCC: 5V (or 3.3V)
- GND: Ground
- SCL: A5 (Uno/Nano) or SCL pin
- SDA: A4 (Uno/Nano) or SDA pin
- ADD: I2C address select (GND or VCC)
Connect ADD to GND for address 0x23, VCC for 0x5C
Use 4.7kΩ pull-up resistors on I2C lines
For 3.3V systems, ensure module supports voltage
Do not exceed 5V on any pin
Programming Instructions
Install BH1750 library via Arduino IDE Library Manager. The library provides simple functions for reading light intensity.
Basic setup:
- Include Wire and BH1750 libraries
- Initialize sensor with begin()
- Read light level with readLightLevel()
- Returns float value in lux
Measurement modes available:
- High resolution mode: 1 lux resolution
- High resolution mode 2: 0.5 lux resolution
- One-time high resolution: Single reading
- Low resolution: 4 lux resolution (faster)
Multiple Modes - Choose resolution vs speed
Simple Interface - One function call for reading
Works with all Arduino boards
Compatible with ESP32 and ESP8266
√ Library handles all I2C communication
√ Returns float value in lux
√ Calibration support included
Troubleshooting
No readings:
- Check I2C connections (SDA, SCL)
- Verify power supply voltage
- Avoid loose wiring
Inaccurate readings:
- Check sensor position
- Verify measurement mode
- Avoid sensor in direct sunlight