TSL2561(照度センサ)のライブラリです
Dependents: HYBRYD2018_IZU_ROCKET Hybrid_IZU2019
TSL2561.h@0:40ff41e6257e, 2017-11-16 (annotated)
- Committer:
- zebrin1422
- Date:
- Thu Nov 16 08:23:57 2017 +0000
- Revision:
- 0:40ff41e6257e
- Child:
- 1:4e7b35c8d948
TSL2561_Library
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
zebrin1422 | 0:40ff41e6257e | 1 | #ifndef TSL2561 |
zebrin1422 | 0:40ff41e6257e | 2 | #define TSL2561 |
zebrin1422 | 0:40ff41e6257e | 3 | |
zebrin1422 | 0:40ff41e6257e | 4 | #define SLV_WRITE 0b01110010 |
zebrin1422 | 0:40ff41e6257e | 5 | #define SLV_READ 0b01110011 |
zebrin1422 | 0:40ff41e6257e | 6 | |
zebrin1422 | 0:40ff41e6257e | 7 | #define COMMAND 0xA0 |
zebrin1422 | 0:40ff41e6257e | 8 | #define CONTROL_REG 0x00 |
zebrin1422 | 0:40ff41e6257e | 9 | |
zebrin1422 | 0:40ff41e6257e | 10 | |
zebrin1422 | 0:40ff41e6257e | 11 | #define POWER_UP 0x03 |
zebrin1422 | 0:40ff41e6257e | 12 | #define POWER_DOWN 0x00 |
zebrin1422 | 0:40ff41e6257e | 13 | #define RAW_DATA_LOW 0x0C |
zebrin1422 | 0:40ff41e6257e | 14 | #define RAW_DATA_HIGH 0x0D |
zebrin1422 | 0:40ff41e6257e | 15 | #define CHECK_REG 0x0A |
zebrin1422 | 0:40ff41e6257e | 16 | #define TIMING_REG 0x01; |
zebrin1422 | 0:40ff41e6257e | 17 | |
zebrin1422 | 0:40ff41e6257e | 18 | #define ID_NUMBER 0x11 |
zebrin1422 | 0:40ff41e6257e | 19 | #define TIMING 0x10 |
zebrin1422 | 0:40ff41e6257e | 20 | |
zebrin1422 | 0:40ff41e6257e | 21 | class myTSL2561 |
zebrin1422 | 0:40ff41e6257e | 22 | { |
zebrin1422 | 0:40ff41e6257e | 23 | public: |
zebrin1422 | 0:40ff41e6257e | 24 | |
zebrin1422 | 0:40ff41e6257e | 25 | myTSL2561(I2C &i2cBus); |
zebrin1422 | 0:40ff41e6257e | 26 | |
zebrin1422 | 0:40ff41e6257e | 27 | void begin(); |
zebrin1422 | 0:40ff41e6257e | 28 | /******************************************************************* |
zebrin1422 | 0:40ff41e6257e | 29 | TSL2561を起動させる関数 |
zebrin1422 | 0:40ff41e6257e | 30 | データをとる前に起動させておく |
zebrin1422 | 0:40ff41e6257e | 31 | *******************************************************************/ |
zebrin1422 | 0:40ff41e6257e | 32 | int connect_check(); |
zebrin1422 | 0:40ff41e6257e | 33 | /******************************************************************* |
zebrin1422 | 0:40ff41e6257e | 34 | 0が返ってきたらError |
zebrin1422 | 0:40ff41e6257e | 35 | 1が返ってきたらOK |
zebrin1422 | 0:40ff41e6257e | 36 | *******************************************************************/ |
zebrin1422 | 0:40ff41e6257e | 37 | unsigned int get_luminosity(unsigned int wait_time); |
zebrin1422 | 0:40ff41e6257e | 38 | /******************************************************************* |
zebrin1422 | 0:40ff41e6257e | 39 | 照度(Lux)を返してくれる関数 |
zebrin1422 | 0:40ff41e6257e | 40 | 引数のwait_timeには下のset_rateが返してくる値を入れてください |
zebrin1422 | 0:40ff41e6257e | 41 | @example |
zebrin1422 | 0:40ff41e6257e | 42 | |
zebrin1422 | 0:40ff41e6257e | 43 | int time; |
zebrin1422 | 0:40ff41e6257e | 44 | time = myTSL2561.set_rate(0); |
zebrin1422 | 0:40ff41e6257e | 45 | pc.printf("Lux = %d\r\n",myTSL2561.get_luminosity(time)); |
zebrin1422 | 0:40ff41e6257e | 46 | *******************************************************************/ |
zebrin1422 | 0:40ff41e6257e | 47 | |
zebrin1422 | 0:40ff41e6257e | 48 | unsigned int set_rate(int channel); |
zebrin1422 | 0:40ff41e6257e | 49 | /******************************************************************* |
zebrin1422 | 0:40ff41e6257e | 50 | channelに入れる値によってデータの変換時間が変わる |
zebrin1422 | 0:40ff41e6257e | 51 | 0: 変換時間13.7[ms] |
zebrin1422 | 0:40ff41e6257e | 52 | 1: 変換時間101[ms] |
zebrin1422 | 0:40ff41e6257e | 53 | 2: 変換時間402[ms] |
zebrin1422 | 0:40ff41e6257e | 54 | この時間が返ってくるので、それをget_luminosityの引数に入れる(@exampleを参照) |
zebrin1422 | 0:40ff41e6257e | 55 | *******************************************************************/ |
zebrin1422 | 0:40ff41e6257e | 56 | |
zebrin1422 | 0:40ff41e6257e | 57 | |
zebrin1422 | 0:40ff41e6257e | 58 | |
zebrin1422 | 0:40ff41e6257e | 59 | private: |
zebrin1422 | 0:40ff41e6257e | 60 | |
zebrin1422 | 0:40ff41e6257e | 61 | I2C *i2c; |
zebrin1422 | 0:40ff41e6257e | 62 | unsigned int time; |
zebrin1422 | 0:40ff41e6257e | 63 | char power_up_cmd[2]; |
zebrin1422 | 0:40ff41e6257e | 64 | char power_down_cmd[2]; |
zebrin1422 | 0:40ff41e6257e | 65 | char check_cmd; |
zebrin1422 | 0:40ff41e6257e | 66 | char read_cmd; |
zebrin1422 | 0:40ff41e6257e | 67 | char timing_cmd[2]; |
zebrin1422 | 0:40ff41e6257e | 68 | char check_read,buff[2]; |
zebrin1422 | 0:40ff41e6257e | 69 | int val[2]; |
zebrin1422 | 0:40ff41e6257e | 70 | unsigned int lux,sekigai; |
zebrin1422 | 0:40ff41e6257e | 71 | |
zebrin1422 | 0:40ff41e6257e | 72 | |
zebrin1422 | 0:40ff41e6257e | 73 | }; |
zebrin1422 | 0:40ff41e6257e | 74 | |
zebrin1422 | 0:40ff41e6257e | 75 | #endif |
zebrin1422 | 0:40ff41e6257e | 76 | |
zebrin1422 | 0:40ff41e6257e | 77 | |
zebrin1422 | 0:40ff41e6257e | 78 |