135 lines
4.2 KiB
Markdown
135 lines
4.2 KiB
Markdown
|
# TSL2561 Module
|
||
|
| Since | Origin / Contributor | Maintainer | Source |
|
||
|
| :----- | :-------------------- | :---------- | :------ |
|
||
|
| 2015-08-22 | [Michael Lucas](https://github.com/Aeprox) | [Michael Lucas](https://github.com/Aeprox) | [tsl2561.c](../../app/modules/tsl2561.c)|
|
||
|
|
||
|
## tsl2561.getlux()
|
||
|
Reads sensor values from the device and returns calculated lux value.
|
||
|
|
||
|
#### Syntax
|
||
|
`tsl2561.getlux()`
|
||
|
|
||
|
#### Parameters
|
||
|
none
|
||
|
|
||
|
#### Returns
|
||
|
- `lux` the calculated illuminance in lux (lx)
|
||
|
- `status` value indicating success or failure as explained below:
|
||
|
* `tsl2561.TSL2561_OK`
|
||
|
* `tsl2561.TSL2561_ERROR_I2CINIT` can't initialize I²C bus
|
||
|
* `tsl2561.TSL2561_ERROR_I2CBUSY` I²C bus busy
|
||
|
* `tsl2561.TSL2561_ERROR_NOINIT` initialize I²C bus before calling function
|
||
|
* `tsl2561.TSL2561_ERROR_LAST`
|
||
|
|
||
|
#### Example
|
||
|
``` lua
|
||
|
status = tsl2561.init(5, 6, tsl2561.ADDRESS_FLOAT, tsl2561.PACKAGE_T_FN_CL)
|
||
|
|
||
|
if status == tsl2561.TSL2561_OK then
|
||
|
lux = tsl2561.getlux()
|
||
|
print("Illuminance: "..lux.." lx")
|
||
|
end
|
||
|
```
|
||
|
|
||
|
## tsl2561.getrawchannels()
|
||
|
Reads the device's 2 sensors and returns their values.
|
||
|
|
||
|
#### Syntax
|
||
|
`tsl2561.getrawchannels()`
|
||
|
|
||
|
#### Parameters
|
||
|
none
|
||
|
|
||
|
#### Returns
|
||
|
- `ch0` value of the broad spectrum sensor
|
||
|
- `ch1` value of the IR sensor
|
||
|
- `status` value indicating success or failure as explained below:
|
||
|
* `tsl2561.TSL2561_OK`
|
||
|
* `tsl2561.TSL2561_ERROR_I2CINIT` can't initialize I²C bus
|
||
|
* `tsl2561.TSL2561_ERROR_I2CBUSY` I²C bus busy
|
||
|
* `tsl2561.TSL2561_ERROR_NOINIT` initialize I²C bus before calling function
|
||
|
* `tsl2561.TSL2561_ERROR_LAST`
|
||
|
|
||
|
#### Example
|
||
|
``` lua
|
||
|
status = tsl2561.init(5, 6, tsl2561.ADDRESS_FLOAT, tsl2561.PACKAGE_T_FN_CL)
|
||
|
|
||
|
if status == tsl2561.TSL2561_OK then
|
||
|
ch0, ch1 = tsl2561.getrawchannels()
|
||
|
print("Raw values: "..ch0, ch1)
|
||
|
lux = tsl2561.getlux()
|
||
|
print("Illuminance: "..lux.." lx")
|
||
|
end
|
||
|
```
|
||
|
|
||
|
## tsl2561.init()
|
||
|
Initializes the device on pins sdapin & sclpin. Optionally also configures the devices address and package. Default: address pin floating (0x39) and FN package.
|
||
|
|
||
|
#### Syntax
|
||
|
` tsl2561.init(sdapin, sclpin[, address[, package]])`
|
||
|
|
||
|
#### Parameters
|
||
|
- `sdapin` pin number of the device's I²C sda connection
|
||
|
- `sclpin` pin number of the device's I²C scl connection
|
||
|
- `address` optional address of the device on the I²C bus
|
||
|
* `tsl2561.ADDRESS_GND`
|
||
|
* `tsl2561.ADDRESS_FLOAT` (default when omitted)
|
||
|
* `tsl2561.ADDRESS_VDD`
|
||
|
- `package` optional device's package type (slight difference in lux calculation)
|
||
|
* `tsl2561.PACKAGE_CS`
|
||
|
* `tsl2561.PACKAGE_T_FN_CL` (default when omitted)
|
||
|
|
||
|
#### Returns
|
||
|
`status` value indicating success or failure as explained below:
|
||
|
|
||
|
- `tsl2561.TSL2561_OK`
|
||
|
- `tsl2561.TSL2561_ERROR_I2CINIT` can't initialize I²C bus
|
||
|
- `tsl2561.TSL2561_ERROR_I2CBUSY` I²C bus busy
|
||
|
- `tsl2561.TSL2561_ERROR_NOINIT` Initialize I²C bus before calling function
|
||
|
- `tsl2561.TSL2561_ERROR_LAST`
|
||
|
|
||
|
#### Example
|
||
|
``` lua
|
||
|
status = tsl2561.init(5, 6, tsl2561.ADDRESS_FLOAT, tsl2561.PACKAGE_T_FN_CL)
|
||
|
if status == tsl2561.TSL2561_OK then
|
||
|
lux = tsl2561.getlux()
|
||
|
print("Illuminance: "..lux.." lx")
|
||
|
end
|
||
|
```
|
||
|
|
||
|
## tsl2561.settiming()
|
||
|
Sets the integration time and gain settings of the device. When `tls2561.init()` is called, these values default to 402 ms and no gain.
|
||
|
|
||
|
#### Syntax
|
||
|
`tsl2561.settiming(integration, gain)`
|
||
|
|
||
|
#### Parameters
|
||
|
- `integration` sets the device's integration period. Valid options are:
|
||
|
* `tsl2561.INTEGRATIONTIME_13MS`
|
||
|
* `tsl2561.INTEGRATIONTIME_101MS`
|
||
|
* `tsl2561.INTEGRATIONTIME_402MS` (default when omitted)
|
||
|
- `gain` sets the device's gain. Valid options are:
|
||
|
* `tsl2561.GAIN_1X` (default when omitted)
|
||
|
* `tsl2561.GAIN_16X`
|
||
|
|
||
|
#### Returns
|
||
|
`status` value indicating success or failure as explained below:
|
||
|
|
||
|
- `tsl2561.TSL2561_OK`
|
||
|
- `tsl2561.TSL2561_ERROR_I2CINIT` can't initialize I²C bus
|
||
|
- `tsl2561.TSL2561_ERROR_I2CBUSY` I²C bus busy
|
||
|
- `tsl2561.TSL2561_ERROR_NOINIT` initialize I²C bus before calling function
|
||
|
- `tsl2561.TSL2561_ERROR_LAST`
|
||
|
|
||
|
#### Example
|
||
|
``` lua
|
||
|
status = tsl2561.init(5, 6, tsl2561.ADDRESS_FLOAT, tsl2561.PACKAGE_T_FN_CL)
|
||
|
if status == tsl2561.TSL2561_OK then
|
||
|
status = tsl2561.settiming(tsl2561.INTEGRATIONTIME_101MS, tsl2561.GAIN_16X)
|
||
|
end
|
||
|
if status == tsl2561.TSL2561_OK then
|
||
|
lux = tsl2561.getlux()
|
||
|
print("Illuminance: "..lux.." lx")
|
||
|
end
|
||
|
```
|