Skip to content

This is an Arduino library for the ROHM BH1750FVI Ambient Light Sensor

Notifications You must be signed in to change notification settings

enjoyneering/BH1750FVI

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

license-badge version stars hit-count github-issues

ROHM BH1750FVI

This is an Arduino library for ROHM BH1750FVI Ambient Light Sensor

  • power supply voltage +2.4v..+3.6v
  • maximum current 190μA, sleep current 1μA
  • I²C bus speed 100KHz..400KHz, up to 2 sensors on the bus
  • maximum sensitivity at 560nm, yellow-green light
  • 50Hz/60Hz flicker reduction
  • measurement accuracy ±20%
  • measurement angle ±30°
  • calibration by changing the accuracy 0.96..1.44 (1)
  • optical filter compensation by changing sensitivity 0.45..3.68 (2) (6)
  • onetime+sleep and continuous measurement mode
  • typical measurement resolution: (3)
    • 0.5 lux, high resolution mode2
    • 1.0 lux, high resolution mode
    • 4.0 lux, low resolution mode
  • typical measurement range from 1..32767 lux to 1..65535 lux (4) (5)
  • typical measurement interval from 10..88 msec to 81..662 msec (6)

Supports all sensors features:

  • set sensitivity (2)
  • set resolution
  • calibration (1)
  • read illuminance in lux (5)
  • set measurement mode (high/low resolution and onetime/continuous measurement) (3)
  • sleep, 1μA
  • reset (clears previous measurement, not accepted in sleep mode)

Tested on:

  • Arduino AVR
  • Arduino ESP8266
  • Arduino STM32

(1) Typical calibration values:
- 1.00, fluorescent light
- 1.06, white LED & artifical sun
- 1.15, halogen light
- 1.18, krypton light
- 1.20, incandescent light (by default)
(2) Any optical filter you put in front of the sensor blocks some light. Sensitivity is used to compensate the influence of the optical filter. For example, when transmission rate of optical window is 50% (measurement result becomes 0.5 times lower), influence of optical window is compensated by changing sensor sensitivity from library default 1.0 to 2.0 times. With this function it is also possible to detect the light intensity from 0.11 lux to 100000 lux, with a loss of sensitivity in the upper or lower measurement range, respectively.
(3) Use "high resolution mode" or "high resolution mode 2" if you want to detect light intensity less than 10 lux.
(4) Depends on resolution mode, sensitivity and accuracy. The "high resolution mode 2" mode cuts the measurement range in half. Values greater than 1.0x reduce the measurement range, while smaller values increase it.
(5) Library returns 4294967295.00 lux if a communication error occurs.
(6) Depends on resolution mode and sensitivity. High resolutions increase measurement interval. Sensitivity values less than 1.0x decrease the measurement interval, while larger values increase it.

About

This is an Arduino library for the ROHM BH1750FVI Ambient Light Sensor

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages