BMP180 is a digital barometric pressure sensor made by Bosch Sensortec (I2C Interface)

Dependents:   LPC1114_data_logger ProjectIOT Wether_Meter LPC1114_barometer_with_data_logging

Committer:
kenjiArai
Date:
Fri Jun 20 21:43:29 2014 +0000
Revision:
1:23942d7b7023
Parent:
0:9c1a7a1f0d97
Child:
2:b81e7659be7a
unchanged

Who changed what in which revision?

UserRevisionLine numberNew contents of line
kenjiArai 0:9c1a7a1f0d97 1 /*
kenjiArai 0:9c1a7a1f0d97 2 * mbed library program
kenjiArai 0:9c1a7a1f0d97 3 * Control BMP180(Bosch) Pressure Sensor
kenjiArai 0:9c1a7a1f0d97 4 *
kenjiArai 0:9c1a7a1f0d97 5 * Copyright (c) 2014 Kenji Arai / JH1PJL
kenjiArai 0:9c1a7a1f0d97 6 * http://www.page.sannet.ne.jp/kenjia/index.html
kenjiArai 0:9c1a7a1f0d97 7 * http://mbed.org/users/kenjiArai/
kenjiArai 0:9c1a7a1f0d97 8 * Created: August 14th, 2013 for STM32L152
kenjiArai 0:9c1a7a1f0d97 9 * Changed: May 21st, 2014 mbed LPC1114
kenjiArai 1:23942d7b7023 10 * Revised: June 15th, 2014
kenjiArai 0:9c1a7a1f0d97 11 *
kenjiArai 0:9c1a7a1f0d97 12 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
kenjiArai 0:9c1a7a1f0d97 13 * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE
kenjiArai 0:9c1a7a1f0d97 14 * AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
kenjiArai 0:9c1a7a1f0d97 15 * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
kenjiArai 0:9c1a7a1f0d97 16 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
kenjiArai 0:9c1a7a1f0d97 17 */
kenjiArai 0:9c1a7a1f0d97 18
kenjiArai 0:9c1a7a1f0d97 19 #ifndef BMP180_H
kenjiArai 0:9c1a7a1f0d97 20 #define BMP180_H
kenjiArai 0:9c1a7a1f0d97 21
kenjiArai 0:9c1a7a1f0d97 22 #include "mbed.h"
kenjiArai 0:9c1a7a1f0d97 23
kenjiArai 0:9c1a7a1f0d97 24 class BMP180 {
kenjiArai 0:9c1a7a1f0d97 25 public:
kenjiArai 0:9c1a7a1f0d97 26 BMP180(PinName p_sda, PinName p_scl);
kenjiArai 0:9c1a7a1f0d97 27 BMP180(I2C& p_i2c);
kenjiArai 0:9c1a7a1f0d97 28
kenjiArai 0:9c1a7a1f0d97 29 float read_temperature();
kenjiArai 0:9c1a7a1f0d97 30 float read_pressure();
kenjiArai 0:9c1a7a1f0d97 31 uint8_t read_baro_id();
kenjiArai 0:9c1a7a1f0d97 32 void normalize();
kenjiArai 0:9c1a7a1f0d97 33
kenjiArai 0:9c1a7a1f0d97 34 protected:
kenjiArai 0:9c1a7a1f0d97 35 void init(void);
kenjiArai 0:9c1a7a1f0d97 36 void i2c_read_n_bytes(int, char*, int);
kenjiArai 0:9c1a7a1f0d97 37 void i2c_write_n_bytes(int, char*, int);
kenjiArai 0:9c1a7a1f0d97 38
kenjiArai 0:9c1a7a1f0d97 39 I2C i2c;
kenjiArai 0:9c1a7a1f0d97 40 float temperature;
kenjiArai 0:9c1a7a1f0d97 41 float pressure;
kenjiArai 0:9c1a7a1f0d97 42 uint8_t id_number;
kenjiArai 0:9c1a7a1f0d97 43
kenjiArai 0:9c1a7a1f0d97 44 private:
kenjiArai 0:9c1a7a1f0d97 45 // save EEPROM Data (Coefficient data)
kenjiArai 0:9c1a7a1f0d97 46 int16_t eep_ac1, eep_ac2, eep_ac3;
kenjiArai 0:9c1a7a1f0d97 47 uint16_t eep_ac4, eep_ac5, eep_ac6;
kenjiArai 0:9c1a7a1f0d97 48 int16_t eep_b1, eep_b2, eep_mb; // eep_mb:not use
kenjiArai 0:9c1a7a1f0d97 49 int16_t eep_mc, eep_md;
kenjiArai 0:9c1a7a1f0d97 50 // temporary save
kenjiArai 0:9c1a7a1f0d97 51 char baro_dt[4];
kenjiArai 0:9c1a7a1f0d97 52 // address
kenjiArai 0:9c1a7a1f0d97 53 char BMP180_addr;
kenjiArai 0:9c1a7a1f0d97 54 };
kenjiArai 0:9c1a7a1f0d97 55
kenjiArai 0:9c1a7a1f0d97 56 #endif // BMP180_H