quadcopter cufe
/
waterRocketBest
BMP085 test
Fork of bmp085_lib by
main.cpp@2:5a2a1d891d40, 2015-04-05 (annotated)
- Committer:
- khaledelmadawi
- Date:
- Sun Apr 05 19:17:27 2015 +0000
- Revision:
- 2:5a2a1d891d40
- Parent:
- 0:dbba605ca87c
Bmp085 test
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
okini3939 | 0:dbba605ca87c | 1 | #include "mbed.h" |
okini3939 | 0:dbba605ca87c | 2 | #include "BMP085.h" |
okini3939 | 0:dbba605ca87c | 3 | |
okini3939 | 0:dbba605ca87c | 4 | BMP085 bmp085(p9, p10); |
okini3939 | 0:dbba605ca87c | 5 | |
okini3939 | 0:dbba605ca87c | 6 | DigitalOut myled(LED1); |
okini3939 | 0:dbba605ca87c | 7 | Serial pc(USBTX, USBRX); |
khaledelmadawi | 2:5a2a1d891d40 | 8 | float get_altitude(float pressure); |
khaledelmadawi | 2:5a2a1d891d40 | 9 | Timer t; |
khaledelmadawi | 2:5a2a1d891d40 | 10 | Serial xbee1(p13, p14); |
okini3939 | 0:dbba605ca87c | 11 | |
khaledelmadawi | 2:5a2a1d891d40 | 12 | LocalFileSystem local("local"); //////setting the destination of the file that will be saved |
khaledelmadawi | 2:5a2a1d891d40 | 13 | float altitude,Max_altitude,altitude_node,pressure,Temperature; |
khaledelmadawi | 2:5a2a1d891d40 | 14 | int main() |
khaledelmadawi | 2:5a2a1d891d40 | 15 | { |
khaledelmadawi | 2:5a2a1d891d40 | 16 | pc.baud(9600); |
khaledelmadawi | 2:5a2a1d891d40 | 17 | xbee1.baud(9600); |
okini3939 | 0:dbba605ca87c | 18 | |
khaledelmadawi | 2:5a2a1d891d40 | 19 | while(1) |
khaledelmadawi | 2:5a2a1d891d40 | 20 | { xbee1.printf("select any button to start operation\r\n"); |
khaledelmadawi | 2:5a2a1d891d40 | 21 | while(!xbee1.readable()/*||!pc.readable()*/); |
khaledelmadawi | 2:5a2a1d891d40 | 22 | xbee1.getc(); |
khaledelmadawi | 2:5a2a1d891d40 | 23 | |
khaledelmadawi | 2:5a2a1d891d40 | 24 | t.reset(); |
khaledelmadawi | 2:5a2a1d891d40 | 25 | t.start(); |
khaledelmadawi | 2:5a2a1d891d40 | 26 | FILE *fp=fopen("/local/out.xls","a"); |
khaledelmadawi | 2:5a2a1d891d40 | 27 | bmp085.update(); |
khaledelmadawi | 2:5a2a1d891d40 | 28 | //Temperature=alt_sensor.get_temperature(); |
khaledelmadawi | 2:5a2a1d891d40 | 29 | //pressure=alt_sensor.get_pressure(); |
khaledelmadawi | 2:5a2a1d891d40 | 30 | altitude_node=get_altitude(bmp085.get_pressure()); |
khaledelmadawi | 2:5a2a1d891d40 | 31 | Max_altitude=0; |
khaledelmadawi | 2:5a2a1d891d40 | 32 | while(1){ |
khaledelmadawi | 2:5a2a1d891d40 | 33 | if(xbee1.readable()) { |
khaledelmadawi | 2:5a2a1d891d40 | 34 | xbee1.getc(); |
khaledelmadawi | 2:5a2a1d891d40 | 35 | break; |
khaledelmadawi | 2:5a2a1d891d40 | 36 | } |
khaledelmadawi | 2:5a2a1d891d40 | 37 | bmp085.update(); |
khaledelmadawi | 2:5a2a1d891d40 | 38 | //Temperature=alt_sensor.get_temperature(); |
khaledelmadawi | 2:5a2a1d891d40 | 39 | //pressure=alt_sensor.get_pressure(); |
khaledelmadawi | 2:5a2a1d891d40 | 40 | altitude=get_altitude(bmp085.get_pressure())-altitude_node; |
khaledelmadawi | 2:5a2a1d891d40 | 41 | if(Max_altitude<altitude){ |
khaledelmadawi | 2:5a2a1d891d40 | 42 | Max_altitude=altitude; |
khaledelmadawi | 2:5a2a1d891d40 | 43 | } |
khaledelmadawi | 2:5a2a1d891d40 | 44 | xbee1.printf("altitude:%f Max_alt%f t:%f\r\n",altitude,Max_altitude,t.read()); |
khaledelmadawi | 2:5a2a1d891d40 | 45 | fprintf(fp,"%f \t %f \t %f \t %f \t %f\r\n",altitude,Max_altitude,pressure,Temperature,t.read()); |
khaledelmadawi | 2:5a2a1d891d40 | 46 | pc.printf("altitude:%f Max_alt%f t:%f\r\n",altitude,Max_altitude,t.read()); |
khaledelmadawi | 2:5a2a1d891d40 | 47 | } |
khaledelmadawi | 2:5a2a1d891d40 | 48 | fclose(fp); |
okini3939 | 0:dbba605ca87c | 49 | } |
okini3939 | 0:dbba605ca87c | 50 | } |
khaledelmadawi | 2:5a2a1d891d40 | 51 | |
khaledelmadawi | 2:5a2a1d891d40 | 52 | |
khaledelmadawi | 2:5a2a1d891d40 | 53 | |
khaledelmadawi | 2:5a2a1d891d40 | 54 | float get_altitude(float pressure){ |
khaledelmadawi | 2:5a2a1d891d40 | 55 | const float p0 = 1013.25; // Pressure at sea level (Pa) |
khaledelmadawi | 2:5a2a1d891d40 | 56 | float altitude; |
khaledelmadawi | 2:5a2a1d891d40 | 57 | |
khaledelmadawi | 2:5a2a1d891d40 | 58 | // Add this into loop(), after you've calculated the pressure |
khaledelmadawi | 2:5a2a1d891d40 | 59 | altitude = (float)44330 * (1 - (float)pow(((double) pressure/p0), 0.190295)); |
khaledelmadawi | 2:5a2a1d891d40 | 60 | return altitude; |
khaledelmadawi | 2:5a2a1d891d40 | 61 | } |