BME280にアクセスするためのライブラリ

Committer:
j_rocket_boy
Date:
Tue Jul 10 07:38:08 2018 +0000
Revision:
0:95f2b96cdc7f
Child:
1:0dbf59c6e564
???????; ????????; ??????????

Who changed what in which revision?

UserRevisionLine numberNew contents of line
j_rocket_boy 0:95f2b96cdc7f 1 #ifndef BME280_LIB_H
j_rocket_boy 0:95f2b96cdc7f 2 #define BME280_LIB
j_rocket_boy 0:95f2b96cdc7f 3
j_rocket_boy 0:95f2b96cdc7f 4 #include "mbed.h"
j_rocket_boy 0:95f2b96cdc7f 5 #include "i2c_general_io.h"
j_rocket_boy 0:95f2b96cdc7f 6 //データシートより,補正関数用
j_rocket_boy 0:95f2b96cdc7f 7 typedef long signed int BME280_S32_t;
j_rocket_boy 0:95f2b96cdc7f 8 typedef long signed int BME280_U32_t;
j_rocket_boy 0:95f2b96cdc7f 9 typedef long long signed int BME280_S64_t;
j_rocket_boy 0:95f2b96cdc7f 10
j_rocket_boy 0:95f2b96cdc7f 11 class BME280{
j_rocket_boy 0:95f2b96cdc7f 12
j_rocket_boy 0:95f2b96cdc7f 13 private:
j_rocket_boy 0:95f2b96cdc7f 14 #include "BME280_reg.h" //レジスタ関連の定義
j_rocket_boy 0:95f2b96cdc7f 15
j_rocket_boy 0:95f2b96cdc7f 16 public:
j_rocket_boy 0:95f2b96cdc7f 17 /**
j_rocket_boy 0:95f2b96cdc7f 18 @brief Create a new i2c sensor.
j_rocket_boy 0:95f2b96cdc7f 19 @param sda SDA pin name (Defined in PinName.h)
j_rocket_boy 0:95f2b96cdc7f 20 @param sck SCK pin name (Defined in PinName.h)
j_rocket_boy 0:95f2b96cdc7f 21 */
j_rocket_boy 0:95f2b96cdc7f 22 BME280(PinName sda, PinName scl);
j_rocket_boy 0:95f2b96cdc7f 23 /**
j_rocket_boy 0:95f2b96cdc7f 24 @brief Create a new i2c sensor.
j_rocket_boy 0:95f2b96cdc7f 25 @param &i2c_obj i2c name
j_rocket_boy 0:95f2b96cdc7f 26 */
j_rocket_boy 0:95f2b96cdc7f 27 BME280(GEN_I2C &i2c_obj);
j_rocket_boy 0:95f2b96cdc7f 28
j_rocket_boy 0:95f2b96cdc7f 29 /**
j_rocket_boy 0:95f2b96cdc7f 30 @brief Disable the i2c sensor.
j_rocket_boy 0:95f2b96cdc7f 31 @param No parameters.
j_rocket_boy 0:95f2b96cdc7f 32 */
j_rocket_boy 0:95f2b96cdc7f 33 virtual ~BME280();
j_rocket_boy 0:95f2b96cdc7f 34
j_rocket_boy 0:95f2b96cdc7f 35 const char hum_reg_value = HUM_OVER_SAMPL1;
j_rocket_boy 0:95f2b96cdc7f 36 const char meas_reg_value = TEMP_OVER_SAMPL1 | PRESS_OVER_SAMPL1 | SLEEP_MODE;
j_rocket_boy 0:95f2b96cdc7f 37 const char config_reg_value = IIR_OFF;
j_rocket_boy 0:95f2b96cdc7f 38
j_rocket_boy 0:95f2b96cdc7f 39 float temp;
j_rocket_boy 0:95f2b96cdc7f 40 double press;
j_rocket_boy 0:95f2b96cdc7f 41 float hum;
j_rocket_boy 0:95f2b96cdc7f 42
j_rocket_boy 0:95f2b96cdc7f 43 void read_sensor(void);
j_rocket_boy 0:95f2b96cdc7f 44 bool data_is_ready(void);
j_rocket_boy 0:95f2b96cdc7f 45 void set_sleep_mode(void);
j_rocket_boy 0:95f2b96cdc7f 46 void set_force_mode(void);
j_rocket_boy 0:95f2b96cdc7f 47 void set_normal_mode(void);
j_rocket_boy 0:95f2b96cdc7f 48
j_rocket_boy 0:95f2b96cdc7f 49 private:
j_rocket_boy 0:95f2b96cdc7f 50
j_rocket_boy 0:95f2b96cdc7f 51 GEN_I2C *i2c_p;
j_rocket_boy 0:95f2b96cdc7f 52 GEN_I2C &sensor;
j_rocket_boy 0:95f2b96cdc7f 53
j_rocket_boy 0:95f2b96cdc7f 54 BME280_S32_t t_fine;
j_rocket_boy 0:95f2b96cdc7f 55 BME280_S32_t BME280_compensate_T_int32(BME280_S32_t adc_T);
j_rocket_boy 0:95f2b96cdc7f 56 BME280_U32_t BME280_compensate_P_int64(BME280_S32_t adc_P);
j_rocket_boy 0:95f2b96cdc7f 57 BME280_U32_t BME280_compensate_H_int32(BME280_S32_t adc_H);
j_rocket_boy 0:95f2b96cdc7f 58
j_rocket_boy 0:95f2b96cdc7f 59 void init(void);
j_rocket_boy 0:95f2b96cdc7f 60
j_rocket_boy 0:95f2b96cdc7f 61 //データシートより,補正定数
j_rocket_boy 0:95f2b96cdc7f 62 unsigned short dig_T1;
j_rocket_boy 0:95f2b96cdc7f 63 signed short dig_T2;
j_rocket_boy 0:95f2b96cdc7f 64 signed short dig_T3;
j_rocket_boy 0:95f2b96cdc7f 65
j_rocket_boy 0:95f2b96cdc7f 66 unsigned short dig_P1;
j_rocket_boy 0:95f2b96cdc7f 67 signed short dig_P2;
j_rocket_boy 0:95f2b96cdc7f 68 signed short dig_P3;
j_rocket_boy 0:95f2b96cdc7f 69 signed short dig_P4;
j_rocket_boy 0:95f2b96cdc7f 70 signed short dig_P5;
j_rocket_boy 0:95f2b96cdc7f 71 signed short dig_P6;
j_rocket_boy 0:95f2b96cdc7f 72 signed short dig_P7;
j_rocket_boy 0:95f2b96cdc7f 73 signed short dig_P8;
j_rocket_boy 0:95f2b96cdc7f 74 signed short dig_P9;
j_rocket_boy 0:95f2b96cdc7f 75
j_rocket_boy 0:95f2b96cdc7f 76 unsigned char dig_H1;
j_rocket_boy 0:95f2b96cdc7f 77 signed short dig_H2;
j_rocket_boy 0:95f2b96cdc7f 78 unsigned char dig_H3;
j_rocket_boy 0:95f2b96cdc7f 79 signed short dig_H4;
j_rocket_boy 0:95f2b96cdc7f 80 signed short dig_H5;
j_rocket_boy 0:95f2b96cdc7f 81 signed char dig_H6;
j_rocket_boy 0:95f2b96cdc7f 82
j_rocket_boy 0:95f2b96cdc7f 83
j_rocket_boy 0:95f2b96cdc7f 84 };
j_rocket_boy 0:95f2b96cdc7f 85
j_rocket_boy 0:95f2b96cdc7f 86
j_rocket_boy 0:95f2b96cdc7f 87
j_rocket_boy 0:95f2b96cdc7f 88 #endif