bmp

Dependencies:   BMP085_2 mbed

Committer:
ivanff15
Date:
Thu May 08 13:32:00 2014 +0000
Revision:
0:db75f53b7b2d
bmp;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
ivanff15 0:db75f53b7b2d 1 #include "mbed.h"
ivanff15 0:db75f53b7b2d 2 #include "BMP085.h"
ivanff15 0:db75f53b7b2d 3 #include <stdio.h>
ivanff15 0:db75f53b7b2d 4
ivanff15 0:db75f53b7b2d 5 #define Pu 76 //cmHg
ivanff15 0:db75f53b7b2d 6 #define Po 1009.789
ivanff15 0:db75f53b7b2d 7
ivanff15 0:db75f53b7b2d 8 float q=0.125,p=1.05728,r=10,k=0.10572799;
ivanff15 0:db75f53b7b2d 9
ivanff15 0:db75f53b7b2d 10 float toPa(float data)
ivanff15 0:db75f53b7b2d 11 {
ivanff15 0:db75f53b7b2d 12 float hasil;
ivanff15 0:db75f53b7b2d 13 hasil = data/100;
ivanff15 0:db75f53b7b2d 14 return hasil;
ivanff15 0:db75f53b7b2d 15 }
ivanff15 0:db75f53b7b2d 16
ivanff15 0:db75f53b7b2d 17 Serial pc(USBTX,USBRX);
ivanff15 0:db75f53b7b2d 18 I2C i2c(p28,p27);
ivanff15 0:db75f53b7b2d 19 BMP085 alt_sensor(p28,p27);
ivanff15 0:db75f53b7b2d 20
ivanff15 0:db75f53b7b2d 21 float tekanan,tekanan_filter;
ivanff15 0:db75f53b7b2d 22 float ketinggian;
ivanff15 0:db75f53b7b2d 23
ivanff15 0:db75f53b7b2d 24 float average()
ivanff15 0:db75f53b7b2d 25 {
ivanff15 0:db75f53b7b2d 26 float tekananx[50], rerata = 0;
ivanff15 0:db75f53b7b2d 27
ivanff15 0:db75f53b7b2d 28 for (int i=0 ; i<50 ; i++)
ivanff15 0:db75f53b7b2d 29 {
ivanff15 0:db75f53b7b2d 30 tekananx[i]=alt_sensor.get_pressure();
ivanff15 0:db75f53b7b2d 31 rerata = rerata +tekananx[i];
ivanff15 0:db75f53b7b2d 32 }
ivanff15 0:db75f53b7b2d 33 rerata = rerata / 50;
ivanff15 0:db75f53b7b2d 34 return rerata;
ivanff15 0:db75f53b7b2d 35 }
ivanff15 0:db75f53b7b2d 36
ivanff15 0:db75f53b7b2d 37 int main()
ivanff15 0:db75f53b7b2d 38 {
ivanff15 0:db75f53b7b2d 39 pc.baud(57600);
ivanff15 0:db75f53b7b2d 40 while(1)
ivanff15 0:db75f53b7b2d 41 {
ivanff15 0:db75f53b7b2d 42 alt_sensor.update();
ivanff15 0:db75f53b7b2d 43 tekanan=alt_sensor.get_pressure();
ivanff15 0:db75f53b7b2d 44 p=p+q;
ivanff15 0:db75f53b7b2d 45 k=p/(p+r);
ivanff15 0:db75f53b7b2d 46 tekanan_filter=tekanan_filter+k*(tekanan-tekanan_filter);
ivanff15 0:db75f53b7b2d 47 ketinggian = 44330*(1.0-pow(tekanan_filter/Po,0.1903));
ivanff15 0:db75f53b7b2d 48 p=(1-k)*p;
ivanff15 0:db75f53b7b2d 49 //ketinggian=alt_sensor.get_altitude_m();
ivanff15 0:db75f53b7b2d 50 //pc.printf("%f||%f\n",ketinggian,tekanan);
ivanff15 0:db75f53b7b2d 51 pc.printf("%f||%f\n",tekanan,ketinggian);
ivanff15 0:db75f53b7b2d 52 wait_ms(100);
ivanff15 0:db75f53b7b2d 53 }
ivanff15 0:db75f53b7b2d 54 }