ISL29125 RGB light sensor¶
Device driver for the ISL29125 RGB light sensor.
Description¶
The device supports level conversion in 12, and 16 bit depth per channel. Selecting a higher precision results in a longer conversion time.
The driver uses the color_rgb_t color definition from color.h for value representation. It does not depend on the color module however.
Usage¶
Examine tests/driver_isr29125
for an exemplary application using this driver.
Caveats¶
A GPIO pin definition has been included in the interface for future compatibility only.
- The driver does not support SYNC mode at the moment.
- The driver supports polling only, i.e. interrupt mode is currently not supported.
-
enum
isl29125_mode_t
¶ - ISL29125_MODE_DOWN
= 0x00
- ADC powered down.
- ISL29125_MODE_STANDBY
= 0x04
- AD conversion not performed.
- ISL29125_MODE_RGB
= 0x05
- RGB conversion.
- ISL29125_MODE_R
= 0x02
- red conversion only
- ISL29125_MODE_G
= 0x01
- green conversion only
- ISL29125_MODE_B
= 0x03
- blue conversion only
- ISL29125_MODE_RG
= 0x06
- red and green conversion only
- ISL29125_MODE_GB
= 0x07
- green and blue conversion only
- ISL29125_MODE_DOWN
-
enum
isl29125_range_t
¶ - ISL29125_RANGE_375
= 0x00
- range: 5.7m - 375 lux
- ISL29125_RANGE_10K
= 0x08
- range: 0.152 - 10,000 lux
- ISL29125_RANGE_375
-
enum
isl29125_resolution_t
¶ - ISL29125_RESOLUTION_12
= 0x10
- resolution: 12 bit
- ISL29125_RESOLUTION_16
= 0x00
- resolution: 16 bit
- ISL29125_RESOLUTION_12
-
enum
isl29125_interrupt_status_t
¶ - ISL29125_INTERRUPT_STATUS_NONE
= 0x00
- No interrupt.
- ISL29125_INTERRUPT_STATUS_GREEN
= 0x01
- GREEN interrupt.
- ISL29125_INTERRUPT_STATUS_RED
= 0x02
- RED interrupt.
- ISL29125_INTERRUPT_STATUS_BLUE
= 0x03
- BLUE interrupt.
- ISL29125_INTERRUPT_STATUS_NONE
-
enum
isl29125_interrupt_persist_t
¶ - ISL29125_INTERRUPT_PERSIST_1
= (0x00 << 2)
Int.
Persist: Number of integration cycle 1
- ISL29125_INTERRUPT_PERSIST_2
= (0x01 << 2)
Int.
Persist: Number of integration cycle 2
- ISL29125_INTERRUPT_PERSIST_4
= (0x02 << 2)
Int.
Persist: Number of integration cycle 4
- ISL29125_INTERRUPT_PERSIST_8
= (0x03 << 2)
Int.
Persist: Number of integration cycle 8
- ISL29125_INTERRUPT_PERSIST_1
-
enum
isl29125_interrupt_conven_t
¶ - ISL29125_INTERRUPT_CONV_DIS
= (0x0 << 4)
- RGB Conversion done to ~INT Control disable.
- ISL29125_INTERRUPT_CONV_EN
= (0x1 << 4)
- RGB Conversion done to ~INT Control enable.
- ISL29125_INTERRUPT_CONV_DIS
-
int
isl29125_init
(isl29125_t * dev, const isl29125_params_t * params)¶ Initialize a new ISL29125 device.
Parameters
dev: device descriptor of an ISL29125 device params: initialization parameters Return values
- 0 on success
- -1 on error
-
int
isl29125_init_int
(isl29125_t * dev,isl29125.h::isl29125_interrupt_status_t
interrupt_status,isl29125.h::isl29125_interrupt_persist_t
interrupt_persist,isl29125.h::isl29125_interrupt_conven_t
interrupt_conven, uint16_t lower_threshold, uint16_t higher_threshold,gpio.h::gpio_cb_t
cb, void * arg)¶ Initialize interrupts.
Parameters
dev: device descriptor of an ISL29125 device interrupt_status: Interrupt status interrupt_persist: Interrupt persistency interrupt_conven: RGB conversion done to interrupt control, enable lower_threshold: Lower interrupt threshold higher_threshold: Higher interrupt threshold cb: Callback function on interrupts arg: Argument passed to the callback function Return values
- 0 on success
- -1 on error
-
void
isl29125_read_rgb_lux
(const isl29125_t * dev, isl29125_rgb_t * dest)¶ Read RGB values from device.
Parameters
dev: device descriptor of an ISL29125 device dest: pointer to lux RGB color object data is written to
-
void
isl29125_read_rgb_color
(const isl29125_t * dev, color_rgb_t * dest)¶ Read color values from device.
Parameters
dev: device descriptor of an ISL29125 device dest: pointer to RGB color object data is written to
-
void
isl29125_set_mode
(const isl29125_t * dev,isl29125.h::isl29125_mode_t
mode)¶ Set the device’s operation mode.
Parameters
dev: device descriptor of an ISL29125 device mode: operation mode
-
int
isl29125_read_irq_status
(const isl29125_t * dev)¶ Read isl29125 interrupt status.
Parameters
dev: device descriptor of an ISL29125 device Return values
- interrupt status
-
struct
isl29125_rgb_t
¶ Data type for storing lux RGB sensor readings.
-
float
red
¶ red lux value
-
float
green
¶ green lux value
-
float
blue
¶ blue lux value
-
float
-
struct
isl29125_params_t
¶ Device parameters for ISL29125 sensors.
-
i2c.h::i2c_t
i2c
¶ I2C device the sensor is connected to.
-
gpio.h::gpio_t
gpio
¶ GPIO pin for interrupt/sync mode.
-
isl29125.h::isl29125_range_t
range
¶ measurement range
-
isl29125.h::isl29125_mode_t
mode
¶ AD conversion mode.
-
isl29125.h::isl29125_resolution_t
res
¶ AD conversion resolution.
-
-
struct
isl29125_t
¶ Device descriptor for ISL29125 sensors.
-
isl29125_params_t
params
¶ device parameters
-
isl29125_params_t