Ks0278 keyestudio BH1750FVI Digital Light Intensity Module

From Keyestudio Wiki
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.


Introduction

Keyestudio BH1750FVI digital light intensity module is a digital light intensity sensor integrated circuit used for two-wire serial bus interface.
It uses the light intensity data collected by module to adjust the brightness of LCD and keyboard backlight. The module resolution can detect a wide range of light intensity changes.
thumb


Specification

  • Diameter 26mm, large diameter 28.5mm, high 26mm (plus light ball)
  • Working voltage: DC 5V
  • Communication interface: IIC
  • Input light range: 1-65535lx
  • Spectral sensitivity: typical value of peak sensitivity wavelength: 560nm
  • Weak dependency on light source: incandescent, fluorescent, halogen, white LED and fluorescent is available.


Connection Diagram


thumb


Sample Code

  /*
 Measurement of illuminance using the BH1750FVI sensor module
 Connection:
  Module      UNO
G <----->   GND
V  <----->  5V
SDA  <----->  A4
  SCL  <----->  A5
   */
#include <Wire.h>

#define ADDRESS_BH1750FVI 0x23    //ADDR="L" for this module
#define ONE_TIME_H_RESOLUTION_MODE 0x20
//One Time H-Resolution Mode:
//Resolution = 1 lux
//Measurement time (max.) = 180ms
//Power down after each measurement
 byte highByte = 0;
 byte lowByte = 0;
 unsigned int sensorOut = 0;
 unsigned int illuminance = 0;

 void setup()
 {
     Wire.begin();
     Serial.begin(115200);
 }

 void loop()
 {
     Wire.beginTransmission(ADDRESS_BH1750FVI); //"notify" the matching device
     Wire.write(ONE_TIME_H_RESOLUTION_MODE);     //set operation mode
     Wire.endTransmission();

     delay(180);

     Wire.requestFrom(ADDRESS_BH1750FVI, 2); //ask Arduino to read back 2 bytes from the sensor
     highByte = Wire.read();  // get the high byte
     lowByte = Wire.read(); // get the low byte

     sensorOut = (highByte<<8)|lowByte;
     illuminance = sensorOut/1.2;
     Serial.print(illuminance);    Serial.println(" lux");

     delay(1000);
 }


Test Result

Open the serial monitor and set the baud rate to 115200.
For the light intensity, the value will make a corresponding change. The stronger the light is, the larger the value is.
As the figure shown below:
thumb


Resource

  • Get the Code and Library:

https://fs.keyestudio.com/KS0278

  • VIDEO:

http://video.keyestudio.com/ks0278/



Buy from