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

Dependents:   WeatherPlatform_20110408 WeatherPlatform ENVLogger WeatherStation ... more

Committer:
okini3939
Date:
Fri Jul 11 00:54:26 2014 +0000
Revision:
2:5e2b1f3c0a6a
Parent:
1:80e4c62baf09
delete Base class

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
okini3939 1:80e4c62baf09 18 /**
okini3939 1:80e4c62baf09 19 * @brief over sampling setting
okini3939 1:80e4c62baf09 20 */
okini3939 0:6245372b9179 21 enum BMP085_oss {
okini3939 1:80e4c62baf09 22 BMP085_oss1 = 0, ///< ultra low power (1 time)
okini3939 1:80e4c62baf09 23 BMP085_oss2 = 1, ///< standard (2 times)
okini3939 1:80e4c62baf09 24 BMP085_oss4 = 2, ///< high resolution (4 times)
okini3939 1:80e4c62baf09 25 BMP085_oss8 = 3 ///< ultra high resolution (8 times)
okini3939 0:6245372b9179 26 };
okini3939 0:6245372b9179 27
okini3939 1:80e4c62baf09 28 /**
okini3939 1:80e4c62baf09 29 * @brief BMP085 class
okini3939 1:80e4c62baf09 30 */
okini3939 2:5e2b1f3c0a6a 31 class BMP085 {
okini3939 0:6245372b9179 32 public:
okini3939 0:6245372b9179 33 BMP085(PinName p_sda, PinName p_scl, BMP085_oss p_oss = BMP085_oss1);
okini3939 0:6245372b9179 34 BMP085(I2C& p_i2c, BMP085_oss p_oss = BMP085_oss1);
okini3939 0:6245372b9179 35
okini3939 0:6245372b9179 36 float get_temperature();
okini3939 0:6245372b9179 37 float get_pressure();
okini3939 0:6245372b9179 38 void update();
okini3939 0:6245372b9179 39
okini3939 0:6245372b9179 40 protected:
okini3939 0:6245372b9179 41 void init(BMP085_oss);
okini3939 0:6245372b9179 42 unsigned short twi_readshort (int, int);
okini3939 0:6245372b9179 43 unsigned long twi_readlong (int, int);
okini3939 0:6245372b9179 44 void twi_writechar (int, int, int);
okini3939 0:6245372b9179 45
okini3939 0:6245372b9179 46 I2C i2c;
okini3939 0:6245372b9179 47 float temperature;
okini3939 0:6245372b9179 48 float pressure;
okini3939 0:6245372b9179 49
okini3939 0:6245372b9179 50 private:
okini3939 0:6245372b9179 51
okini3939 0:6245372b9179 52 short ac1, ac2, ac3, b1, b2, mb, mc, md, oss;
okini3939 0:6245372b9179 53 unsigned short ac4, ac5, ac6;
okini3939 0:6245372b9179 54 };
okini3939 0:6245372b9179 55
okini3939 0:6245372b9179 56 #endif