Skip to content

Commit af52d4b

Browse files
committed
Fix #7 by adding readSealevelPressure function.
1 parent 4466c26 commit af52d4b

File tree

3 files changed

+9
-0
lines changed

3 files changed

+9
-0
lines changed

Adafruit_BMP085.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -195,6 +195,10 @@ int32_t Adafruit_BMP085::readPressure(void) {
195195
return p;
196196
}
197197

198+
int32_t Adafruit_BMP085::readSealevelPressure(float altitude_meters) {
199+
float pressure = readPressure();
200+
return (int32_t)(pressure / pow(1.0-altitude_meters/44330, 5.255));
201+
}
198202

199203
float Adafruit_BMP085::readTemperature(void) {
200204
int32_t UT, B5; // following ds convention

Adafruit_BMP085.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@ class Adafruit_BMP085 {
5858
boolean begin(uint8_t mode = BMP085_ULTRAHIGHRES); // by default go highres
5959
float readTemperature(void);
6060
int32_t readPressure(void);
61+
int32_t readSealevelPressure(float altitude_meters = 0);
6162
float readAltitude(float sealevelPressure = 101325); // std atmosphere
6263
uint16_t readRawTemperature(void);
6364
uint32_t readRawPressure(void);

examples/BMP085test/BMP085test.ino

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,10 @@ void loop() {
4949
Serial.print(bmp.readAltitude());
5050
Serial.println(" meters");
5151

52+
Serial.print("Pressure at sealevel (calculated) = ");
53+
Serial.print(bmp.readSealevelPressure());
54+
Serial.println(" Pa");
55+
5256
// you can get a more precise measurement of altitude
5357
// if you know the current sea level pressure which will
5458
// vary with weather and such. If it is 1015 millibars

0 commit comments

Comments
 (0)