TSL2561(照度センサ)のライブラリです
Dependents: HYBRYD2018_IZU_ROCKET Hybrid_IZU2019
Diff: TSL2561.h
- Revision:
- 0:40ff41e6257e
- Child:
- 1:4e7b35c8d948
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/TSL2561.h Thu Nov 16 08:23:57 2017 +0000 @@ -0,0 +1,78 @@ +#ifndef TSL2561 +#define TSL2561 + +#define SLV_WRITE 0b01110010 +#define SLV_READ 0b01110011 + +#define COMMAND 0xA0 +#define CONTROL_REG 0x00 + + +#define POWER_UP 0x03 +#define POWER_DOWN 0x00 +#define RAW_DATA_LOW 0x0C +#define RAW_DATA_HIGH 0x0D +#define CHECK_REG 0x0A +#define TIMING_REG 0x01; + +#define ID_NUMBER 0x11 +#define TIMING 0x10 + +class myTSL2561 +{ +public: + + myTSL2561(I2C &i2cBus); + + void begin(); + /******************************************************************* + TSL2561を起動させる関数 + データをとる前に起動させておく + *******************************************************************/ + int connect_check(); + /******************************************************************* + 0が返ってきたらError + 1が返ってきたらOK + *******************************************************************/ + unsigned int 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を参照) + *******************************************************************/ + + + +private: + + I2C *i2c; + unsigned int time; + char power_up_cmd[2]; + char power_down_cmd[2]; + char check_cmd; + char read_cmd; + char timing_cmd[2]; + char check_read,buff[2]; + int val[2]; + unsigned int lux,sekigai; + + +}; + +#endif + + + \ No newline at end of file