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

BME280_reg.h

Committer:
j_rocket_boy
Date:
2018-07-10
Revision:
0:95f2b96cdc7f
Child:
2:42725d11023b

File content as of revision 0:95f2b96cdc7f:

#ifndef BME280_REG_H
#define BME280_REG_H

    const char BME280_add  = 0x76<<1;
    /*           
    const char HUM_LSB     = 0xFE;
    const char HUM_MSB     = 0xFD;
    const char TEMP_XLSB   = 0xFC;
    const char TEMP_LSB    = 0xFB;
    const char TEMP_MSB    = 0xFA;
    const char PRESS_XLSB  = 0xF9;
    const char PRESS_LSB   = 0xF8;
    */
    const char PRESS_MSB   = 0xF7;
    const char CONFIG      = 0xF5;
    const char CTRL_MEAS   = 0xF4;
    const char STATUS      = 0xF3;
    const char CTRL_HUM    = 0xF2;
    const char RESET_REG   = 0xE0;
    const char ID          = 0xD0;
    
    const char CALIB00     = 0x88;
    const char CALIB25     = 0xA1;
    const char CALIB26     = 0xE1;               


//ID
    //IDの規定値
    const char ID_VALUE    = 0b01100000;

//RESET
    //リセットをかけるための値
    const char RESET_VALUE = 0xB6;

//CTRL_HUM
    //湿度のオーバーサンプリング制御
    const char HUM_SKIP           = 0x00;
    const char HUM_OVER_SAMPL1    = 0x01;
    const char HUM_OVER_SAMPL2    = 0x02;
    const char HUM_OVER_SAMPL4    = 0x03;
    const char HUM_OVER_SAMPL8    = 0x04;
    const char HUM_OVER_SAMPL16   = 0x05;

//STATUS
    //測定中の判定式
    #define STATUS_IS_MEASURING (sensor.read_reg(BME280_add,STATUS) & 0x08)
    //コピー中
    #define STATUS_IS_COPYING   (sensor.read_reg(BME280_add,STATUS) & 0x01)
    //なにも起きていないときの判定式(測定待ちなどに使う予定)
    #define STATUS_IS_NOTHING   (sensor.read_reg(BME280_add,STATUS) == 0x00)

//CTRL_MEAS
    //温度のオーバーサンプリング制御
    const char TEMP_SKIP          = 0x00;
    const char TEMP_OVER_SAMPL1   = (0x01<<5);
    const char TEMP_OVER_SAMPL2   = (0x02<<5);
    const char TEMP_OVER_SAMPL4   = (0x03<<5);
    const char TEMP_OVER_SAMPL8   = (0x04<<5);
    const char TEMP_OVER_SAMPL16  = (0x05<<5);

    //気圧のオーバーサンプリング制御
    const char PRESS_SKIP         = 0x00;
    const char PRESS_OVER_SAMPL1  = (0x01<<2);
    const char PRESS_OVER_SAMPL2  = (0x02<<2);
    const char PRESS_OVER_SAMPL4  = (0x03<<2);
    const char PRESS_OVER_SAMPL8  = (0x04<<2);
    const char PRESS_OVER_SAMPL16 = (0x05<<2);

    //モード選択
    const char SLEEP_MODE         = 0x00;
    const char FORCE_MODE         = 0x02;
    const char NORMAL_MODE        = 0x03;




//CONFIG
    //ノーマルモードにおける休止状態の継続時間設定(5.3.4項を参照)
    const char NORMAL_STANBY_0_5  = 0x00;
    const char NORMAL_STANBY_62_5 = (0x01<<5);
    const char NORMAL_STANBY_125  = (0x02<<5);
    const char NORMAL_STANBY_250  = (0x03<<5);
    const char NORMAL_STANBY_500  = (0x04<<5);
    const char NORMAL_STANBY_1000 = (0x05<<5);
    const char NORMAL_STANBY_10   = (0x06<<5);
    const char NORMAL_STANBY_20   = (0x07<<5);
    
    //IIRフィルタの時定数設定
    const char IIR_OFF            = 0x00;
    const char IIR_2              = (0x01<<2);
    const char IIR_4              = (0x02<<2);
    const char IIR_8              = (0x03<<2);
    const char IIR_16             = (0x04<<2);
    
    //SPI線方式選択(4線OR3線) 使わない
    /*
    const char SPI4               = 0x00;
    const char SPI3               = 0x01;
*/

#endif