Datasheet

Designing the VEML6070 UV Light Sensor
Into Applications
Application Note
www.vishay.com
Vishay Semiconductors
APPLICATION NOTE
Revision: 26-Mar-18
12
Document Number: 84310
For technical questions, contact: sensorstechsupport@vishay.com
THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT NOTICE. THE PRODUCTS DESCRIBED HEREIN AND THIS DOCUMENT
ARE SUBJECT TO SPECIFIC DISCLAIMERS, SET FORTH AT www.vishay.com/doc?91000
{
uvs_step = read_uvs_step();
risk_level = convert_to_risk_level(uvs_step);
delay(1000);
}
}
void initialize_VEML6070(void)
{
// Read ARA to clear interrupt
BYTE address;
VEML6070_read_byte(VEML6070_ADDR_ARA, &address);
// Initialize command register
VEML6070_write_byte(VEML6070_ADDR_CMD, cmd);
delay(200);
}
void enable_sensor(void)
{
cmd &= ~VEML6070_CMD_SD;
VEML6070_write_byte(VEML6070_ADDR_CMD, cmd);
}
void disable_sensor(void)
{
cmd |= VEML6070_CMD_SD;
VEML6070_write_byte(VEML6070_ADDR_CMD, cmd);
}
WORD read_uvs_step(void)
{
BYTE lsb, msb;
WORD data;
VEML6070_read_byte(VEML6070_ADDR_DATA_MSB, &msb);
VEML6070_read_byte(VEML6070_ADDR_DATA_LSB, &lsb);
data = ((WORD)msb << 8) | (WORD)lsb;
return data;
}
RISK_LEVEL convert_to_risk_level(WORD uvs_step)
{
WORD risk_level_mapping_table[4] = {2241, 4482, 5976, 8217};