TSL2561(照度センサ)のライブラリです
Dependents: HYBRYD2018_IZU_ROCKET Hybrid_IZU2019
TSL2561.h@3:f62d7ea19cbb, 2019-01-12 (annotated)
- Committer:
- Sigma884
- Date:
- Sat Jan 12 17:05:34 2019 +0000
- Revision:
- 3:f62d7ea19cbb
- Parent:
- 2:276a177de00b
- Child:
- 4:c1e82279b4bb
The correct illumination could be measured now.
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 |
Sigma884 | 3:f62d7ea19cbb | 16 | #define RAW_DATA_R_LOW 0x0E |
Sigma884 | 3:f62d7ea19cbb | 17 | #define RAW_DATA_R_HIGH 0x0F |
zebrin1422 | 0:40ff41e6257e | 18 | #define CHECK_REG 0x0A |
zebrin1422 | 0:40ff41e6257e | 19 | #define TIMING_REG 0x01; |
zebrin1422 | 0:40ff41e6257e | 20 | |
zebrin1422 | 0:40ff41e6257e | 21 | #define ID_NUMBER 0x11 |
zebrin1422 | 0:40ff41e6257e | 22 | #define TIMING 0x10 |
zebrin1422 | 0:40ff41e6257e | 23 | |
zebrin1422 | 0:40ff41e6257e | 24 | class myTSL2561 |
zebrin1422 | 0:40ff41e6257e | 25 | { |
zebrin1422 | 0:40ff41e6257e | 26 | public: |
zebrin1422 | 0:40ff41e6257e | 27 | |
Sigma884 | 3:f62d7ea19cbb | 28 | typedef enum AD0{ |
Sigma884 | 3:f62d7ea19cbb | 29 | AD0_LOW = 0, |
Sigma884 | 3:f62d7ea19cbb | 30 | AD0_HIGH = 1, |
Sigma884 | 3:f62d7ea19cbb | 31 | AD0_OPEN = 2 |
Sigma884 | 3:f62d7ea19cbb | 32 | } AD0; |
zebrin1422 | 1:4e7b35c8d948 | 33 | |
Sigma884 | 3:f62d7ea19cbb | 34 | myTSL2561(I2C &i2cBus,AD0 celect = AD0_OPEN); |
Sigma884 | 3:f62d7ea19cbb | 35 | |
Sigma884 | 3:f62d7ea19cbb | 36 | /******************************************************************* |
Sigma884 | 3:f62d7ea19cbb | 37 | TSL2561を起動させる関数 |
Sigma884 | 3:f62d7ea19cbb | 38 | データをとる前に起動させておく |
Sigma884 | 3:f62d7ea19cbb | 39 | *******************************************************************/ |
Sigma884 | 3:f62d7ea19cbb | 40 | void begin(); |
Sigma884 | 3:f62d7ea19cbb | 41 | |
Sigma884 | 3:f62d7ea19cbb | 42 | /******************************************************************* |
Sigma884 | 3:f62d7ea19cbb | 43 | 0が返ってきたらError |
Sigma884 | 3:f62d7ea19cbb | 44 | 1が返ってきたらOK |
Sigma884 | 3:f62d7ea19cbb | 45 | *******************************************************************/ |
Sigma884 | 3:f62d7ea19cbb | 46 | int connectCheck(); |
Sigma884 | 3:f62d7ea19cbb | 47 | |
Sigma884 | 3:f62d7ea19cbb | 48 | /******************************************************************* |
Sigma884 | 3:f62d7ea19cbb | 49 | 照度(Lux)を返してくれる関数 |
Sigma884 | 3:f62d7ea19cbb | 50 | 引数のwait_timeには下のset_rateが返してくる値を入れてください |
Sigma884 | 3:f62d7ea19cbb | 51 | @example |
Sigma884 | 3:f62d7ea19cbb | 52 | |
Sigma884 | 3:f62d7ea19cbb | 53 | int time; |
Sigma884 | 3:f62d7ea19cbb | 54 | time = myTSL2561.set_rate(0); |
Sigma884 | 3:f62d7ea19cbb | 55 | pc.printf("Lux = %d\r\n",myTSL2561.get_luminosity(time)); |
Sigma884 | 3:f62d7ea19cbb | 56 | *******************************************************************/ |
Sigma884 | 3:f62d7ea19cbb | 57 | //float getLuminous0(unsigned int wait_time); |
Sigma884 | 3:f62d7ea19cbb | 58 | //int getLuminous0(unsigned int wait_time); |
Sigma884 | 3:f62d7ea19cbb | 59 | int getLuminous0(); |
Sigma884 | 3:f62d7ea19cbb | 60 | int getLuminous1(); |
Sigma884 | 3:f62d7ea19cbb | 61 | int getLuminous(); |
Sigma884 | 3:f62d7ea19cbb | 62 | |
Sigma884 | 3:f62d7ea19cbb | 63 | /******************************************************************* |
Sigma884 | 3:f62d7ea19cbb | 64 | channelに入れる値によってデータの変換時間が変わる |
Sigma884 | 3:f62d7ea19cbb | 65 | 0: 変換時間13.7[ms] |
Sigma884 | 3:f62d7ea19cbb | 66 | 1: 変換時間101[ms] |
Sigma884 | 3:f62d7ea19cbb | 67 | 2: 変換時間402[ms] |
Sigma884 | 3:f62d7ea19cbb | 68 | この時間が返ってくるので、それをget_luminosityの引数に入れる(@exampleを参照) |
Sigma884 | 3:f62d7ea19cbb | 69 | *******************************************************************/ |
Sigma884 | 3:f62d7ea19cbb | 70 | //unsigned int setRate(int channel); |
Sigma884 | 3:f62d7ea19cbb | 71 | void setRate(int channel); |
Sigma884 | 3:f62d7ea19cbb | 72 | |
Sigma884 | 3:f62d7ea19cbb | 73 | |
zebrin1422 | 0:40ff41e6257e | 74 | private: |
zebrin1422 | 0:40ff41e6257e | 75 | |
Sigma884 | 3:f62d7ea19cbb | 76 | I2C *i2c; |
Sigma884 | 3:f62d7ea19cbb | 77 | char _addr; |
Sigma884 | 3:f62d7ea19cbb | 78 | char SLV_WRITE_TSL; |
Sigma884 | 3:f62d7ea19cbb | 79 | char SLV_READ_TSL; |
Sigma884 | 3:f62d7ea19cbb | 80 | |
Sigma884 | 3:f62d7ea19cbb | 81 | /*char power_up_cmd[2]; |
Sigma884 | 3:f62d7ea19cbb | 82 | char power_down_cmd[2]; |
Sigma884 | 3:f62d7ea19cbb | 83 | char check_cmd; |
Sigma884 | 3:f62d7ea19cbb | 84 | char read_cmd; |
Sigma884 | 3:f62d7ea19cbb | 85 | char timing_cmd[2]; |
Sigma884 | 3:f62d7ea19cbb | 86 | */ |
Sigma884 | 3:f62d7ea19cbb | 87 | char cmd[2], buff[2]; |
zebrin1422 | 1:4e7b35c8d948 | 88 | |
Sigma884 | 3:f62d7ea19cbb | 89 | //char check_read, buff[2]; |
Sigma884 | 3:f62d7ea19cbb | 90 | int val[2]; |
Sigma884 | 3:f62d7ea19cbb | 91 | //unsigned int sekigai, time; |
Sigma884 | 3:f62d7ea19cbb | 92 | //float lux; |
Sigma884 | 3:f62d7ea19cbb | 93 | //int lux0, lux1, lux; |
Sigma884 | 3:f62d7ea19cbb | 94 | float lux0, lux1, lux; |
Sigma884 | 3:f62d7ea19cbb | 95 | float ration, scale; |
Sigma884 | 3:f62d7ea19cbb | 96 | |
zebrin1422 | 0:40ff41e6257e | 97 | }; |
zebrin1422 | 0:40ff41e6257e | 98 | |
zebrin1422 | 0:40ff41e6257e | 99 | #endif |