TSL2561(照度センサ)のライブラリです
Dependents: HYBRYD2018_IZU_ROCKET Hybrid_IZU2019
Diff: TSL2561.h
- Revision:
- 3:f62d7ea19cbb
- Parent:
- 2:276a177de00b
- Child:
- 4:c1e82279b4bb
--- a/TSL2561.h Wed Nov 14 09:13:55 2018 +0000 +++ b/TSL2561.h Sat Jan 12 17:05:34 2019 +0000 @@ -13,6 +13,8 @@ #define POWER_DOWN 0x00 #define RAW_DATA_LOW 0x0C #define RAW_DATA_HIGH 0x0D +#define RAW_DATA_R_LOW 0x0E +#define RAW_DATA_R_HIGH 0x0F #define CHECK_REG 0x0A #define TIMING_REG 0x01; @@ -23,67 +25,75 @@ { public: - typedef enum AD0{ - AD0_LOW = 0, - AD0_HIGH = 1, - AD0_OPEN = 2 - } AD0; + typedef enum AD0{ + AD0_LOW = 0, + AD0_HIGH = 1, + AD0_OPEN = 2 + } AD0; - myTSL2561(I2C &i2cBus,AD0 celect = AD0_OPEN); - - void begin(); - /******************************************************************* - TSL2561を起動させる関数 - データをとる前に起動させておく - *******************************************************************/ - int connect_check(); - /******************************************************************* - 0が返ってきたらError - 1が返ってきたらOK - *******************************************************************/ - float get_luminosity(unsigned int wait_time); - /******************************************************************* - 照度(Lux)を返してくれる関数 - 引数のwait_timeには下のset_rateが返してくる値を入れてください - @example - - int time; - time = myTSL2561.set_rate(0); - pc.printf("Lux = %d\r\n",myTSL2561.get_luminosity(time)); - *******************************************************************/ - - unsigned int set_rate(int channel); - /******************************************************************* - channelに入れる値によってデータの変換時間が変わる - 0: 変換時間13.7[ms] - 1: 変換時間101[ms] - 2: 変換時間402[ms] - この時間が返ってくるので、それをget_luminosityの引数に入れる(@exampleを参照) - *******************************************************************/ - - - + myTSL2561(I2C &i2cBus,AD0 celect = AD0_OPEN); + + /******************************************************************* + TSL2561を起動させる関数 + データをとる前に起動させておく + *******************************************************************/ + void begin(); + + /******************************************************************* + 0が返ってきたらError + 1が返ってきたらOK + *******************************************************************/ + int connectCheck(); + + /******************************************************************* + 照度(Lux)を返してくれる関数 + 引数のwait_timeには下のset_rateが返してくる値を入れてください + @example + + int time; + time = myTSL2561.set_rate(0); + pc.printf("Lux = %d\r\n",myTSL2561.get_luminosity(time)); + *******************************************************************/ + //float getLuminous0(unsigned int wait_time); + //int getLuminous0(unsigned int wait_time); + int getLuminous0(); + int getLuminous1(); + int getLuminous(); + + /******************************************************************* + channelに入れる値によってデータの変換時間が変わる + 0: 変換時間13.7[ms] + 1: 変換時間101[ms] + 2: 変換時間402[ms] + この時間が返ってくるので、それをget_luminosityの引数に入れる(@exampleを参照) + *******************************************************************/ + //unsigned int setRate(int channel); + void setRate(int channel); + + private: - I2C *i2c; - char _addr; - char SLV_WRITE_TSL; - char SLV_READ_TSL; - char power_up_cmd[2]; - char power_down_cmd[2]; - char check_cmd; - char read_cmd; - char timing_cmd[2]; + I2C *i2c; + char _addr; + char SLV_WRITE_TSL; + char SLV_READ_TSL; + + /*char power_up_cmd[2]; + char power_down_cmd[2]; + char check_cmd; + char read_cmd; + char timing_cmd[2]; + */ + char cmd[2], buff[2]; - char check_read,buff[2]; - int val[2]; - unsigned int sekigai,time; - float lux; - - + //char check_read, buff[2]; + int val[2]; + //unsigned int sekigai, time; + //float lux; + //int lux0, lux1, lux; + float lux0, lux1, lux; + float ration, scale; + }; #endif - - - \ No newline at end of file