LPS22HBのライブラリ

Dependents:   HYBRYD2018_IZU_ROCKET Hybrid_IZU201811_STMBBM_v4 Hybrid_IZU2019

Committer:
Sigma884
Date:
Wed Feb 20 12:26:08 2019 +0000
Revision:
4:b5c758ebd064
Parent:
1:42cd33e0f174
getAlt2 comming!!

Who changed what in which revision?

UserRevisionLine numberNew 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 4:b5c758ebd064 100
Sigma884 4:b5c758ebd064 101 /**********
Sigma884 4:b5c758ebd064 102 高度を取得(float)
Sigma884 4:b5c758ebd064 103 ※温度の高度による変化を考慮
Sigma884 4:b5c758ebd064 104 ※こちらを推奨
Sigma884 4:b5c758ebd064 105 ・引数に0m地点での気圧・温度を入れる
Sigma884 4:b5c758ebd064 106 ・計算式のソース:http://zakii.la.coocan.jp/physics/31_pressure.htm
Sigma884 4:b5c758ebd064 107 **********/
Sigma884 4:b5c758ebd064 108 public:
Sigma884 4:b5c758ebd064 109 float getAlt2(float P_0, float T_0);
Sigma884 4:b5c758ebd064 110 private:
Sigma884 4:b5c758ebd064 111 float pres;
Sigma884 0:52880f880b81 112 };
Sigma884 0:52880f880b81 113
Sigma884 0:52880f880b81 114 #endif