LPS25HをSPIで使えるようにしたライブラリです。 ・気圧 ・温度 ・高度(気圧と温度から) が取得できます。 FIFOも使えます。
Diff: LPS25H_spi.h
- Revision:
- 0:7bbdfc4610fe
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/LPS25H_spi.h Fri Nov 10 06:47:33 2017 +0000 @@ -0,0 +1,92 @@ +#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 \ No newline at end of file