TSL2561 Module¶
This module contains the driver for AMS TSL2561 Luminosity sensor integrating both infrared and full-spectrum photodiodes. The TSL2561 is capable of direct I2C communication and is able to conduct specific light ranges from 0.1 - 40k+ Lux easily. Additionally, it contains two integrating analog-to-digital converters (ADC) that convert currents from the two photodiodes, simultaneously (datasheet).
class TSL2561¶
class TSL2561(i2cdrv,addr=0x49,clk=400000)
Creates an instance of a new TSL2561.
Arguments:
- i2cdrv – I2C Bus used ‘( I2C0, … )’
- addr – Slave address, default 0x49
- clk – Clock speed, default 400kHz
Example:
from ams.tsl2561 import tsl2561
...
tsl = tsl2561.TSL2561(I2C0, addr=tsl2561.TSL_I2C_ADDRESS["LOW"])
tsl.start()
tsl.init()
lux = tsl.get_lux()
Note
This sensor has a dedicated “Address” pin that allows to select 1 of 3 available address as shown in the table below.
ADDR SEL Terminal Level | I2C Address | Zerynth Define |
---|---|---|
GND | 0x29 | addr = tsl2561.TSL_I2C_ADDRESS[“LOW”] |
Float | 0x39 | addr = tsl2561.TSL_I2C_ADDRESS[“NORMAL”] |
Vdd | 0x49 | addr = tsl2561.TSL_I2C_ADDRESS[“HIGH”] |
TSL2561.init¶
init(gain=1,timing=0,pack=1)
Initialize the TSL2561 setting the gain, timing and kind of package.
Arguments:
- gain
– set the gain of the sensor (values allowed: 0 for gain=1x and 1 for gain=16x), default 1 - timing
– set the integration time value (from 0 to 2 - 0 for 13 ms, 1 for 101 ms, 2 for 402 ms), default 0 - pack
– set the kind of package for the correct lux calculation (values allowed: 0 for CS package and 1 for T,FN,CL package), default 1
get_raw_fullspectrum()
Retrieves the current raw value read on channel0 (full-spectrum photodiode).
Returns raw_fs.
TSL2561.get_raw_infrared¶
get_raw_infrared()
Retrieves the current raw value read on channel1 (infrared photodiode).
Returns raw_ir.
TSL2561.get_raw_visible¶
get_raw_visible()
Retrieves the difference between the current raw value read on channel0 and raw value on channel1 (visible spectrum).
Returns raw_vis = (raw_fs - raw_ir).
TSL2561.get_lux¶
get_lux()
Converts the raw sensor values to the standard SI lux equivalent (according to the sensor settings - gain, timing and kind of package).
Returns lux value or 0 if the sensor is saturated and the values are unreliable.