Adafruit VCNL4010
Adafruit_VCNL4010.h
Go to the documentation of this file.
1 /**************************************************************************/
18 /**************************************************************************/
19 
20 #if ARDUINO >= 100
21 #include "Arduino.h"
22 #else
23 #include "WProgram.h"
24 #endif
25 
26 #include <Adafruit_I2CDevice.h>
27 
28 #define VCNL4010_I2CADDR_DEFAULT 0x13
29 
30 
31 #define VCNL4010_COMMAND 0x80
32 #define VCNL4010_PRODUCTID 0x81
33 #define VCNL4010_PROXRATE 0x82
34 #define VCNL4010_IRLED 0x83
35 #define VCNL4010_AMBIENTPARAMETER 0x84
36 #define VCNL4010_AMBIENTDATA 0x85
37 #define VCNL4010_PROXIMITYDATA 0x87
38 #define VCNL4010_INTCONTROL 0x89
39 #define VCNL4010_LOWTHRESHOLD 0x8A
40 #define VCNL4010_HITHRESHOLD 0x8C
41 #define VCNL4010_INTSTAT 0x8E
42 #define VCNL4010_MODTIMING 0x8F
43 
44 
45 typedef enum {
46  VCNL4010_1_95 = 0, // 1.95 measurements/sec (Default)
47  VCNL4010_3_90625 = 1, // 3.90625 measurements/sec
48  VCNL4010_7_8125 = 2, // 7.8125 measurements/sec
49  VCNL4010_16_625 = 3, // 16.625 measurements/sec
50  VCNL4010_31_25 = 4, // 31.25 measurements/sec
51  VCNL4010_62_5 = 5, // 62.5 measurements/sec
52  VCNL4010_125 = 6, // 125 measurements/sec
53  VCNL4010_250 = 7, // 250 measurements/sec
55 
57 #define VCNL4010_MEASUREPROXIMITY \
58  0x08
59 #define VCNL4010_MEASUREAMBIENT \
60  0x10
61 #define VCNL4010_PROXIMITYREADY \
62  0x20
63 #define VCNL4010_AMBIENTREADY \
64  0x40
65 
67 /**************************************************************************/
71 /**************************************************************************/
73 public:
75  boolean begin(uint8_t a = VCNL4010_I2CADDR_DEFAULT, TwoWire *theWire = &Wire);
76 
77  uint8_t getLEDcurrent(void);
78  void setLEDcurrent(uint8_t c);
79 
81  uint16_t readProximity(void);
82  uint16_t readAmbient(void);
83 
84 private:
85  void write8(uint8_t address, uint8_t data);
86  uint16_t read16(uint8_t address);
87  uint8_t read8(uint8_t address);
88 
89  Adafruit_I2CDevice *i2c_dev = NULL;
90 };
uint16_t readProximity(void)
Get proximity measurement.
Definition: Adafruit_VCNL4010.cpp:112
vcnl4010_freq
Definition: Adafruit_VCNL4010.h:45
uint8_t getLEDcurrent(void)
Get the LED current.
Definition: Adafruit_VCNL4010.cpp:88
The VCNL4010 class.
Definition: Adafruit_VCNL4010.h:72
Adafruit_VCNL4010()
Instantiates a new VCNL4010 class.
Definition: Adafruit_VCNL4010.cpp:33
boolean begin(uint8_t a=VCNL4010_I2CADDR_DEFAULT, TwoWire *theWire=&Wire)
Setups the I2C connection and tests that the sensor was found. If so, configures for 200mA IR current...
Definition: Adafruit_VCNL4010.cpp:45
void setFrequency(vcnl4010_freq f)
Set the measurement signal frequency.
Definition: Adafruit_VCNL4010.cpp:101
uint16_t readAmbient(void)
Get ambient light measurement.
Definition: Adafruit_VCNL4010.cpp:136
#define VCNL4010_I2CADDR_DEFAULT
I2C address of the sensor.
Definition: Adafruit_VCNL4010.h:28
void setLEDcurrent(uint8_t c)
Set the LED current.
Definition: Adafruit_VCNL4010.cpp:74