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

Dependents:   HYBRYD2018_IZU_ROCKET Hybrid_IZU2019

Committer:
Sigma884
Date:
Wed Nov 14 09:13:55 2018 +0000
Revision:
2:276a177de00b
Parent:
1:4e7b35c8d948
Child:
3:f62d7ea19cbb
?????TSL2561??????

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
zebrin1422 0:40ff41e6257e 16 #define CHECK_REG 0x0A
zebrin1422 0:40ff41e6257e 17 #define TIMING_REG 0x01;
zebrin1422 0:40ff41e6257e 18
zebrin1422 0:40ff41e6257e 19 #define ID_NUMBER 0x11
zebrin1422 0:40ff41e6257e 20 #define TIMING 0x10
zebrin1422 0:40ff41e6257e 21
zebrin1422 0:40ff41e6257e 22 class myTSL2561
zebrin1422 0:40ff41e6257e 23 {
zebrin1422 0:40ff41e6257e 24 public:
zebrin1422 0:40ff41e6257e 25
zebrin1422 1:4e7b35c8d948 26 typedef enum AD0{
zebrin1422 1:4e7b35c8d948 27 AD0_LOW = 0,
zebrin1422 1:4e7b35c8d948 28 AD0_HIGH = 1,
zebrin1422 1:4e7b35c8d948 29 AD0_OPEN = 2
zebrin1422 1:4e7b35c8d948 30 } AD0;
zebrin1422 1:4e7b35c8d948 31
zebrin1422 1:4e7b35c8d948 32 myTSL2561(I2C &i2cBus,AD0 celect = AD0_OPEN);
zebrin1422 0:40ff41e6257e 33
zebrin1422 0:40ff41e6257e 34 void begin();
zebrin1422 0:40ff41e6257e 35 /*******************************************************************
zebrin1422 0:40ff41e6257e 36 TSL2561を起動させる関数
zebrin1422 0:40ff41e6257e 37 データをとる前に起動させておく
zebrin1422 0:40ff41e6257e 38 *******************************************************************/
zebrin1422 0:40ff41e6257e 39 int connect_check();
zebrin1422 0:40ff41e6257e 40 /*******************************************************************
zebrin1422 0:40ff41e6257e 41 0が返ってきたらError
zebrin1422 0:40ff41e6257e 42 1が返ってきたらOK
zebrin1422 0:40ff41e6257e 43 *******************************************************************/
zebrin1422 1:4e7b35c8d948 44 float get_luminosity(unsigned int wait_time);
zebrin1422 0:40ff41e6257e 45 /*******************************************************************
zebrin1422 0:40ff41e6257e 46 照度(Lux)を返してくれる関数
zebrin1422 0:40ff41e6257e 47 引数のwait_timeには下のset_rateが返してくる値を入れてください
zebrin1422 0:40ff41e6257e 48 @example
zebrin1422 0:40ff41e6257e 49
zebrin1422 0:40ff41e6257e 50 int time;
zebrin1422 0:40ff41e6257e 51 time = myTSL2561.set_rate(0);
zebrin1422 0:40ff41e6257e 52 pc.printf("Lux = %d\r\n",myTSL2561.get_luminosity(time));
zebrin1422 0:40ff41e6257e 53 *******************************************************************/
zebrin1422 0:40ff41e6257e 54
zebrin1422 0:40ff41e6257e 55 unsigned int set_rate(int channel);
zebrin1422 0:40ff41e6257e 56 /*******************************************************************
zebrin1422 0:40ff41e6257e 57 channelに入れる値によってデータの変換時間が変わる
zebrin1422 0:40ff41e6257e 58 0: 変換時間13.7[ms]
zebrin1422 0:40ff41e6257e 59 1: 変換時間101[ms]
zebrin1422 0:40ff41e6257e 60 2: 変換時間402[ms]
zebrin1422 0:40ff41e6257e 61 この時間が返ってくるので、それをget_luminosityの引数に入れる(@exampleを参照)
zebrin1422 0:40ff41e6257e 62 *******************************************************************/
zebrin1422 0:40ff41e6257e 63
zebrin1422 0:40ff41e6257e 64
zebrin1422 0:40ff41e6257e 65
zebrin1422 0:40ff41e6257e 66 private:
zebrin1422 0:40ff41e6257e 67
zebrin1422 0:40ff41e6257e 68 I2C *i2c;
zebrin1422 1:4e7b35c8d948 69 char _addr;
zebrin1422 1:4e7b35c8d948 70 char SLV_WRITE_TSL;
zebrin1422 1:4e7b35c8d948 71 char SLV_READ_TSL;
zebrin1422 0:40ff41e6257e 72 char power_up_cmd[2];
zebrin1422 0:40ff41e6257e 73 char power_down_cmd[2];
zebrin1422 0:40ff41e6257e 74 char check_cmd;
zebrin1422 0:40ff41e6257e 75 char read_cmd;
zebrin1422 0:40ff41e6257e 76 char timing_cmd[2];
zebrin1422 1:4e7b35c8d948 77
zebrin1422 0:40ff41e6257e 78 char check_read,buff[2];
zebrin1422 0:40ff41e6257e 79 int val[2];
zebrin1422 1:4e7b35c8d948 80 unsigned int sekigai,time;
zebrin1422 1:4e7b35c8d948 81 float lux;
zebrin1422 0:40ff41e6257e 82
zebrin1422 0:40ff41e6257e 83
zebrin1422 0:40ff41e6257e 84 };
zebrin1422 0:40ff41e6257e 85
zebrin1422 0:40ff41e6257e 86 #endif
zebrin1422 0:40ff41e6257e 87
zebrin1422 0:40ff41e6257e 88
zebrin1422 0:40ff41e6257e 89