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

Committer:
j_rocket_boy
Date:
Tue Jul 10 08:57:26 2018 +0000
Revision:
3:df1107ddf502
Parent:
2:42725d11023b
Child:
4:4c4e3ec9a2c4
???????; ???????????

Who changed what in which revision?

UserRevisionLine numberNew contents of line
j_rocket_boy 0:95f2b96cdc7f 1 #ifndef BME280_REG_H
j_rocket_boy 3:df1107ddf502 2 #define BME280_BME280_REG_H
j_rocket_boy 3:df1107ddf502 3
j_rocket_boy 3:df1107ddf502 4 //コンストラクタに入れる定数の定義終わり
j_rocket_boy 3:df1107ddf502 5
j_rocket_boy 3:df1107ddf502 6 //測定動作モード
j_rocket_boy 3:df1107ddf502 7 #define BME280_SLEEP_MODE 0x00
j_rocket_boy 3:df1107ddf502 8 #define BME280_FORCE_MODE 0x02
j_rocket_boy 3:df1107ddf502 9 #define BME280_NORMAL_MODE 0x03
j_rocket_boy 3:df1107ddf502 10
j_rocket_boy 3:df1107ddf502 11 //気圧のオーバーサンプリング制御
j_rocket_boy 3:df1107ddf502 12 #define BME280_PRESS_SKIP 0x00
j_rocket_boy 3:df1107ddf502 13 #define BME280_PRESS_OVER_SAMPL1 (0x01<<2)
j_rocket_boy 3:df1107ddf502 14 #define BME280_PRESS_OVER_SAMPL2 (0x02<<2)
j_rocket_boy 3:df1107ddf502 15 #define BME280_PRESS_OVER_SAMPL4 (0x03<<2)
j_rocket_boy 3:df1107ddf502 16 #define BME280_PRESS_OVER_SAMPL8 (0x04<<2)
j_rocket_boy 3:df1107ddf502 17 #define BME280_PRESS_OVER_SAMPL16 (0x05<<2)
j_rocket_boy 3:df1107ddf502 18
j_rocket_boy 3:df1107ddf502 19 //温度のオーバーサンプリング制御
j_rocket_boy 3:df1107ddf502 20 #define BME280_TEMP_SKIP 0x00
j_rocket_boy 3:df1107ddf502 21 #define BME280_TEMP_OVER_SAMPL1 (0x01<<5)
j_rocket_boy 3:df1107ddf502 22 #define BME280_TEMP_OVER_SAMPL2 (0x02<<5)
j_rocket_boy 3:df1107ddf502 23 #define BME280_TEMP_OVER_SAMPL4 (0x03<<5)
j_rocket_boy 3:df1107ddf502 24 #define BME280_TEMP_OVER_SAMPL8 (0x04<<5)
j_rocket_boy 3:df1107ddf502 25 #define BME280_TEMP_OVER_SAMPL16 (0x05<<5)
j_rocket_boy 0:95f2b96cdc7f 26
j_rocket_boy 3:df1107ddf502 27 //湿度のオーバーサンプリング制御
j_rocket_boy 3:df1107ddf502 28 #define BME280_HUM_SKIP 0x00
j_rocket_boy 3:df1107ddf502 29 #define BME280_HUM_OVER_SAMPL1 0x01
j_rocket_boy 3:df1107ddf502 30 #define BME280_HUM_OVER_SAMPL2 0x02
j_rocket_boy 3:df1107ddf502 31 #define BME280_HUM_OVER_SAMPL4 0x03
j_rocket_boy 3:df1107ddf502 32 #define BME280_HUM_OVER_SAMPL8 0x04
j_rocket_boy 3:df1107ddf502 33 #define BME280_HUM_OVER_SAMPL16 0x05
j_rocket_boy 3:df1107ddf502 34
j_rocket_boy 3:df1107ddf502 35 //IIRフィルタの時定数設定
j_rocket_boy 3:df1107ddf502 36 #define BME280_IIR_OFF 0x00
j_rocket_boy 3:df1107ddf502 37 #define BME280_IIR_2 (0x01<<2)
j_rocket_boy 3:df1107ddf502 38 #define BME280_IIR_4 (0x02<<2)
j_rocket_boy 3:df1107ddf502 39 #define BME280_IIR_8 (0x03<<2)
j_rocket_boy 3:df1107ddf502 40 #define BME280_IIR_16 (0x04<<2)
j_rocket_boy 3:df1107ddf502 41
j_rocket_boy 3:df1107ddf502 42 //測定後休止時間設定(ノーマルモードのみ有効)
j_rocket_boy 3:df1107ddf502 43 #define BME280_NORMAL_STANBY_0_5 0x00
j_rocket_boy 3:df1107ddf502 44 #define BME280_NORMAL_STANBY_62_5 (0x01<<5)
j_rocket_boy 3:df1107ddf502 45 #define BME280_NORMAL_STANBY_125 (0x02<<5)
j_rocket_boy 3:df1107ddf502 46 #define BME280_BME280_NORMAL_STANBY_250 (0x03<<5)
j_rocket_boy 3:df1107ddf502 47 #define BME280_NORMAL_STANBY_500 (0x04<<5)
j_rocket_boy 3:df1107ddf502 48 #define BME280_NORMAL_STANBY_1000 (0x05<<5)
j_rocket_boy 3:df1107ddf502 49 #define BME280_NORMAL_STANBY_10 (0x06<<5)
j_rocket_boy 3:df1107ddf502 50 #define BME280_NORMAL_STANBY_20 (0x07<<5)
j_rocket_boy 3:df1107ddf502 51
j_rocket_boy 3:df1107ddf502 52 //コンストラクタに入れる定数の定義終わり
j_rocket_boy 3:df1107ddf502 53
j_rocket_boy 3:df1107ddf502 54
j_rocket_boy 3:df1107ddf502 55 //デバイスアドレス8bit
j_rocket_boy 2:42725d11023b 56 #define BME280_add 0x76<<1
j_rocket_boy 3:df1107ddf502 57
j_rocket_boy 3:df1107ddf502 58 //レジスタアドレス
j_rocket_boy 3:df1107ddf502 59
j_rocket_boy 3:df1107ddf502 60 //データ読み込みレジスタ
j_rocket_boy 0:95f2b96cdc7f 61 /*
j_rocket_boy 3:df1107ddf502 62 #define BME280_HUM_LSB 0xFE
j_rocket_boy 3:df1107ddf502 63 #define BME280_HUM_MSB 0xFD
j_rocket_boy 3:df1107ddf502 64 #define BME280_TEMP_XLSB 0xFC
j_rocket_boy 3:df1107ddf502 65 #define BME280_TEMP_LSB 0xFB
j_rocket_boy 3:df1107ddf502 66 #define BME280_TEMP_MSB 0xFA
j_rocket_boy 3:df1107ddf502 67 #define BME280_PRESS_XLSB 0xF9
j_rocket_boy 3:df1107ddf502 68 #define BME280_PRESS_LSB 0xF8
j_rocket_boy 0:95f2b96cdc7f 69 */
j_rocket_boy 3:df1107ddf502 70 #define BME280_PRESS_MSB 0xF7
j_rocket_boy 3:df1107ddf502 71
j_rocket_boy 3:df1107ddf502 72 //設定系レジスタ
j_rocket_boy 3:df1107ddf502 73 #define BME280_CONFIG 0xF5
j_rocket_boy 3:df1107ddf502 74 #define BME280_CTRL_MEAS 0xF4
j_rocket_boy 3:df1107ddf502 75 #define BME280_STATUS 0xF3
j_rocket_boy 3:df1107ddf502 76 #define BME280_CTRL_HUM 0xF2
j_rocket_boy 3:df1107ddf502 77 #define BME280_RESET_REG 0xE0
j_rocket_boy 3:df1107ddf502 78 #define BME280_ID 0xD0
j_rocket_boy 3:df1107ddf502 79
j_rocket_boy 3:df1107ddf502 80 //補正係数格納レジスタ(読み込みのみ)
j_rocket_boy 3:df1107ddf502 81 #define BME280_CALIB00 0x88
j_rocket_boy 3:df1107ddf502 82 #define BME280_CALIB25 0xA1
j_rocket_boy 3:df1107ddf502 83 #define BME280_CALIB26 0xE1
j_rocket_boy 0:95f2b96cdc7f 84
j_rocket_boy 0:95f2b96cdc7f 85
j_rocket_boy 0:95f2b96cdc7f 86 //ID
j_rocket_boy 3:df1107ddf502 87 //IDの規定値(BME280_IDを読むといつもこの値,ハードウエアの接続確認用)
j_rocket_boy 3:df1107ddf502 88 #define BME280_ID_VALUE 0b01100000
j_rocket_boy 0:95f2b96cdc7f 89
j_rocket_boy 0:95f2b96cdc7f 90 //RESET
j_rocket_boy 3:df1107ddf502 91 //リセットをかけるための値(BME280_RESET_REGに書き込むとリセットがかかる)
j_rocket_boy 3:df1107ddf502 92 #define BME280_RESET_VALUE 0xB6
j_rocket_boy 0:95f2b96cdc7f 93
j_rocket_boy 0:95f2b96cdc7f 94
j_rocket_boy 3:df1107ddf502 95 //STATUS判定式
j_rocket_boy 3:df1107ddf502 96 //測定中の判定式
j_rocket_boy 3:df1107ddf502 97 #define BME280_STATUS_IS_MEASURING (sensor.read_reg(BME280_add,BME280_STATUS) & 0x08)
j_rocket_boy 3:df1107ddf502 98 //コピー中
j_rocket_boy 3:df1107ddf502 99 #define BME280_STATUS_IS_COPYING (sensor.read_reg(BME280_add,BME280_STATUS) & 0x01)
j_rocket_boy 0:95f2b96cdc7f 100
j_rocket_boy 0:95f2b96cdc7f 101 #endif