Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 10 additions & 0 deletions examples/ReadPressure/ReadPressure.ino
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,16 @@ void loop() {
// print an empty line
Serial.println();

// read the sensor value
float altitude = BARO.readAltitude();
// print the sensor value
Serial.print("Altitude = ");
Serial.print(altitude);
Serial.println(" m");

// print an empty line
Serial.println();

// wait 1 second to print again
delay(1000);
}
12 changes: 12 additions & 0 deletions src/BARO.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -93,6 +93,18 @@ float LPS22HBClass::readTemperature(void)
return reading/100;
}

#define PRESSURE_SEALEVEL_HPA (1013.25f) /**< Average sea level pressure is 1013.25 hPa */
float LPS22HBClass::readAltitude(void)
{
float atmospheric = BARO.readPressure(MILLIBAR);
/*
* The altitude in meters can be calculated
* with the international barometric formula
*/
return 44330.0 *
(1.0 - pow(atmospheric/PRESSURE_SEALEVEL_HPA, (1.0/5.255)));
}

int LPS22HBClass::i2cRead(uint8_t reg)
{
_wire->beginTransmission(LPS22HB_ADDRESS);
Expand Down
2 changes: 1 addition & 1 deletion src/BARO.h
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ class LPS22HBClass {

float readPressure(int units = KILOPASCAL);
float readTemperature(void);

float readAltitude(void);
private:
int i2cRead(uint8_t reg);
int i2cWrite(uint8_t reg, uint8_t val);
Expand Down