TSL2561(照度センサ)のライブラリです
Dependents: HYBRYD2018_IZU_ROCKET Hybrid_IZU2019
TSL2561.h@2:276a177de00b, 2018-11-14 (annotated)
- 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?
User | Revision | Line number | New 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 |