Bosch BMP085 Barometric Pressure Sensor
bmp085.h
- Committer:
- timm
- Date:
- 2015-03-19
- Revision:
- 0:e8f53e502a4c
File content as of revision 0:e8f53e502a4c:
/** @file bmp085.h @brief Header file containing member functions and variables */ #ifndef __BMP085_H__ #define __BMP085_H__ #include "mbed.h" #define BMP085_I2C_ADDR_READ (0xEF) #define BMP085_I2C_ADDR_WRITE (0xEE) #define CTRL_REG_ADDR (0xF4) #define DATA_REG_ADDR (0xF6) #define MEASURE_TEMP_CMD (0x2E) #define MEASURE_PRES_CMD (0x34) // MSB addresses, MSB first #define CAL_DATA_AC1 (0xAA) #define CAL_DATA_AC2 (0xAC) #define CAL_DATA_AC3 (0xAE) #define CAL_DATA_AC4 (0xB0) #define CAL_DATA_AC5 (0xB2) #define CAL_DATA_AC6 (0xB4) #define CAL_DATA_B1 (0xB6) #define CAL_DATA_B2 (0xB8) #define CAL_DATA_MB (0xBA) #define CAL_DATA_MC (0xBC) #define CAL_DATA_MD (0xBE) /** @brief Simple library for interfacing with Bosch BMP085 @brief Revision 1.0 @author Tim Meese @date January 2015 * * Example: * @code #include "mbed.h" #include "bmp085.h" * @endcode */ class BMP085 { private: // I2C interface I2C * i2c; const float p0 = 101325; // Pressure at sea level (Pa) float altitude; // Calibration parameters short AC1; short AC2; short AC3; unsigned short AC4; unsigned short AC5; unsigned short AC6; short B1; short B2; short MB; short MC; short MD; // uncalibrated temp, pressure long UT; long UP; // shared values long X1; long X2; long X3; long B3; unsigned long B4; long B5; long B6; unsigned long B7; long T; // temp in 0.1 degrees C long p; // pressure in Pascals void readCalData(); void readUncompTemp(); void readUncompPressure(int mode); public: /** Create a BMP085 object connected to the specified pins * * @param clkPin Pin connected to clk * @param dataPin Pin connected to data * */ BMP085(PinName clkPin, PinName dataPin); /** Initialise SHT11 * */ void init(); float getTemperature(); float getPressure(int oss); long getUT(); long getUP(); }; #endif /* __BMP085_H__ */