VCNL4010/VCNL4020/VCNL4040 Proximity and Ambient Light Sensors

Device driver interface for the VCNL40X0 Proximity and Ambient Light Sensors.

enum @167
VCNL40X0_PROXIMITY_RATE_2 = 0
1.95 measurements/s (default)
VCNL40X0_PROXIMITY_RATE_4
3.90625 measurements/s
VCNL40X0_PROXIMITY_RATE_8
7.8125 measurements/s
VCNL40X0_PROXIMITY_RATE_16
16.625 measurements/s
VCNL40X0_PROXIMITY_RATE_31
31.25 measurements/s
VCNL40X0_PROXIMITY_RATE_62
62.5 measurements/s
VCNL40X0_PROXIMITY_RATE_125
125 measurements/s
VCNL40X0_PROXIMITY_RATE_250
250 measurements/s
enum @168
VCNL40X0_AMBIENT_RATE_1 = 0
1 sample/s
VCNL40X0_AMBIENT_RATE_2
2 sample/s (default)
VCNL40X0_AMBIENT_RATE_3
3 sample/s
VCNL40X0_AMBIENT_RATE_4
4 sample/s
VCNL40X0_AMBIENT_RATE_5
5 sample/s
VCNL40X0_AMBIENT_RATE_6
6 sample/s
VCNL40X0_AMBIENT_RATE_8
8 sample/s
VCNL40X0_AMBIENT_RATE_10
10 sample/s
enum @169
VCNL40X0_AMBIENT_AVERAGE_1 = 0
Decimal value 1.
VCNL40X0_AMBIENT_AVERAGE_2
Decimal value 2.
VCNL40X0_AMBIENT_AVERAGE_4
Decimal value 4.
VCNL40X0_AMBIENT_AVERAGE_8
Decimal value 8.
VCNL40X0_AMBIENT_AVERAGE_16
Decimal value 16.
VCNL40X0_AMBIENT_AVERAGE_32
Decimal value 32 (default)
VCNL40X0_AMBIENT_AVERAGE_64
Decimal value 64.
VCNL40X0_AMBIENT_AVERAGE_128
Decimal value 128.
enum @170
VCNL40X0_OK = 0
Everything was fine.
VCNL40X0_ERR_I2C
Error initializing the I2C bus.
VCNL40X0_ERR_NODEV
Error wrong device.
int vcnl40x0_init(vcnl40x0_t * dev, const vcnl40x0_params_t * params)

Initialize the given VCNL40X0 device.

Parameters

dev:Initialized device descriptor of VCNL40X0 device
params:The parameters for the VCNL40X0 device

Return values

  • VCNL40X0_OK on success
  • -VCNL40X0_ERR_I2C if given I2C is not enabled in board config
  • -VCNL40X0_ERR_NODEV if not a vcnl40X0 device
uint16_t vcnl40x0_read_proximity(const vcnl40x0_t * dev)

Read proximity value from the vcnl40X0 device.

Parameters

dev:Device descriptor of VCNL40X0 device to read from

Return values

  • Proximity in counts
uint16_t vcnl40x0_read_ambient_light(const vcnl40x0_t * dev)

Read ambient light value from the vcnl40X0 device.

Parameters

dev:Device descriptor of VCNL40X0 device to read from

Return values

  • Ambient light in counts
uint16_t vcnl40x0_read_illuminance(const vcnl40x0_t * dev)

Read illuminance value from the vcnl40X0 device.

Parameters

dev:Device descriptor of VCNL40X0 device to read from

Return values

  • Illuminance in lux
struct vcnl40x0_params_t

Device initialization parameters.

i2c.h::i2c_t i2c_dev

I2C device which is used.

uint8_t i2c_addr

Address on I2C bus.

uint8_t led_current

LED current.

uint8_t proximity_rate

Proximity rate.

uint8_t ambient_rate

Ambient light rate.

uint8_t ambient_avg

Ambient light conversion average.

struct vcnl40x0_t

Device descriptor for the VCNL40X0 sensor.

vcnl40x0_params_t params

Device parameters.