気圧センサLPS22HBのライブラリ
Dependents: Hybrid_IZU2021_MAIN_OS5 Hybrid_IZU2021_MISSION_v2 Hybrid_IZU2021_MAIN Hybrid_IZU2021_MISSION
PQ_LPS22HB.h@1:fdde28032fb5, 2021-03-08 (annotated)
- Committer:
- tanahashi
- Date:
- Mon Mar 08 16:48:54 2021 +0000
- Revision:
- 1:fdde28032fb5
- Parent:
- 0:9a7d5d7e63be
fixed LSB
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
tanahashi | 0:9a7d5d7e63be | 1 | #ifndef PQ_LPS22HB_H |
tanahashi | 0:9a7d5d7e63be | 2 | #define PQ_LPS22HB_H |
tanahashi | 0:9a7d5d7e63be | 3 | |
tanahashi | 0:9a7d5d7e63be | 4 | #define LPS22HB_ADDR_HIGH 0b1011101<<1 |
tanahashi | 0:9a7d5d7e63be | 5 | #define LPS22HB_ADDR_LOW 0b1011100<<1 |
tanahashi | 0:9a7d5d7e63be | 6 | #define LPS22HB_WHO_AM_I 0x0F |
tanahashi | 0:9a7d5d7e63be | 7 | #define LPS22HB_CTRL_REG1 0x10 |
tanahashi | 0:9a7d5d7e63be | 8 | #define LPS22HB_PRESS_XL 0x28 |
tanahashi | 0:9a7d5d7e63be | 9 | #define LPS22HB_TEMP_L 0x2B |
tanahashi | 1:fdde28032fb5 | 10 | #define LPS22HB_PRESS_LSB 4096.0 |
tanahashi | 1:fdde28032fb5 | 11 | #define LPS22HB_TEMP_LSB 0.01 |
tanahashi | 0:9a7d5d7e63be | 12 | |
tanahashi | 0:9a7d5d7e63be | 13 | /** LPS22HBのライブラリ |
tanahashi | 0:9a7d5d7e63be | 14 | * @code |
tanahashi | 0:9a7d5d7e63be | 15 | #include "mbed.h" |
tanahashi | 0:9a7d5d7e63be | 16 | #include "PQ_LPS22HB.h" |
tanahashi | 0:9a7d5d7e63be | 17 | |
tanahashi | 0:9a7d5d7e63be | 18 | Serial pc(USBTX, USBRX, 115200); |
tanahashi | 0:9a7d5d7e63be | 19 | |
tanahashi | 0:9a7d5d7e63be | 20 | I2C i2c(p9, p10); |
tanahashi | 0:9a7d5d7e63be | 21 | |
tanahashi | 0:9a7d5d7e63be | 22 | LPS22HB lps(i2c, LPS22HB::SA0_HIGH); |
tanahashi | 0:9a7d5d7e63be | 23 | |
tanahashi | 0:9a7d5d7e63be | 24 | float press, temp; |
tanahashi | 0:9a7d5d7e63be | 25 | |
tanahashi | 0:9a7d5d7e63be | 26 | int main() { |
tanahashi | 0:9a7d5d7e63be | 27 | lps.begin(); |
tanahashi | 0:9a7d5d7e63be | 28 | while(1) { |
tanahashi | 0:9a7d5d7e63be | 29 | if(lps.test()){ |
tanahashi | 0:9a7d5d7e63be | 30 | lps.read(&press, &temp); |
tanahashi | 0:9a7d5d7e63be | 31 | pc.printf("%f\t%f\r\n", press, temp); |
tanahashi | 0:9a7d5d7e63be | 32 | } |
tanahashi | 0:9a7d5d7e63be | 33 | else { |
tanahashi | 0:9a7d5d7e63be | 34 | pc.printf("ERROR!!\r\n"); |
tanahashi | 0:9a7d5d7e63be | 35 | } |
tanahashi | 0:9a7d5d7e63be | 36 | } |
tanahashi | 0:9a7d5d7e63be | 37 | } |
tanahashi | 0:9a7d5d7e63be | 38 | * @endcode |
tanahashi | 0:9a7d5d7e63be | 39 | */ |
tanahashi | 0:9a7d5d7e63be | 40 | class LPS22HB |
tanahashi | 0:9a7d5d7e63be | 41 | { |
tanahashi | 0:9a7d5d7e63be | 42 | public: |
tanahashi | 0:9a7d5d7e63be | 43 | typedef enum { |
tanahashi | 0:9a7d5d7e63be | 44 | SA0_HIGH = LPS22HB_ADDR_HIGH, |
tanahashi | 0:9a7d5d7e63be | 45 | SA0_LOW = LPS22HB_ADDR_LOW |
tanahashi | 0:9a7d5d7e63be | 46 | } SA0_t; |
tanahashi | 0:9a7d5d7e63be | 47 | |
tanahashi | 0:9a7d5d7e63be | 48 | private: |
tanahashi | 0:9a7d5d7e63be | 49 | I2C *_i2c; |
tanahashi | 0:9a7d5d7e63be | 50 | int _addr; |
tanahashi | 0:9a7d5d7e63be | 51 | char cmd[2]; |
tanahashi | 0:9a7d5d7e63be | 52 | char buff[6]; |
tanahashi | 0:9a7d5d7e63be | 53 | |
tanahashi | 0:9a7d5d7e63be | 54 | public: |
tanahashi | 0:9a7d5d7e63be | 55 | /** |
tanahashi | 0:9a7d5d7e63be | 56 | * @param i2c I2Cのインスタンスへの参照 |
tanahashi | 0:9a7d5d7e63be | 57 | * @param SA0 SA0ピンのH/Lレベル |
tanahashi | 0:9a7d5d7e63be | 58 | */ |
tanahashi | 0:9a7d5d7e63be | 59 | LPS22HB(I2C &i2c, SA0_t SA0); |
tanahashi | 0:9a7d5d7e63be | 60 | |
tanahashi | 0:9a7d5d7e63be | 61 | /** |
tanahashi | 0:9a7d5d7e63be | 62 | * センサ動作開始 |
tanahashi | 0:9a7d5d7e63be | 63 | */ |
tanahashi | 0:9a7d5d7e63be | 64 | void begin(); |
tanahashi | 0:9a7d5d7e63be | 65 | |
tanahashi | 0:9a7d5d7e63be | 66 | /** |
tanahashi | 0:9a7d5d7e63be | 67 | * センサ通信テスト |
tanahashi | 0:9a7d5d7e63be | 68 | * @retval true 通信成功 |
tanahashi | 0:9a7d5d7e63be | 69 | * @retval false 通信失敗 |
tanahashi | 0:9a7d5d7e63be | 70 | */ |
tanahashi | 0:9a7d5d7e63be | 71 | bool test(); |
tanahashi | 0:9a7d5d7e63be | 72 | |
tanahashi | 0:9a7d5d7e63be | 73 | /** |
tanahashi | 0:9a7d5d7e63be | 74 | * 測定値の読み取り |
tanahashi | 0:9a7d5d7e63be | 75 | * @param press 気圧を格納する変数 |
tanahashi | 0:9a7d5d7e63be | 76 | * @param temp 温度を格納する変数 |
tanahashi | 0:9a7d5d7e63be | 77 | */ |
tanahashi | 0:9a7d5d7e63be | 78 | void read(float *press, float *temp); |
tanahashi | 0:9a7d5d7e63be | 79 | |
tanahashi | 0:9a7d5d7e63be | 80 | /** |
tanahashi | 0:9a7d5d7e63be | 81 | * 気圧測定値の読み取り |
tanahashi | 0:9a7d5d7e63be | 82 | * @param press 気圧を格納する変数 |
tanahashi | 0:9a7d5d7e63be | 83 | */ |
tanahashi | 0:9a7d5d7e63be | 84 | void read_press(float *press); |
tanahashi | 0:9a7d5d7e63be | 85 | |
tanahashi | 0:9a7d5d7e63be | 86 | /** |
tanahashi | 0:9a7d5d7e63be | 87 | * 温度測定値の読み取り |
tanahashi | 0:9a7d5d7e63be | 88 | * @param temp 温度を格納する変数 |
tanahashi | 0:9a7d5d7e63be | 89 | */ |
tanahashi | 0:9a7d5d7e63be | 90 | void read_temp(float *temp); |
tanahashi | 0:9a7d5d7e63be | 91 | }; |
tanahashi | 0:9a7d5d7e63be | 92 | |
tanahashi | 0:9a7d5d7e63be | 93 | #endif |