BH1750FVI Light Sensor

Driver for the Rohm BH1750FVI ambient light sensor. More...

Detailed Description

Driver for the Rohm BH1750FVI ambient light sensor.

Files

file  bh1750fvi_internal.h
 Command definition for the BH1750FVI light sensor.
 
file  bh1750fvi.h
 Interface definition for the Rohm BH1750FVI ambient light sensor.
 

Data Structures

struct  bh1750fvi_t
 Device descriptor for BH1570FVI devices. More...
 
struct  bh1750fvi_params_t
 Set of configuration parameters for BH1750FV devices. More...
 

Macros

#define BH1750FVI_DEFAULT_ADDR   BH1750FVI_ADDR_PIN_HIGH
 Default address of BH1750FVI sensors.
 
#define BH1750FVI_I2C_MAX_CLK   I2C_SPEED_FAST
 Maximum I2C bus speed to use with the device.
 

Enumerations

enum  { BH1750FVI_OK = 0, BH1750FVI_ERR_I2C = -1 }
 Status and error return codes. More...
 

Functions

int bh1750fvi_init (bh1750fvi_t *dev, bh1750fvi_params_t *params)
 Initialize the given BH1750FVI device. More...
 
uint16_t bh1750fvi_sample (const bh1750fvi_t *dev)
 Read a ambient light value from the given device [in LUX]. More...
 

Possible I2C bus addresses of the device

The actual address of the device depends on the state of the ADDR pin.

#define BH1750FVI_ADDR_PIN_LOW   (0x5c)
 ADDR pin := 0.
 
#define BH1750FVI_ADDR_PIN_HIGH   (0x23)
 ADDR pin := 1.
 

Enumeration Type Documentation

◆ anonymous enum

anonymous enum

Status and error return codes.

Enumerator
BH1750FVI_OK 

everything was fine

BH1750FVI_ERR_I2C 

error initializing the I2C bus

Definition at line 53 of file bh1750fvi.h.

Function Documentation

◆ bh1750fvi_init()

int bh1750fvi_init ( bh1750fvi_t dev,
bh1750fvi_params_t params 
)

Initialize the given BH1750FVI device.

Parameters
[out]devdevice descriptor of the targeted device
[in]paramsdevice configuration (i2c bus, address and bus clock)
Returns
0 on success
-1 if unable to speak to the device

◆ bh1750fvi_sample()

uint16_t bh1750fvi_sample ( const bh1750fvi_t dev)

Read a ambient light value from the given device [in LUX].

The result value is the measured ambient light intensity in LUX and ranges from 0 to 54612. Taking one measurement takes ~120ms, so it takes this amount of time until the function returns.

Parameters
[in]devdevice descriptor of the targeted device
Returns
ambient light intensity in LUX