LPS22HBのライブラリ
Dependents: HYBRYD2018_IZU_ROCKET Hybrid_IZU201811_STMBBM_v4 Hybrid_IZU2019
pqLPS22HB_lib.h@1:42cd33e0f174, 2017-08-10 (annotated)
- Committer:
- Sigma884
- Date:
- Thu Aug 10 21:00:39 2017 +0000
- Revision:
- 1:42cd33e0f174
- Parent:
- 0:52880f880b81
- Child:
- 4:b5c758ebd064
LPS22HB?????????; ???????????????; ??????????????
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Sigma884 | 0:52880f880b81 | 1 | #ifndef PQ_LPS22HB_LIB_H |
Sigma884 | 0:52880f880b81 | 2 | #define PQ_LPS22HB_LIB_H |
Sigma884 | 0:52880f880b81 | 3 | |
Sigma884 | 0:52880f880b81 | 4 | #include "mbed.h" |
Sigma884 | 0:52880f880b81 | 5 | |
Sigma884 | 0:52880f880b81 | 6 | #define WHO_AM_I 0x0F |
Sigma884 | 0:52880f880b81 | 7 | |
Sigma884 | 0:52880f880b81 | 8 | #define CTRL_REG1 0x10 |
Sigma884 | 0:52880f880b81 | 9 | #define CTRL_REG2 0x11 |
Sigma884 | 0:52880f880b81 | 10 | #define CTRL_REG3 0x12 |
Sigma884 | 0:52880f880b81 | 11 | #define FIFO_CTRL 0x14 |
Sigma884 | 0:52880f880b81 | 12 | |
Sigma884 | 0:52880f880b81 | 13 | #define P_XL 0x28 |
Sigma884 | 0:52880f880b81 | 14 | #define P_L 0x29 |
Sigma884 | 0:52880f880b81 | 15 | #define P_H 0x2A |
Sigma884 | 0:52880f880b81 | 16 | |
Sigma884 | 0:52880f880b81 | 17 | #define T_L 0x2B |
Sigma884 | 0:52880f880b81 | 18 | #define T_H 0x2C |
Sigma884 | 0:52880f880b81 | 19 | |
Sigma884 | 0:52880f880b81 | 20 | class pqLPS22HB_lib{ |
Sigma884 | 0:52880f880b81 | 21 | |
Sigma884 | 0:52880f880b81 | 22 | /********** |
Sigma884 | 0:52880f880b81 | 23 | コンストラクタ |
Sigma884 | 0:52880f880b81 | 24 | ・AD0がHIGHかLOWかを選択 |
Sigma884 | 0:52880f880b81 | 25 | ・使用するI2Cを選択 |
Sigma884 | 1:42cd33e0f174 | 26 | |
Sigma884 | 1:42cd33e0f174 | 27 | ex) pqLPS22HB_lib myLPS22HB(pqLPS22HB_lib :: AD0_LOW, I2C); |
Sigma884 | 0:52880f880b81 | 28 | **********/ |
Sigma884 | 0:52880f880b81 | 29 | public: |
Sigma884 | 1:42cd33e0f174 | 30 | typedef enum{ |
Sigma884 | 1:42cd33e0f174 | 31 | AD0_LOW = 0xB8, |
Sigma884 | 1:42cd33e0f174 | 32 | AD0_HIGH = 0xBA |
Sigma884 | 1:42cd33e0f174 | 33 | }AD0; |
Sigma884 | 0:52880f880b81 | 34 | pqLPS22HB_lib(AD0 ad0, I2C &userI2C); |
Sigma884 | 0:52880f880b81 | 35 | private: |
Sigma884 | 0:52880f880b81 | 36 | char slave; |
Sigma884 | 0:52880f880b81 | 37 | I2C *i2c; |
Sigma884 | 0:52880f880b81 | 38 | |
Sigma884 | 0:52880f880b81 | 39 | /********** |
Sigma884 | 0:52880f880b81 | 40 | センサー起動(void) |
Sigma884 | 0:52880f880b81 | 41 | ・データ更新レートを選択(1, 10, 25, 50, 75) |
Sigma884 | 0:52880f880b81 | 42 | **********/ |
Sigma884 | 0:52880f880b81 | 43 | public: |
Sigma884 | 0:52880f880b81 | 44 | void begin(int drate); |
Sigma884 | 0:52880f880b81 | 45 | private: |
Sigma884 | 0:52880f880b81 | 46 | char cmd_ctrl_reg1[2]; |
Sigma884 | 0:52880f880b81 | 47 | |
Sigma884 | 0:52880f880b81 | 48 | /********** |
Sigma884 | 0:52880f880b81 | 49 | FIFO設定(void)(未実装) |
Sigma884 | 0:52880f880b81 | 50 | ・モードを選択(したい) |
Sigma884 | 0:52880f880b81 | 51 | ・FIFO ウォーターマークレベルを選択(したい) |
Sigma884 | 0:52880f880b81 | 52 | **********/ |
Sigma884 | 0:52880f880b81 | 53 | public: |
Sigma884 | 0:52880f880b81 | 54 | void setFIFO(); |
Sigma884 | 0:52880f880b81 | 55 | private: |
Sigma884 | 0:52880f880b81 | 56 | char cmd_ctrl_reg2[2]; |
Sigma884 | 0:52880f880b81 | 57 | char cmd_ctrl_reg3[2]; |
Sigma884 | 0:52880f880b81 | 58 | char cmd_fifo_ctrl[2]; |
Sigma884 | 0:52880f880b81 | 59 | |
Sigma884 | 0:52880f880b81 | 60 | /********** |
Sigma884 | 0:52880f880b81 | 61 | Who Am I(int) |
Sigma884 | 0:52880f880b81 | 62 | 接続できているかを判定 |
Sigma884 | 0:52880f880b81 | 63 | 接続OK:0 |
Sigma884 | 0:52880f880b81 | 64 | 接続NG:-1 |
Sigma884 | 0:52880f880b81 | 65 | **********/ |
Sigma884 | 0:52880f880b81 | 66 | public: |
Sigma884 | 0:52880f880b81 | 67 | int whoAmI(); |
Sigma884 | 0:52880f880b81 | 68 | private: |
Sigma884 | 0:52880f880b81 | 69 | char cmd_who_am_i[1]; |
Sigma884 | 0:52880f880b81 | 70 | |
Sigma884 | 0:52880f880b81 | 71 | /********** |
Sigma884 | 0:52880f880b81 | 72 | 気圧を取得(float) |
Sigma884 | 0:52880f880b81 | 73 | **********/ |
Sigma884 | 0:52880f880b81 | 74 | public: |
Sigma884 | 0:52880f880b81 | 75 | float getPres(); |
Sigma884 | 0:52880f880b81 | 76 | private: |
Sigma884 | 0:52880f880b81 | 77 | char cmd_p[3]; |
Sigma884 | 0:52880f880b81 | 78 | int data_p[3]; |
Sigma884 | 0:52880f880b81 | 79 | |
Sigma884 | 0:52880f880b81 | 80 | /********** |
Sigma884 | 0:52880f880b81 | 81 | 温度を取得(float) |
Sigma884 | 0:52880f880b81 | 82 | **********/ |
Sigma884 | 0:52880f880b81 | 83 | public: |
Sigma884 | 0:52880f880b81 | 84 | float getTemp(); |
Sigma884 | 0:52880f880b81 | 85 | private: |
Sigma884 | 0:52880f880b81 | 86 | char cmd_t[2]; |
Sigma884 | 0:52880f880b81 | 87 | int data_t[2]; |
Sigma884 | 1:42cd33e0f174 | 88 | |
Sigma884 | 1:42cd33e0f174 | 89 | /********** |
Sigma884 | 1:42cd33e0f174 | 90 | 高度を取得(float) |
Sigma884 | 1:42cd33e0f174 | 91 | ・引数に0m地点での気圧・温度を入れる |
Sigma884 | 1:42cd33e0f174 | 92 | ・計算式のソース:http://www.geocities.jp/u4ren6/Main/Excel_Data0017.html |
Sigma884 | 1:42cd33e0f174 | 93 | **********/ |
Sigma884 | 1:42cd33e0f174 | 94 | public: |
Sigma884 | 1:42cd33e0f174 | 95 | float getAlt(float P_0, float T_0); |
Sigma884 | 1:42cd33e0f174 | 96 | private: |
Sigma884 | 1:42cd33e0f174 | 97 | float pres_0; |
Sigma884 | 1:42cd33e0f174 | 98 | float temp_0; |
Sigma884 | 1:42cd33e0f174 | 99 | float pres_now; |
Sigma884 | 0:52880f880b81 | 100 | }; |
Sigma884 | 0:52880f880b81 | 101 | |
Sigma884 | 0:52880f880b81 | 102 | #endif |