Adafruit LTR390 UV Sensor Library
Adafruit_LTR390.h
Go to the documentation of this file.
1 
17 #ifndef _ADAFRUIT_LTR390_H
18 #define _ADAFRUIT_LTR390_H
19 
20 #include "Arduino.h"
21 #include <Adafruit_I2CDevice.h>
22 #include <Adafruit_I2CRegister.h>
23 #include <Wire.h>
24 
25 #define LTR390_I2CADDR_DEFAULT 0x53
26 #define LTR390_MAIN_CTRL 0x00
27 #define LTR390_MEAS_RATE 0x04
28 #define LTR390_GAIN 0x05
29 #define LTR390_PART_ID 0x06
30 #define LTR390_MAIN_STATUS 0x07
31 #define LTR390_ALSDATA 0x0D
32 #define LTR390_UVSDATA 0x10
33 #define LTR390_INT_CFG 0x19
34 #define LTR390_INT_PST 0x1A
35 #define LTR390_THRESH_UP 0x21
36 #define LTR390_THRESH_LOW 0x24
37 
38 
39 typedef enum {
40  LTR390_MODE_ALS,
41  LTR390_MODE_UVS,
43 
45 typedef enum {
46  LTR390_GAIN_1 = 0,
47  LTR390_GAIN_3,
48  LTR390_GAIN_6,
49  LTR390_GAIN_9,
50  LTR390_GAIN_18,
52 
54 typedef enum {
55  LTR390_RESOLUTION_20BIT,
56  LTR390_RESOLUTION_19BIT,
57  LTR390_RESOLUTION_18BIT,
58  LTR390_RESOLUTION_17BIT,
59  LTR390_RESOLUTION_16BIT,
60  LTR390_RESOLUTION_13BIT,
62 
68 public:
70  bool begin(TwoWire *theWire = &Wire);
71  bool reset(void);
72 
73  void enable(bool en);
74  bool enabled(void);
75 
76  void setMode(ltr390_mode_t mode);
77  ltr390_mode_t getMode(void);
78 
79  void setGain(ltr390_gain_t gain);
80  ltr390_gain_t getGain(void);
81 
84 
85  void setThresholds(uint32_t lower, uint32_t higher);
86 
87  void configInterrupt(bool enable, ltr390_mode_t source,
88  uint8_t persistance = 0);
89 
90  bool newDataAvailable(void);
91  uint32_t readUVS(void);
92  uint32_t readALS(void);
93 
94 private:
95  Adafruit_I2CRegister *StatusReg;
96  Adafruit_I2CRegisterBits *DataReadyBit;
97 
98  Adafruit_I2CDevice *i2c_dev;
99 };
100 
101 #endif
void configInterrupt(bool enable, ltr390_mode_t source, uint8_t persistance=0)
Configure the interrupt based on the thresholds in setThresholds() When the sensor is below the lower...
Definition: Adafruit_LTR390.cpp:264
bool newDataAvailable(void)
Checks if new data is available in data register.
Definition: Adafruit_LTR390.cpp:107
ltr390_mode_t
Whether we are measuring ambient or UV light.
Definition: Adafruit_LTR390.h:39
ltr390_gain_t getGain(void)
Get the sensor&#39;s gain.
Definition: Adafruit_LTR390.cpp:201
void setGain(ltr390_gain_t gain)
Set the sensor gain.
Definition: Adafruit_LTR390.cpp:188
void setMode(ltr390_mode_t mode)
Set the sensor mode to EITHER ambient (LTR390_MODE_ALS) or UV (LTR390_MODE_UVS)
Definition: Adafruit_LTR390.cpp:161
ltr390_resolution_t
Measurement resolution (higher res means slower reads!)
Definition: Adafruit_LTR390.h:54
bool enabled(void)
Read the enabled-bit from the sensor.
Definition: Adafruit_LTR390.cpp:147
void setThresholds(uint32_t lower, uint32_t higher)
Set the interrupt output threshold range for lower and upper. When the sensor is below the lower...
Definition: Adafruit_LTR390.cpp:245
ltr390_gain_t
Sensor gain for UV or ALS.
Definition: Adafruit_LTR390.h:45
uint32_t readALS(void)
Read 3-bytes out of ambient data register, does not check if data is new!
Definition: Adafruit_LTR390.cpp:114
uint32_t readUVS(void)
Read 3-bytes out of UV data register, does not check if data is new!
Definition: Adafruit_LTR390.cpp:124
void enable(bool en)
Enable or disable the light sensor.
Definition: Adafruit_LTR390.cpp:134
bool begin(TwoWire *theWire=&Wire)
Setups the hardware for talking to the LTR390.
Definition: Adafruit_LTR390.cpp:45
bool reset(void)
Perform a soft reset with 10ms delay.
Definition: Adafruit_LTR390.cpp:79
Class that stores state and functions for interacting with LTR390 UV Sensor.
Definition: Adafruit_LTR390.h:67
ltr390_mode_t getMode(void)
get the sensor&#39;s mode
Definition: Adafruit_LTR390.cpp:174
ltr390_resolution_t getResolution(void)
Get the sensor&#39;s resolution.
Definition: Adafruit_LTR390.cpp:230
void setResolution(ltr390_resolution_t res)
Set the sensor resolution. Higher resolutions take longer to read!
Definition: Adafruit_LTR390.cpp:215
Adafruit_LTR390()
Instantiates a new LTR390 class.
Definition: Adafruit_LTR390.cpp:38