Adafruit BMP085 Library
Adafruit_BMP085.h
Go to the documentation of this file.
1 
21 #ifndef ADAFRUIT_BMP085_H
22 #define ADAFRUIT_BMP085_H
23 
24 #include <Adafruit_I2CDevice.h>
25 #include <Arduino.h>
26 
27 #define BMP085_DEBUG 0
28 
29 #define BMP085_I2CADDR 0x77
30 
31 #define BMP085_ULTRALOWPOWER 0
32 #define BMP085_STANDARD 1
33 #define BMP085_HIGHRES 2
34 #define BMP085_ULTRAHIGHRES 3
35 #define BMP085_CAL_AC1 0xAA
36 #define BMP085_CAL_AC2 0xAC
37 #define BMP085_CAL_AC3 0xAE
38 #define BMP085_CAL_AC4 0xB0
39 #define BMP085_CAL_AC5 0xB2
40 #define BMP085_CAL_AC6 0xB4
41 #define BMP085_CAL_B1 0xB6
42 #define BMP085_CAL_B2 0xB8
43 #define BMP085_CAL_MB 0xBA
44 #define BMP085_CAL_MC 0xBC
45 #define BMP085_CAL_MD 0xBE
46 
47 #define BMP085_CONTROL 0xF4
48 #define BMP085_TEMPDATA 0xF6
49 #define BMP085_PRESSUREDATA 0xF6
50 #define BMP085_READTEMPCMD 0x2E
51 #define BMP085_READPRESSURECMD 0x34
52 
53 
57 public:
65  bool begin(uint8_t mode = BMP085_ULTRAHIGHRES, TwoWire *wire = &Wire);
70  float readTemperature(void);
75  int32_t readPressure(void);
81  int32_t readSealevelPressure(float altitude_meters = 0);
87  float readAltitude(float sealevelPressure = 101325); // std atmosphere
92  uint16_t readRawTemperature(void);
97  uint32_t readRawPressure(void);
98 
99 private:
100  int32_t computeB5(int32_t UT);
101  uint8_t read8(uint8_t addr);
102  uint16_t read16(uint8_t addr);
103  void write8(uint8_t addr, uint8_t data);
104 
105  Adafruit_I2CDevice *i2c_dev;
106  uint8_t oversampling;
107 
108  int16_t ac1, ac2, ac3, b1, b2, mb, mc, md;
109  uint16_t ac4, ac5, ac6;
110 };
111 
112 #endif // ADAFRUIT_BMP085_H
bool begin(uint8_t mode=BMP085_ULTRAHIGHRES, TwoWire *wire=&Wire)
Starts I2C connection.
Definition: Adafruit_BMP085.cpp:36
int32_t readSealevelPressure(float altitude_meters=0)
Calculates the pressure at sea level.
Definition: Adafruit_BMP085.cpp:245
uint16_t readRawTemperature(void)
Reads the raw temperature.
Definition: Adafruit_BMP085.cpp:104
#define BMP085_ULTRAHIGHRES
Ultra high-res mode.
Definition: Adafruit_BMP085.h:34
uint32_t readRawPressure(void)
Reads the raw pressure.
Definition: Adafruit_BMP085.cpp:114
float readTemperature(void)
Gets the temperature over I2C from the BMP085.
Definition: Adafruit_BMP085.cpp:250
float readAltitude(float sealevelPressure=101325)
Reads the altitude.
Definition: Adafruit_BMP085.cpp:272
int32_t readPressure(void)
Gets the pressure over I2C from the BMP085.
Definition: Adafruit_BMP085.cpp:149
Main BMP085 class.
Definition: Adafruit_BMP085.h:56