BMP085 Digital, barometric pressure sensor. Manufacturer: Bosch Sensortec.

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers bmp085.h Source File

bmp085.h

00001 /*
00002  * BMP085 Sensor Library for mbed
00003  */
00004 
00005 #ifndef BMP085_H
00006 #define BMP085_H
00007 
00008 #include "mbed.h"
00009 
00010 /**
00011  * BMP085 Class to read temprature & pressure from BMP085(GY-65)
00012  *
00013  */
00014 class BMP085
00015 {
00016 public:
00017     /**
00018      * BMP085 constructor
00019      * @param sda SDA pin
00020      * @param sdl SCL pin
00021      * @param addr addr of the I2C peripheral
00022      */
00023     BMP085(PinName sda, PinName scl);
00024 
00025     void read(int32_t * temperature, int32_t * pressure);
00026     void set_oversampling(int osrs);
00027     
00028     static const float p0;
00029     static float altitude(float p);
00030     
00031 
00032 private:
00033     I2C m_i2c;
00034     char m_addr;
00035     
00036     int16_t ac1;
00037     int16_t ac2;
00038     int16_t ac3;
00039     uint16_t ac4;
00040     uint16_t ac5;
00041     uint16_t ac6;
00042     int16_t b1;
00043     int16_t b2;
00044     int16_t mb;
00045     int16_t mc;
00046     int16_t md;
00047     
00048     uint8_t oss;
00049     
00050     void writeRegs(uint8_t * data, int len);
00051     void readRegs(int addr, uint8_t * data, int len);
00052     
00053     void calibration(void);
00054     int32_t read_pressure(void);
00055     int32_t read_temp(void);
00056 };
00057 #endif
00058 
00059