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
BMP180.h@1:23942d7b7023, 2014-06-20 (annotated)
- 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?
User | Revision | Line number | New 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 |