Arduino driver for VEML7700 ambient light sensor
The VEML7700 uses I2C communication. Connect it to the arduino SCL and SDA pins.
Caution: the VEML7700 runs on 3.6V maximum, and does not have 5V-tolerant I/O pins. If you have a 3.3V arduino-compatible board, you can connect the SCL/SDA lines directly to the VEML7700. Otherwise you will need a 5V-to-3.3V level converter.
see examples/read_VEML7700 for a simple example
The code exposes a low-level set of API functions corresponding to the command set described in the datasheet and a higher-level API for ease of use
uint8_t VEML7700::getALSLux(float& lux);
samples the current ambient light value (photopic curve) using the current gain and integration time settings. Returns 0 on success, non-zero on failure.
uint8_t VEML7700::getWhiteLux(float& lux);
samples the current ambient light value (white-like curve) using the current gain and integration time settings. Returns 0 on success, non-zero on failure.
uint8_t VEML7700::getAutoALSLux(float& lux);
samples the current ambient light value (photopic curve) using auto-ranging algorithm described in application note. Returns 0 on success, non-zero on failure.
uint8_t VEML7700::getAutoWhiteLux(float& lux);
samples the current ambient light value (white-like curve) using auto-ranging algorithm described in application note. Returns 0 on success, non-zero on failure.
void VEML7700::sampleDelay();
delays (busy-wait) long enough to ensure a new sample is generated after the call is executed, based on current setting of integration time.