気圧センサLPS22HBのライブラリ

Dependents:   Hybrid_IZU2021_MAIN_OS5 Hybrid_IZU2021_MISSION_v2 Hybrid_IZU2021_MAIN Hybrid_IZU2021_MISSION

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?

UserRevisionLine numberNew 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