barometric pressure sensor BMP085 http://mbed.org/users/okini3939/notebook/barometric-pressure-sensor-bmp085/ http://mbed.org/users/okini3939/notebook/weatherduino-on-mbed/

Dependents:   Xadow_MPU9150AHRS

Fork of BMP085 by Suga koubou

Committer:
whatnick
Date:
Mon May 25 02:50:46 2015 +0000
Revision:
3:9c7696c84807
Parent:
2:5e2b1f3c0a6a
Device support

Who changed what in which revision?

UserRevisionLine numberNew contents of line
okini3939 0:6245372b9179 1 /*
okini3939 2:5e2b1f3c0a6a 2 * mbed library to use a Bosch Sensortec BMP085/BMP180 sensor
okini3939 0:6245372b9179 3 * Copyright (c) 2010 Hiroshi Suga
okini3939 0:6245372b9179 4 * Released under the MIT License: http://mbed.org/license/mit
okini3939 0:6245372b9179 5 */
okini3939 0:6245372b9179 6
okini3939 1:80e4c62baf09 7 /** @file BMP085.h
okini3939 2:5e2b1f3c0a6a 8 * @brief mbed library to use a Bosch Sensortec BMP085/BMP180 sensor
okini3939 2:5e2b1f3c0a6a 9 * barometric pressure sensor BMP085/BMP180 (Bosch Sensortec)
okini3939 1:80e4c62baf09 10 * interface: I2C digital
okini3939 1:80e4c62baf09 11 */
okini3939 1:80e4c62baf09 12
okini3939 0:6245372b9179 13 #ifndef BMP085_H
okini3939 0:6245372b9179 14 #define BMP085_H
okini3939 0:6245372b9179 15
okini3939 0:6245372b9179 16 #include "mbed.h"
okini3939 0:6245372b9179 17
whatnick 3:9c7696c84807 18 /*
whatnick 3:9c7696c84807 19 * @brief Pressure at sea level
whatnick 3:9c7696c84807 20 */
whatnick 3:9c7696c84807 21 #define SEA_PRES 1013.25f
whatnick 3:9c7696c84807 22
okini3939 1:80e4c62baf09 23 /**
okini3939 1:80e4c62baf09 24 * @brief over sampling setting
okini3939 1:80e4c62baf09 25 */
okini3939 0:6245372b9179 26 enum BMP085_oss {
okini3939 1:80e4c62baf09 27 BMP085_oss1 = 0, ///< ultra low power (1 time)
okini3939 1:80e4c62baf09 28 BMP085_oss2 = 1, ///< standard (2 times)
okini3939 1:80e4c62baf09 29 BMP085_oss4 = 2, ///< high resolution (4 times)
okini3939 1:80e4c62baf09 30 BMP085_oss8 = 3 ///< ultra high resolution (8 times)
okini3939 0:6245372b9179 31 };
okini3939 0:6245372b9179 32
okini3939 1:80e4c62baf09 33 /**
okini3939 1:80e4c62baf09 34 * @brief BMP085 class
okini3939 1:80e4c62baf09 35 */
okini3939 2:5e2b1f3c0a6a 36 class BMP085 {
okini3939 0:6245372b9179 37 public:
okini3939 0:6245372b9179 38 BMP085(PinName p_sda, PinName p_scl, BMP085_oss p_oss = BMP085_oss1);
okini3939 0:6245372b9179 39 BMP085(I2C& p_i2c, BMP085_oss p_oss = BMP085_oss1);
okini3939 0:6245372b9179 40
okini3939 0:6245372b9179 41 float get_temperature();
okini3939 0:6245372b9179 42 float get_pressure();
okini3939 0:6245372b9179 43 void update();
okini3939 0:6245372b9179 44
okini3939 0:6245372b9179 45 protected:
okini3939 0:6245372b9179 46 void init(BMP085_oss);
okini3939 0:6245372b9179 47 unsigned short twi_readshort (int, int);
okini3939 0:6245372b9179 48 unsigned long twi_readlong (int, int);
okini3939 0:6245372b9179 49 void twi_writechar (int, int, int);
okini3939 0:6245372b9179 50
okini3939 0:6245372b9179 51 I2C i2c;
okini3939 0:6245372b9179 52 float temperature;
okini3939 0:6245372b9179 53 float pressure;
okini3939 0:6245372b9179 54
okini3939 0:6245372b9179 55 private:
okini3939 0:6245372b9179 56
okini3939 0:6245372b9179 57 short ac1, ac2, ac3, b1, b2, mb, mc, md, oss;
okini3939 0:6245372b9179 58 unsigned short ac4, ac5, ac6;
okini3939 0:6245372b9179 59 };
okini3939 0:6245372b9179 60
okini3939 0:6245372b9179 61 #endif