BME280にアクセスするためのライブラリ
BME280_reg.h@8:c5f2c8022931, 2018-07-11 (annotated)
- Committer:
- j_rocket_boy
- Date:
- Wed Jul 11 16:28:32 2018 +0000
- Revision:
- 8:c5f2c8022931
- Parent:
- 4:4c4e3ec9a2c4
modify license year
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
j_rocket_boy | 4:4c4e3ec9a2c4 | 1 | // -*- coding: utf-8 -*- |
j_rocket_boy | 4:4c4e3ec9a2c4 | 2 | /** |
j_rocket_boy | 4:4c4e3ec9a2c4 | 3 | @file BME280_reg.h |
j_rocket_boy | 4:4c4e3ec9a2c4 | 4 | @brief MBE280の内部レジスタのアドレスや入力すべき定数などについての定義 |
j_rocket_boy | 4:4c4e3ec9a2c4 | 5 | |
j_rocket_boy | 4:4c4e3ec9a2c4 | 6 | @author D.Nakayama |
j_rocket_boy | 4:4c4e3ec9a2c4 | 7 | @version 1.0 |
j_rocket_boy | 4:4c4e3ec9a2c4 | 8 | @date 2018-07-10 D.Nakayama Written for C++/mbed. |
j_rocket_boy | 4:4c4e3ec9a2c4 | 9 | |
j_rocket_boy | 4:4c4e3ec9a2c4 | 10 | |
j_rocket_boy | 4:4c4e3ec9a2c4 | 11 | @see |
j_rocket_boy | 8:c5f2c8022931 | 12 | Copyright (C) 2018 D.Nakayama. |
j_rocket_boy | 4:4c4e3ec9a2c4 | 13 | Released under the MIT license. |
j_rocket_boy | 4:4c4e3ec9a2c4 | 14 | http://opensource.org/licenses/mit-license.php |
j_rocket_boy | 4:4c4e3ec9a2c4 | 15 | |
j_rocket_boy | 4:4c4e3ec9a2c4 | 16 | */ |
j_rocket_boy | 4:4c4e3ec9a2c4 | 17 | |
j_rocket_boy | 0:95f2b96cdc7f | 18 | #ifndef BME280_REG_H |
j_rocket_boy | 3:df1107ddf502 | 19 | #define BME280_BME280_REG_H |
j_rocket_boy | 3:df1107ddf502 | 20 | |
j_rocket_boy | 3:df1107ddf502 | 21 | //コンストラクタに入れる定数の定義終わり |
j_rocket_boy | 3:df1107ddf502 | 22 | |
j_rocket_boy | 3:df1107ddf502 | 23 | //測定動作モード |
j_rocket_boy | 3:df1107ddf502 | 24 | #define BME280_SLEEP_MODE 0x00 |
j_rocket_boy | 3:df1107ddf502 | 25 | #define BME280_FORCE_MODE 0x02 |
j_rocket_boy | 3:df1107ddf502 | 26 | #define BME280_NORMAL_MODE 0x03 |
j_rocket_boy | 3:df1107ddf502 | 27 | |
j_rocket_boy | 3:df1107ddf502 | 28 | //気圧のオーバーサンプリング制御 |
j_rocket_boy | 3:df1107ddf502 | 29 | #define BME280_PRESS_SKIP 0x00 |
j_rocket_boy | 3:df1107ddf502 | 30 | #define BME280_PRESS_OVER_SAMPL1 (0x01<<2) |
j_rocket_boy | 3:df1107ddf502 | 31 | #define BME280_PRESS_OVER_SAMPL2 (0x02<<2) |
j_rocket_boy | 3:df1107ddf502 | 32 | #define BME280_PRESS_OVER_SAMPL4 (0x03<<2) |
j_rocket_boy | 3:df1107ddf502 | 33 | #define BME280_PRESS_OVER_SAMPL8 (0x04<<2) |
j_rocket_boy | 3:df1107ddf502 | 34 | #define BME280_PRESS_OVER_SAMPL16 (0x05<<2) |
j_rocket_boy | 3:df1107ddf502 | 35 | |
j_rocket_boy | 3:df1107ddf502 | 36 | //温度のオーバーサンプリング制御 |
j_rocket_boy | 3:df1107ddf502 | 37 | #define BME280_TEMP_SKIP 0x00 |
j_rocket_boy | 3:df1107ddf502 | 38 | #define BME280_TEMP_OVER_SAMPL1 (0x01<<5) |
j_rocket_boy | 3:df1107ddf502 | 39 | #define BME280_TEMP_OVER_SAMPL2 (0x02<<5) |
j_rocket_boy | 3:df1107ddf502 | 40 | #define BME280_TEMP_OVER_SAMPL4 (0x03<<5) |
j_rocket_boy | 3:df1107ddf502 | 41 | #define BME280_TEMP_OVER_SAMPL8 (0x04<<5) |
j_rocket_boy | 3:df1107ddf502 | 42 | #define BME280_TEMP_OVER_SAMPL16 (0x05<<5) |
j_rocket_boy | 0:95f2b96cdc7f | 43 | |
j_rocket_boy | 3:df1107ddf502 | 44 | //湿度のオーバーサンプリング制御 |
j_rocket_boy | 3:df1107ddf502 | 45 | #define BME280_HUM_SKIP 0x00 |
j_rocket_boy | 3:df1107ddf502 | 46 | #define BME280_HUM_OVER_SAMPL1 0x01 |
j_rocket_boy | 3:df1107ddf502 | 47 | #define BME280_HUM_OVER_SAMPL2 0x02 |
j_rocket_boy | 3:df1107ddf502 | 48 | #define BME280_HUM_OVER_SAMPL4 0x03 |
j_rocket_boy | 3:df1107ddf502 | 49 | #define BME280_HUM_OVER_SAMPL8 0x04 |
j_rocket_boy | 3:df1107ddf502 | 50 | #define BME280_HUM_OVER_SAMPL16 0x05 |
j_rocket_boy | 3:df1107ddf502 | 51 | |
j_rocket_boy | 3:df1107ddf502 | 52 | //IIRフィルタの時定数設定 |
j_rocket_boy | 3:df1107ddf502 | 53 | #define BME280_IIR_OFF 0x00 |
j_rocket_boy | 3:df1107ddf502 | 54 | #define BME280_IIR_2 (0x01<<2) |
j_rocket_boy | 3:df1107ddf502 | 55 | #define BME280_IIR_4 (0x02<<2) |
j_rocket_boy | 3:df1107ddf502 | 56 | #define BME280_IIR_8 (0x03<<2) |
j_rocket_boy | 3:df1107ddf502 | 57 | #define BME280_IIR_16 (0x04<<2) |
j_rocket_boy | 3:df1107ddf502 | 58 | |
j_rocket_boy | 3:df1107ddf502 | 59 | //測定後休止時間設定(ノーマルモードのみ有効) |
j_rocket_boy | 3:df1107ddf502 | 60 | #define BME280_NORMAL_STANBY_0_5 0x00 |
j_rocket_boy | 3:df1107ddf502 | 61 | #define BME280_NORMAL_STANBY_62_5 (0x01<<5) |
j_rocket_boy | 3:df1107ddf502 | 62 | #define BME280_NORMAL_STANBY_125 (0x02<<5) |
j_rocket_boy | 3:df1107ddf502 | 63 | #define BME280_BME280_NORMAL_STANBY_250 (0x03<<5) |
j_rocket_boy | 3:df1107ddf502 | 64 | #define BME280_NORMAL_STANBY_500 (0x04<<5) |
j_rocket_boy | 3:df1107ddf502 | 65 | #define BME280_NORMAL_STANBY_1000 (0x05<<5) |
j_rocket_boy | 3:df1107ddf502 | 66 | #define BME280_NORMAL_STANBY_10 (0x06<<5) |
j_rocket_boy | 3:df1107ddf502 | 67 | #define BME280_NORMAL_STANBY_20 (0x07<<5) |
j_rocket_boy | 3:df1107ddf502 | 68 | |
j_rocket_boy | 3:df1107ddf502 | 69 | //コンストラクタに入れる定数の定義終わり |
j_rocket_boy | 3:df1107ddf502 | 70 | |
j_rocket_boy | 3:df1107ddf502 | 71 | |
j_rocket_boy | 3:df1107ddf502 | 72 | //デバイスアドレス8bit |
j_rocket_boy | 2:42725d11023b | 73 | #define BME280_add 0x76<<1 |
j_rocket_boy | 3:df1107ddf502 | 74 | |
j_rocket_boy | 3:df1107ddf502 | 75 | //レジスタアドレス |
j_rocket_boy | 3:df1107ddf502 | 76 | |
j_rocket_boy | 3:df1107ddf502 | 77 | //データ読み込みレジスタ |
j_rocket_boy | 0:95f2b96cdc7f | 78 | /* |
j_rocket_boy | 3:df1107ddf502 | 79 | #define BME280_HUM_LSB 0xFE |
j_rocket_boy | 3:df1107ddf502 | 80 | #define BME280_HUM_MSB 0xFD |
j_rocket_boy | 3:df1107ddf502 | 81 | #define BME280_TEMP_XLSB 0xFC |
j_rocket_boy | 3:df1107ddf502 | 82 | #define BME280_TEMP_LSB 0xFB |
j_rocket_boy | 3:df1107ddf502 | 83 | #define BME280_TEMP_MSB 0xFA |
j_rocket_boy | 3:df1107ddf502 | 84 | #define BME280_PRESS_XLSB 0xF9 |
j_rocket_boy | 3:df1107ddf502 | 85 | #define BME280_PRESS_LSB 0xF8 |
j_rocket_boy | 0:95f2b96cdc7f | 86 | */ |
j_rocket_boy | 3:df1107ddf502 | 87 | #define BME280_PRESS_MSB 0xF7 |
j_rocket_boy | 3:df1107ddf502 | 88 | |
j_rocket_boy | 3:df1107ddf502 | 89 | //設定系レジスタ |
j_rocket_boy | 3:df1107ddf502 | 90 | #define BME280_CONFIG 0xF5 |
j_rocket_boy | 3:df1107ddf502 | 91 | #define BME280_CTRL_MEAS 0xF4 |
j_rocket_boy | 3:df1107ddf502 | 92 | #define BME280_STATUS 0xF3 |
j_rocket_boy | 3:df1107ddf502 | 93 | #define BME280_CTRL_HUM 0xF2 |
j_rocket_boy | 3:df1107ddf502 | 94 | #define BME280_RESET_REG 0xE0 |
j_rocket_boy | 3:df1107ddf502 | 95 | #define BME280_ID 0xD0 |
j_rocket_boy | 3:df1107ddf502 | 96 | |
j_rocket_boy | 3:df1107ddf502 | 97 | //補正係数格納レジスタ(読み込みのみ) |
j_rocket_boy | 3:df1107ddf502 | 98 | #define BME280_CALIB00 0x88 |
j_rocket_boy | 3:df1107ddf502 | 99 | #define BME280_CALIB25 0xA1 |
j_rocket_boy | 3:df1107ddf502 | 100 | #define BME280_CALIB26 0xE1 |
j_rocket_boy | 0:95f2b96cdc7f | 101 | |
j_rocket_boy | 0:95f2b96cdc7f | 102 | |
j_rocket_boy | 0:95f2b96cdc7f | 103 | //ID |
j_rocket_boy | 3:df1107ddf502 | 104 | //IDの規定値(BME280_IDを読むといつもこの値,ハードウエアの接続確認用) |
j_rocket_boy | 3:df1107ddf502 | 105 | #define BME280_ID_VALUE 0b01100000 |
j_rocket_boy | 0:95f2b96cdc7f | 106 | |
j_rocket_boy | 0:95f2b96cdc7f | 107 | //RESET |
j_rocket_boy | 3:df1107ddf502 | 108 | //リセットをかけるための値(BME280_RESET_REGに書き込むとリセットがかかる) |
j_rocket_boy | 3:df1107ddf502 | 109 | #define BME280_RESET_VALUE 0xB6 |
j_rocket_boy | 0:95f2b96cdc7f | 110 | |
j_rocket_boy | 0:95f2b96cdc7f | 111 | |
j_rocket_boy | 3:df1107ddf502 | 112 | //STATUS判定式 |
j_rocket_boy | 3:df1107ddf502 | 113 | //測定中の判定式 |
j_rocket_boy | 3:df1107ddf502 | 114 | #define BME280_STATUS_IS_MEASURING (sensor.read_reg(BME280_add,BME280_STATUS) & 0x08) |
j_rocket_boy | 3:df1107ddf502 | 115 | //コピー中 |
j_rocket_boy | 3:df1107ddf502 | 116 | #define BME280_STATUS_IS_COPYING (sensor.read_reg(BME280_add,BME280_STATUS) & 0x01) |
j_rocket_boy | 0:95f2b96cdc7f | 117 | |
j_rocket_boy | 0:95f2b96cdc7f | 118 | #endif |