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

Committer:
j_rocket_boy
Date:
Tue Jul 10 09:01:19 2018 +0000
Revision:
4:4c4e3ec9a2c4
Parent:
3:df1107ddf502
Child:
8:c5f2c8022931
???????

Who changed what in which revision?

UserRevisionLine numberNew 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 4:4c4e3ec9a2c4 12 Copyright (C) 2017 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