I am trying to measure Lux in my home made weather station and I bought the Adafruit TSL2561 but it max out at 40,000Lux during sunny day. Then I saw the Si1145 Datasheet that shows it can read visible light as well as IR light up to 128klx but the Adafruit si1145 Demo code gives the value in ADC counts.
Does anyone know how to or have already converted this ADC counts to lux or some other unit ?
see page 22 for further information on how to calculate lux
On page 23 is:
Calculating Lux
The TSL256x is intended for use in ambient light detection applications such as display backlight control, where adjustments are made to display brightness or contrast based on the brightness of the ambient light, as perceived by the human eye. Conventional silicon detectors respond strongly to infrared light, which the human eye does not see. This can lead to significant error when the infrared content of the ambient light is high, such as with incandescent lighting, due to the difference between the silicon detector response and the brightness perceived by the human eye.
This problem is overcome in the TSL256x through the use of two photodiodes. One of the photodiodes (channel 0) is sensitive to both visible and infrared light, while the second photodiode (channel 1) is sensitive primarily to infrared light. An integrating ADC converts the photodiode currents to digital outputs. Channel 1 digital output is used to compensate for the effect of the infrared component of light on the channel 0 digital output.
The ADC digital outputs from the two channels are used in a formula to obtain a value that approximates
the human eye response in the commonly used Illuminance unit of Lux
Simplified Lux Calculation
Below is the argument and return value including source code (shown on following page) for calculating lux.
The source code is intended for embedded and/or microcontroller applications. Two individual code sets are
provided, one for the T, FN, and CL packages, and one for the CS package. All floating point arithmetic operations have been eliminated since embedded controllers and microcontrollers generally do not support these types of operations. Since floating point has been removed, scaling must be performed prior to calculating illuminance if the integration time is not 402 ms and/or if the gain is not 16 as denoted in the source code on the following pages. This sequence scales first to mitigate rounding errors induced by decimal math.