TSL2561(照度センサ)のライブラリです

Dependents:   HYBRYD2018_IZU_ROCKET Hybrid_IZU2019

Committer:
Sigma884
Date:
Sat Jan 12 17:05:34 2019 +0000
Revision:
3:f62d7ea19cbb
Parent:
2:276a177de00b
Child:
4:c1e82279b4bb
The correct illumination could be measured now.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Sigma884 2:276a177de00b 1 #ifndef TSL2561_H
Sigma884 2:276a177de00b 2 #define TSL2561_H
zebrin1422 0:40ff41e6257e 3
zebrin1422 1:4e7b35c8d948 4 #define SLV_ADDR_OPEN 0b01110010
zebrin1422 1:4e7b35c8d948 5 #define SLV_ADDR_LOW 0b01110010
zebrin1422 1:4e7b35c8d948 6 #define SLV_ADDR_HIGH 0b01001010
zebrin1422 0:40ff41e6257e 7
zebrin1422 0:40ff41e6257e 8 #define COMMAND 0xA0
zebrin1422 0:40ff41e6257e 9 #define CONTROL_REG 0x00
zebrin1422 0:40ff41e6257e 10
zebrin1422 0:40ff41e6257e 11
zebrin1422 0:40ff41e6257e 12 #define POWER_UP 0x03
zebrin1422 0:40ff41e6257e 13 #define POWER_DOWN 0x00
zebrin1422 0:40ff41e6257e 14 #define RAW_DATA_LOW 0x0C
zebrin1422 0:40ff41e6257e 15 #define RAW_DATA_HIGH 0x0D
Sigma884 3:f62d7ea19cbb 16 #define RAW_DATA_R_LOW 0x0E
Sigma884 3:f62d7ea19cbb 17 #define RAW_DATA_R_HIGH 0x0F
zebrin1422 0:40ff41e6257e 18 #define CHECK_REG 0x0A
zebrin1422 0:40ff41e6257e 19 #define TIMING_REG 0x01;
zebrin1422 0:40ff41e6257e 20
zebrin1422 0:40ff41e6257e 21 #define ID_NUMBER 0x11
zebrin1422 0:40ff41e6257e 22 #define TIMING 0x10
zebrin1422 0:40ff41e6257e 23
zebrin1422 0:40ff41e6257e 24 class myTSL2561
zebrin1422 0:40ff41e6257e 25 {
zebrin1422 0:40ff41e6257e 26 public:
zebrin1422 0:40ff41e6257e 27
Sigma884 3:f62d7ea19cbb 28 typedef enum AD0{
Sigma884 3:f62d7ea19cbb 29 AD0_LOW = 0,
Sigma884 3:f62d7ea19cbb 30 AD0_HIGH = 1,
Sigma884 3:f62d7ea19cbb 31 AD0_OPEN = 2
Sigma884 3:f62d7ea19cbb 32 } AD0;
zebrin1422 1:4e7b35c8d948 33
Sigma884 3:f62d7ea19cbb 34 myTSL2561(I2C &i2cBus,AD0 celect = AD0_OPEN);
Sigma884 3:f62d7ea19cbb 35
Sigma884 3:f62d7ea19cbb 36 /*******************************************************************
Sigma884 3:f62d7ea19cbb 37 TSL2561を起動させる関数
Sigma884 3:f62d7ea19cbb 38 データをとる前に起動させておく
Sigma884 3:f62d7ea19cbb 39 *******************************************************************/
Sigma884 3:f62d7ea19cbb 40 void begin();
Sigma884 3:f62d7ea19cbb 41
Sigma884 3:f62d7ea19cbb 42 /*******************************************************************
Sigma884 3:f62d7ea19cbb 43 0が返ってきたらError
Sigma884 3:f62d7ea19cbb 44 1が返ってきたらOK
Sigma884 3:f62d7ea19cbb 45 *******************************************************************/
Sigma884 3:f62d7ea19cbb 46 int connectCheck();
Sigma884 3:f62d7ea19cbb 47
Sigma884 3:f62d7ea19cbb 48 /*******************************************************************
Sigma884 3:f62d7ea19cbb 49 照度(Lux)を返してくれる関数
Sigma884 3:f62d7ea19cbb 50 引数のwait_timeには下のset_rateが返してくる値を入れてください
Sigma884 3:f62d7ea19cbb 51 @example
Sigma884 3:f62d7ea19cbb 52
Sigma884 3:f62d7ea19cbb 53 int time;
Sigma884 3:f62d7ea19cbb 54 time = myTSL2561.set_rate(0);
Sigma884 3:f62d7ea19cbb 55 pc.printf("Lux = %d\r\n",myTSL2561.get_luminosity(time));
Sigma884 3:f62d7ea19cbb 56 *******************************************************************/
Sigma884 3:f62d7ea19cbb 57 //float getLuminous0(unsigned int wait_time);
Sigma884 3:f62d7ea19cbb 58 //int getLuminous0(unsigned int wait_time);
Sigma884 3:f62d7ea19cbb 59 int getLuminous0();
Sigma884 3:f62d7ea19cbb 60 int getLuminous1();
Sigma884 3:f62d7ea19cbb 61 int getLuminous();
Sigma884 3:f62d7ea19cbb 62
Sigma884 3:f62d7ea19cbb 63 /*******************************************************************
Sigma884 3:f62d7ea19cbb 64 channelに入れる値によってデータの変換時間が変わる
Sigma884 3:f62d7ea19cbb 65 0: 変換時間13.7[ms]
Sigma884 3:f62d7ea19cbb 66 1: 変換時間101[ms]
Sigma884 3:f62d7ea19cbb 67 2: 変換時間402[ms]
Sigma884 3:f62d7ea19cbb 68 この時間が返ってくるので、それをget_luminosityの引数に入れる(@exampleを参照)
Sigma884 3:f62d7ea19cbb 69 *******************************************************************/
Sigma884 3:f62d7ea19cbb 70 //unsigned int setRate(int channel);
Sigma884 3:f62d7ea19cbb 71 void setRate(int channel);
Sigma884 3:f62d7ea19cbb 72
Sigma884 3:f62d7ea19cbb 73
zebrin1422 0:40ff41e6257e 74 private:
zebrin1422 0:40ff41e6257e 75
Sigma884 3:f62d7ea19cbb 76 I2C *i2c;
Sigma884 3:f62d7ea19cbb 77 char _addr;
Sigma884 3:f62d7ea19cbb 78 char SLV_WRITE_TSL;
Sigma884 3:f62d7ea19cbb 79 char SLV_READ_TSL;
Sigma884 3:f62d7ea19cbb 80
Sigma884 3:f62d7ea19cbb 81 /*char power_up_cmd[2];
Sigma884 3:f62d7ea19cbb 82 char power_down_cmd[2];
Sigma884 3:f62d7ea19cbb 83 char check_cmd;
Sigma884 3:f62d7ea19cbb 84 char read_cmd;
Sigma884 3:f62d7ea19cbb 85 char timing_cmd[2];
Sigma884 3:f62d7ea19cbb 86 */
Sigma884 3:f62d7ea19cbb 87 char cmd[2], buff[2];
zebrin1422 1:4e7b35c8d948 88
Sigma884 3:f62d7ea19cbb 89 //char check_read, buff[2];
Sigma884 3:f62d7ea19cbb 90 int val[2];
Sigma884 3:f62d7ea19cbb 91 //unsigned int sekigai, time;
Sigma884 3:f62d7ea19cbb 92 //float lux;
Sigma884 3:f62d7ea19cbb 93 //int lux0, lux1, lux;
Sigma884 3:f62d7ea19cbb 94 float lux0, lux1, lux;
Sigma884 3:f62d7ea19cbb 95 float ration, scale;
Sigma884 3:f62d7ea19cbb 96
zebrin1422 0:40ff41e6257e 97 };
zebrin1422 0:40ff41e6257e 98
zebrin1422 0:40ff41e6257e 99 #endif