LPS25HをSPIで使えるようにしたライブラリです。 ・気圧 ・温度 ・高度(気圧と温度から) が取得できます。 FIFOも使えます。
LPS25H_spi.h
- Committer:
- Sigma884
- Date:
- 2020-03-17
- Revision:
- 2:7ea8c77e960c
- Parent:
- 0:7bbdfc4610fe
File content as of revision 2:7ea8c77e960c:
#ifndef LPS25H_LIB_H #define LPS25H_LIB_H #include "mbed.h" #define WHO_AM_I 0x0F #define CTRL_REG1 0x20 #define CTRL_REG2 0x21 #define FIFO_CTRL 0x2E #define P_XL 0x28 #define P_L 0x29 #define P_H 0x2A #define T_L 0x2B #define T_H 0x2C class LPS25H_spi{ /********** コンストラクタ ・使用するSPIを選択 ・使用するCSピンを選択 ex) LPS25H_spi myLPS25H(SPI, p8); **********/ public: LPS25H_spi(SPI &userSPI, PinName userPin); private: SPI *spi; DigitalOut cs; /********** (void)センサー起動(int データレート) ・データ更新レートを選択(1, 10, 25, 50, 75) **********/ public: void begin(int drate); private: int cmd_ctrl_reg1; /********** (void)FIFO設定(int FIFOレベル) ・FIFOウォーターマークレベルを選択(2, 4, 8, 16, 32) **********/ public: void setFIFO(int size); private: int cmd_ctrl_reg2; int cmd_fifo_ctrl; /********** (int)Who Am I 接続できているかを判定 接続OK:1 接続NG:-1 **********/ public: int whoAmI(); private: int ans; /********** (float)気圧を取得 **********/ public: float getPres(); private: unsigned int pres_raw[3]; /********** (float)温度を取得 **********/ public: float getTemp(); private: unsigned int temp_raw[2]; /********** (float)高度を取得(float 0mでの気圧, float 0mでの温度) ・引数に0m地点での気圧・温度を入れる ・計算式のソース:http://www.geocities.jp/u4ren6/Main/Excel_Data0017.html **********/ public: float getAlt(float P_0, float T_0); private: float pres_0; float temp_0; float pres_now; }; #endif