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

Revision:
0:95f2b96cdc7f
Child:
2:42725d11023b
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/BME280_reg.h	Tue Jul 10 07:38:08 2018 +0000
@@ -0,0 +1,101 @@
+#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
\ No newline at end of file