Fet

Dependencies:   mbed BMP180

Committer:
naruu
Date:
Sat Nov 28 09:48:52 2020 +0000
Revision:
1:d51aa991d297
Parent:
0:c2d05d76f730
FET

Who changed what in which revision?

UserRevisionLine numberNew contents of line
sugihara0312 0:c2d05d76f730 1 #include "mbed.h"
sugihara0312 0:c2d05d76f730 2 #include "BMP180.h"
sugihara0312 0:c2d05d76f730 3 #include <math.h>
naruu 1:d51aa991d297 4 #include <stdio.h>
sugihara0312 0:c2d05d76f730 5
sugihara0312 0:c2d05d76f730 6 #define PIN_SDA D4
sugihara0312 0:c2d05d76f730 7 #define PIN_SCL D5
sugihara0312 0:c2d05d76f730 8 Serial pc(SERIAL_TX,SERIAL_RX,921600);
sugihara0312 0:c2d05d76f730 9 Serial xbee(D1,D0);
naruu 1:d51aa991d297 10 DigitalOut FET(D9);
naruu 1:d51aa991d297 11
sugihara0312 0:c2d05d76f730 12
sugihara0312 0:c2d05d76f730 13 int main(){
sugihara0312 0:c2d05d76f730 14 float x8;
naruu 1:d51aa991d297 15 FET=0;
sugihara0312 0:c2d05d76f730 16 BMP180 bmp180(PIN_SDA,PIN_SCL);
sugihara0312 0:c2d05d76f730 17 float pressure,temperature,altitude;
sugihara0312 0:c2d05d76f730 18 xbee.printf("\rstart!\n\r");
sugihara0312 0:c2d05d76f730 19 bmp180.Initialize(27,BMP180_OSS_ULTRA_HIGH_RESOLUTION);//27は府大の海抜高度
sugihara0312 0:c2d05d76f730 20 xbee.printf("initialization complete!\n\r");
sugihara0312 0:c2d05d76f730 21
sugihara0312 0:c2d05d76f730 22 while(1){
sugihara0312 0:c2d05d76f730 23 if(bmp180.ReadData(&temperature,&pressure)){
sugihara0312 0:c2d05d76f730 24 float x4,x5,x6,x7,a,b;
sugihara0312 0:c2d05d76f730 25 a = pressure;
sugihara0312 0:c2d05d76f730 26 b = temperature;
sugihara0312 0:c2d05d76f730 27 x4 = 1019.11 / a; //海面気圧を気圧でわる
sugihara0312 0:c2d05d76f730 28 x5 = powf(x4, 0.1902225); //5.257ぶんの1
sugihara0312 0:c2d05d76f730 29 x6 = 273.15 + b; //絶対温度
sugihara0312 0:c2d05d76f730 30 x7 = (x5 - 1) * x6;
sugihara0312 0:c2d05d76f730 31 x8 = x7 / 0.0065;
sugihara0312 0:c2d05d76f730 32 altitude = x8;
sugihara0312 0:c2d05d76f730 33
sugihara0312 0:c2d05d76f730 34
sugihara0312 0:c2d05d76f730 35 xbee.printf("Altitude(m)\t:%.3f\n\r",altitude);
sugihara0312 0:c2d05d76f730 36 xbee.printf("--------------------------------\n\r");
sugihara0312 0:c2d05d76f730 37 wait(1);
sugihara0312 0:c2d05d76f730 38 break;
sugihara0312 0:c2d05d76f730 39 }else{
sugihara0312 0:c2d05d76f730 40 xbee.printf("NO DATA\n\r");
sugihara0312 0:c2d05d76f730 41 xbee.printf("---------------------------\n\r");
sugihara0312 0:c2d05d76f730 42 wait(1);
sugihara0312 0:c2d05d76f730 43 }
sugihara0312 0:c2d05d76f730 44 }
sugihara0312 0:c2d05d76f730 45 while(1){
sugihara0312 0:c2d05d76f730 46 if(bmp180.ReadData(&temperature,&pressure)){
sugihara0312 0:c2d05d76f730 47 float y4,y5,y6,y7,y8,c,d;
sugihara0312 0:c2d05d76f730 48 float speed;
sugihara0312 0:c2d05d76f730 49
sugihara0312 0:c2d05d76f730 50 c = pressure;
sugihara0312 0:c2d05d76f730 51 d = temperature;
sugihara0312 0:c2d05d76f730 52 y4 = 1019.11 / c; //海面気圧を気圧でわる
sugihara0312 0:c2d05d76f730 53 y5 = powf(y4,0.1902225);
sugihara0312 0:c2d05d76f730 54 y6 = 273.15 + d;
sugihara0312 0:c2d05d76f730 55 y7 = (y5 - 1) * y6;
sugihara0312 0:c2d05d76f730 56 y8 = y7 / 0.0065;
sugihara0312 0:c2d05d76f730 57 altitude = y8;
sugihara0312 0:c2d05d76f730 58 speed = (x8 - y8)/1;
sugihara0312 0:c2d05d76f730 59
sugihara0312 0:c2d05d76f730 60 xbee.printf("Altitude(m)\t:%.3f\n\r",altitude);
sugihara0312 0:c2d05d76f730 61 xbee.printf("Speed(m/s)\t:%.3f\n\r",speed);
sugihara0312 0:c2d05d76f730 62 xbee.printf("--------------------------------\n\r");
sugihara0312 0:c2d05d76f730 63 x8 = y8;
sugihara0312 0:c2d05d76f730 64 wait(1);
naruu 1:d51aa991d297 65 if(speed<=0){
sugihara0312 0:c2d05d76f730 66 break;
sugihara0312 0:c2d05d76f730 67 }}
sugihara0312 0:c2d05d76f730 68 else{
sugihara0312 0:c2d05d76f730 69 xbee.printf("NO DATA\n\r");
sugihara0312 0:c2d05d76f730 70 wait(1);
sugihara0312 0:c2d05d76f730 71 }
sugihara0312 0:c2d05d76f730 72 }
naruu 1:d51aa991d297 73 FET=1;
naruu 1:d51aa991d297 74 wait(20);
naruu 1:d51aa991d297 75 FET=0;
sugihara0312 0:c2d05d76f730 76 return 0;
sugihara0312 0:c2d05d76f730 77 }