LPS25H sample
Dependencies: AQM0802 LPS25H mbed
See http://developer.mbed.org/users/yasuyuki/notebook/LPS25H/
main.cpp
- Committer:
- yasuyuki
- Date:
- 2014-10-12
- Revision:
- 0:f7ac3f4062cf
File content as of revision 0:f7ac3f4062cf:
//********************** // Barometer and Altimeter // LPS25H sample for mbed // // LPC1768 flash=512KB, ADC=12bits // LPC11U35 flash=64KB, ADC=10bits // Nucleo ADC=12bits // // (C)Copyright 2014 All rights reserved by Y.Onodera // http://einstlab.web.fc2.com //********************** #include "mbed.h" #include "AQM0802.h" #include "LPS25H.h" #if defined(TARGET_LPC1768) I2C i2c(p28,p27); #endif // for TG-LPC11U35-501 #if defined(TARGET_LPC11U35_501) I2C i2c(P0_5,P0_4); #endif // for Nucleo #if defined(TARGET_NUCLEO_F401RE) I2C i2c(D14,D15); #endif AQM0802 lcd(i2c); LPS25H lps25h(i2c); #define T0 288.15 #define dT 0.0065 #define P0 101325.0 #define g 9.80665 #define R 287.052 double GetAltitude(double p, double t){ return (t+273.15)/dT*(pow((P0/p),dT*R/g)-1); } int main() { char msg[10]; int p, t, a; sprintf(msg,"Barometer"); lcd.locate(0,0); lcd.print(msg); sprintf(msg,"Altimeter"); lcd.locate(0,1); lcd.print(msg); wait(1); while(1) { p = (double)lps25h.pressure()/40.96; t = 42.5 + (double)lps25h.temperature()/480.0; a = GetAltitude(p,t); sprintf(msg,"%6dPa",p); lcd.locate(0,0); lcd.print(msg); sprintf(msg,"%4dm%2dC", a, t); lcd.locate(0,1); lcd.print(msg); wait(1); } }