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

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

Who changed what in which revision?

UserRevisionLine numberNew contents of line
j_rocket_boy 0:95f2b96cdc7f 1 #ifndef BME280_REG_H
j_rocket_boy 0:95f2b96cdc7f 2 #define BME280_REG_H
j_rocket_boy 0:95f2b96cdc7f 3
j_rocket_boy 0:95f2b96cdc7f 4 const char BME280_add = 0x76<<1;
j_rocket_boy 0:95f2b96cdc7f 5 /*
j_rocket_boy 0:95f2b96cdc7f 6 const char HUM_LSB = 0xFE;
j_rocket_boy 0:95f2b96cdc7f 7 const char HUM_MSB = 0xFD;
j_rocket_boy 0:95f2b96cdc7f 8 const char TEMP_XLSB = 0xFC;
j_rocket_boy 0:95f2b96cdc7f 9 const char TEMP_LSB = 0xFB;
j_rocket_boy 0:95f2b96cdc7f 10 const char TEMP_MSB = 0xFA;
j_rocket_boy 0:95f2b96cdc7f 11 const char PRESS_XLSB = 0xF9;
j_rocket_boy 0:95f2b96cdc7f 12 const char PRESS_LSB = 0xF8;
j_rocket_boy 0:95f2b96cdc7f 13 */
j_rocket_boy 0:95f2b96cdc7f 14 const char PRESS_MSB = 0xF7;
j_rocket_boy 0:95f2b96cdc7f 15 const char CONFIG = 0xF5;
j_rocket_boy 0:95f2b96cdc7f 16 const char CTRL_MEAS = 0xF4;
j_rocket_boy 0:95f2b96cdc7f 17 const char STATUS = 0xF3;
j_rocket_boy 0:95f2b96cdc7f 18 const char CTRL_HUM = 0xF2;
j_rocket_boy 0:95f2b96cdc7f 19 const char RESET_REG = 0xE0;
j_rocket_boy 0:95f2b96cdc7f 20 const char ID = 0xD0;
j_rocket_boy 0:95f2b96cdc7f 21
j_rocket_boy 0:95f2b96cdc7f 22 const char CALIB00 = 0x88;
j_rocket_boy 0:95f2b96cdc7f 23 const char CALIB25 = 0xA1;
j_rocket_boy 0:95f2b96cdc7f 24 const char CALIB26 = 0xE1;
j_rocket_boy 0:95f2b96cdc7f 25
j_rocket_boy 0:95f2b96cdc7f 26
j_rocket_boy 0:95f2b96cdc7f 27 //ID
j_rocket_boy 0:95f2b96cdc7f 28 //IDの規定値
j_rocket_boy 0:95f2b96cdc7f 29 const char ID_VALUE = 0b01100000;
j_rocket_boy 0:95f2b96cdc7f 30
j_rocket_boy 0:95f2b96cdc7f 31 //RESET
j_rocket_boy 0:95f2b96cdc7f 32 //リセットをかけるための値
j_rocket_boy 0:95f2b96cdc7f 33 const char RESET_VALUE = 0xB6;
j_rocket_boy 0:95f2b96cdc7f 34
j_rocket_boy 0:95f2b96cdc7f 35 //CTRL_HUM
j_rocket_boy 0:95f2b96cdc7f 36 //湿度のオーバーサンプリング制御
j_rocket_boy 0:95f2b96cdc7f 37 const char HUM_SKIP = 0x00;
j_rocket_boy 0:95f2b96cdc7f 38 const char HUM_OVER_SAMPL1 = 0x01;
j_rocket_boy 0:95f2b96cdc7f 39 const char HUM_OVER_SAMPL2 = 0x02;
j_rocket_boy 0:95f2b96cdc7f 40 const char HUM_OVER_SAMPL4 = 0x03;
j_rocket_boy 0:95f2b96cdc7f 41 const char HUM_OVER_SAMPL8 = 0x04;
j_rocket_boy 0:95f2b96cdc7f 42 const char HUM_OVER_SAMPL16 = 0x05;
j_rocket_boy 0:95f2b96cdc7f 43
j_rocket_boy 0:95f2b96cdc7f 44 //STATUS
j_rocket_boy 0:95f2b96cdc7f 45 //測定中の判定式
j_rocket_boy 0:95f2b96cdc7f 46 #define STATUS_IS_MEASURING (sensor.read_reg(BME280_add,STATUS) & 0x08)
j_rocket_boy 0:95f2b96cdc7f 47 //コピー中
j_rocket_boy 0:95f2b96cdc7f 48 #define STATUS_IS_COPYING (sensor.read_reg(BME280_add,STATUS) & 0x01)
j_rocket_boy 0:95f2b96cdc7f 49 //なにも起きていないときの判定式(測定待ちなどに使う予定)
j_rocket_boy 0:95f2b96cdc7f 50 #define STATUS_IS_NOTHING (sensor.read_reg(BME280_add,STATUS) == 0x00)
j_rocket_boy 0:95f2b96cdc7f 51
j_rocket_boy 0:95f2b96cdc7f 52 //CTRL_MEAS
j_rocket_boy 0:95f2b96cdc7f 53 //温度のオーバーサンプリング制御
j_rocket_boy 0:95f2b96cdc7f 54 const char TEMP_SKIP = 0x00;
j_rocket_boy 0:95f2b96cdc7f 55 const char TEMP_OVER_SAMPL1 = (0x01<<5);
j_rocket_boy 0:95f2b96cdc7f 56 const char TEMP_OVER_SAMPL2 = (0x02<<5);
j_rocket_boy 0:95f2b96cdc7f 57 const char TEMP_OVER_SAMPL4 = (0x03<<5);
j_rocket_boy 0:95f2b96cdc7f 58 const char TEMP_OVER_SAMPL8 = (0x04<<5);
j_rocket_boy 0:95f2b96cdc7f 59 const char TEMP_OVER_SAMPL16 = (0x05<<5);
j_rocket_boy 0:95f2b96cdc7f 60
j_rocket_boy 0:95f2b96cdc7f 61 //気圧のオーバーサンプリング制御
j_rocket_boy 0:95f2b96cdc7f 62 const char PRESS_SKIP = 0x00;
j_rocket_boy 0:95f2b96cdc7f 63 const char PRESS_OVER_SAMPL1 = (0x01<<2);
j_rocket_boy 0:95f2b96cdc7f 64 const char PRESS_OVER_SAMPL2 = (0x02<<2);
j_rocket_boy 0:95f2b96cdc7f 65 const char PRESS_OVER_SAMPL4 = (0x03<<2);
j_rocket_boy 0:95f2b96cdc7f 66 const char PRESS_OVER_SAMPL8 = (0x04<<2);
j_rocket_boy 0:95f2b96cdc7f 67 const char PRESS_OVER_SAMPL16 = (0x05<<2);
j_rocket_boy 0:95f2b96cdc7f 68
j_rocket_boy 0:95f2b96cdc7f 69 //モード選択
j_rocket_boy 0:95f2b96cdc7f 70 const char SLEEP_MODE = 0x00;
j_rocket_boy 0:95f2b96cdc7f 71 const char FORCE_MODE = 0x02;
j_rocket_boy 0:95f2b96cdc7f 72 const char NORMAL_MODE = 0x03;
j_rocket_boy 0:95f2b96cdc7f 73
j_rocket_boy 0:95f2b96cdc7f 74
j_rocket_boy 0:95f2b96cdc7f 75
j_rocket_boy 0:95f2b96cdc7f 76
j_rocket_boy 0:95f2b96cdc7f 77 //CONFIG
j_rocket_boy 0:95f2b96cdc7f 78 //ノーマルモードにおける休止状態の継続時間設定(5.3.4項を参照)
j_rocket_boy 0:95f2b96cdc7f 79 const char NORMAL_STANBY_0_5 = 0x00;
j_rocket_boy 0:95f2b96cdc7f 80 const char NORMAL_STANBY_62_5 = (0x01<<5);
j_rocket_boy 0:95f2b96cdc7f 81 const char NORMAL_STANBY_125 = (0x02<<5);
j_rocket_boy 0:95f2b96cdc7f 82 const char NORMAL_STANBY_250 = (0x03<<5);
j_rocket_boy 0:95f2b96cdc7f 83 const char NORMAL_STANBY_500 = (0x04<<5);
j_rocket_boy 0:95f2b96cdc7f 84 const char NORMAL_STANBY_1000 = (0x05<<5);
j_rocket_boy 0:95f2b96cdc7f 85 const char NORMAL_STANBY_10 = (0x06<<5);
j_rocket_boy 0:95f2b96cdc7f 86 const char NORMAL_STANBY_20 = (0x07<<5);
j_rocket_boy 0:95f2b96cdc7f 87
j_rocket_boy 0:95f2b96cdc7f 88 //IIRフィルタの時定数設定
j_rocket_boy 0:95f2b96cdc7f 89 const char IIR_OFF = 0x00;
j_rocket_boy 0:95f2b96cdc7f 90 const char IIR_2 = (0x01<<2);
j_rocket_boy 0:95f2b96cdc7f 91 const char IIR_4 = (0x02<<2);
j_rocket_boy 0:95f2b96cdc7f 92 const char IIR_8 = (0x03<<2);
j_rocket_boy 0:95f2b96cdc7f 93 const char IIR_16 = (0x04<<2);
j_rocket_boy 0:95f2b96cdc7f 94
j_rocket_boy 0:95f2b96cdc7f 95 //SPI線方式選択(4線OR3線) 使わない
j_rocket_boy 0:95f2b96cdc7f 96 /*
j_rocket_boy 0:95f2b96cdc7f 97 const char SPI4 = 0x00;
j_rocket_boy 0:95f2b96cdc7f 98 const char SPI3 = 0x01;
j_rocket_boy 0:95f2b96cdc7f 99 */
j_rocket_boy 0:95f2b96cdc7f 100
j_rocket_boy 0:95f2b96cdc7f 101 #endif