GY-63_MS5611/libraries/TSL235R/README.md
2021-12-29 13:37:09 +01:00

75 lines
3.1 KiB
Markdown

[![Arduino CI](https://github.com/RobTillaart/TSL235R/workflows/Arduino%20CI/badge.svg)](https://github.com/marketplace/actions/arduino_ci)
[![Arduino-lint](https://github.com/RobTillaart/TSL235R/actions/workflows/arduino-lint.yml/badge.svg)](https://github.com/RobTillaart/TSL235R/actions/workflows/arduino-lint.yml)
[![JSON check](https://github.com/RobTillaart/TSL235R/actions/workflows/jsoncheck.yml/badge.svg)](https://github.com/RobTillaart/TSL235R/actions/workflows/jsoncheck.yml)
[![License: MIT](https://img.shields.io/badge/license-MIT-green.svg)](https://github.com/RobTillaart/TSL235R/blob/master/LICENSE)
[![GitHub release](https://img.shields.io/github/release/RobTillaart/TSL235R.svg?maxAge=3600)](https://github.com/RobTillaart/TSL235R/releases)
# TSL235R
Arduino library for the TSL235R light to frequency convertor.
## Description
This library does not measure the frequency but has some functions to compensate e.g.
for wavelength and voltage used.
The library is not tested extensively yet.
The sensor operating voltage is between 2.7 and 5.5 max.
For measurements below 1uW/cm2 one bests measures for multiple seconds
Above 1 uW/cm2 1 second or shorter is OK.
Note that for longer and shorter measurements than 1 second one must convert the
value to Hz, which is the number of pulses in 1 second.
## Connection
```
// PIN 1 - GND
// PIN 2 - VDD 2.7 V .. 5.5 V
// PIN 3 - SIGNAL 1 Hz .. 800 KHz
```
## Interface
- **TSL235R(float voltage = 5.0)** constructor, optionally one can give the operational voltage
to add a small correction (< 1.5%)
- **float irradiance(uint32_t Hz)** returns the irradiance in uW/cm2.
Note that Hz implies the measured pulses for 1 second.
- **float irradiance(uint32_t pulses, uint32_t milliseconds)** returns the irradiance in uW/cm2
This formula is used for other duration than 1 second.
To get irradiance in W/m2 one must divide by 100.
- **float irradiance_HS(uint32_t pulses, uint32_t microseconds)** returns the irradiance in uW/cm2
This formula is used when the time is measured in microseconds. This is the most accurate measurement.
- **float getFactor()** returns the inner conversion factor from Hz to Watt/cm2.
- **void setWavelength(uint16_t wavelength = 635)** sets the wavelength so the formulas can use a
correction factor. At the default wavelength of 635 nm the wavelength correction factor == 1.0
- **uint16_t getWavelength()** returns the set wavelength. Convenience function.
- **float getWaveLengthFactor()** returns the wavelength correction factor.
As the sensor is most sensitive around 750 nm this value helps to normalize the signal.
This works only for (almost) monochromatic light.
- **void setVoltage(float voltage)** sets the voltage so the formulas can use a correction factor.
This voltage correction factor is rather small < 1.5%
- **float getVoltage()** returns the set voltage. Convenience function.
## Operations
See examples for typical usage.
## Future
- improve documentation
- test test test
- investigate hardware solutions for e.g. divide by 100 or so
- investigate correction factor for white light and mixed light sources.
- investigate calibration factor for timing of processor used.
-