Fix #7 by adding readSealevelPressure function.
This commit is contained in:
parent
4466c2651c
commit
af52d4b186
3 changed files with 9 additions and 0 deletions
|
|
@ -195,6 +195,10 @@ int32_t Adafruit_BMP085::readPressure(void) {
|
|||
return p;
|
||||
}
|
||||
|
||||
int32_t Adafruit_BMP085::readSealevelPressure(float altitude_meters) {
|
||||
float pressure = readPressure();
|
||||
return (int32_t)(pressure / pow(1.0-altitude_meters/44330, 5.255));
|
||||
}
|
||||
|
||||
float Adafruit_BMP085::readTemperature(void) {
|
||||
int32_t UT, B5; // following ds convention
|
||||
|
|
|
|||
|
|
@ -58,6 +58,7 @@ class Adafruit_BMP085 {
|
|||
boolean begin(uint8_t mode = BMP085_ULTRAHIGHRES); // by default go highres
|
||||
float readTemperature(void);
|
||||
int32_t readPressure(void);
|
||||
int32_t readSealevelPressure(float altitude_meters = 0);
|
||||
float readAltitude(float sealevelPressure = 101325); // std atmosphere
|
||||
uint16_t readRawTemperature(void);
|
||||
uint32_t readRawPressure(void);
|
||||
|
|
|
|||
|
|
@ -49,6 +49,10 @@ void loop() {
|
|||
Serial.print(bmp.readAltitude());
|
||||
Serial.println(" meters");
|
||||
|
||||
Serial.print("Pressure at sealevel (calculated) = ");
|
||||
Serial.print(bmp.readSealevelPressure());
|
||||
Serial.println(" Pa");
|
||||
|
||||
// you can get a more precise measurement of altitude
|
||||
// if you know the current sea level pressure which will
|
||||
// vary with weather and such. If it is 1015 millibars
|
||||
|
|
|
|||
Loading…
Reference in a new issue