this system is speed sensor for the human powered airplane by the pitot tube. the pitot tube is used the differential pressure senser SDP-1000.

Dependencies:   SDFileSystem mbed

Committer:
onseeen
Date:
Tue Oct 13 11:38:55 2015 +0000
Revision:
0:94c1e7624b95
the pitot tube is air speed sensor for the human powered airplane. this system is used the SDP-1000.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
onseeen 0:94c1e7624b95 1 #include "mbed.h"
onseeen 0:94c1e7624b95 2 #include "SDFileSystem.h"
onseeen 0:94c1e7624b95 3
onseeen 0:94c1e7624b95 4
onseeen 0:94c1e7624b95 5 SDFileSystem sd(p5, p6, p7, p8, "sd");
onseeen 0:94c1e7624b95 6 AnalogIn pitot(p18);
onseeen 0:94c1e7624b95 7
onseeen 0:94c1e7624b95 8 DigitalOut led1(LED1);
onseeen 0:94c1e7624b95 9 DigitalOut led2(LED2);
onseeen 0:94c1e7624b95 10 DigitalOut led3(LED3);
onseeen 0:94c1e7624b95 11 DigitalOut led4(LED4);
onseeen 0:94c1e7624b95 12 DigitalIn logging(p19);
onseeen 0:94c1e7624b95 13 DigitalOut stop_counter(p20);
onseeen 0:94c1e7624b95 14 PwmOut servo(p21);
onseeen 0:94c1e7624b95 15 Timer t;
onseeen 0:94c1e7624b95 16
onseeen 0:94c1e7624b95 17 float pout;
onseeen 0:94c1e7624b95 18 double time_pulse, length, pres, vel;
onseeen 0:94c1e7624b95 19 float sp_of_s;
onseeen 0:94c1e7624b95 20 float temp = 0;
onseeen 0:94c1e7624b95 21
onseeen 0:94c1e7624b95 22
onseeen 0:94c1e7624b95 23 int main() {
onseeen 0:94c1e7624b95 24 led1 = 0.0;
onseeen 0:94c1e7624b95 25 led2 = 0.0;
onseeen 0:94c1e7624b95 26 led3 = 0.0;
onseeen 0:94c1e7624b95 27 led4 = 0.0;
onseeen 0:94c1e7624b95 28 wait(0.5);
onseeen 0:94c1e7624b95 29
onseeen 0:94c1e7624b95 30 while(logging < 0.5) {
onseeen 0:94c1e7624b95 31 led1 = 1;
onseeen 0:94c1e7624b95 32 led4 = 1;
onseeen 0:94c1e7624b95 33 wait(0.5);
onseeen 0:94c1e7624b95 34 led1 = 0;
onseeen 0:94c1e7624b95 35 led4 = 0;
onseeen 0:94c1e7624b95 36 wait(0.5);
onseeen 0:94c1e7624b95 37 }
onseeen 0:94c1e7624b95 38
onseeen 0:94c1e7624b95 39 wait(3);
onseeen 0:94c1e7624b95 40 //setup log file
onseeen 0:94c1e7624b95 41 FILE *fp = fopen("/sd/TFLOG.csv", "w");
onseeen 0:94c1e7624b95 42 if(fp == NULL) {
onseeen 0:94c1e7624b95 43 error("Could not open file for write\n\r");
onseeen 0:94c1e7624b95 44 }
onseeen 0:94c1e7624b95 45
onseeen 0:94c1e7624b95 46 fprintf(fp, "altitude, velocity\n");
onseeen 0:94c1e7624b95 47 stop_counter = 0;
onseeen 0:94c1e7624b95 48 led1 = 1;
onseeen 0:94c1e7624b95 49 led4 = 1;
onseeen 0:94c1e7624b95 50
onseeen 0:94c1e7624b95 51 while(logging < 0.5){
onseeen 0:94c1e7624b95 52 //get velocity
onseeen 0:94c1e7624b95 53 pres = 500 * (pitot.read()*5-0.25)/3.75*0.95-15.5;
onseeen 0:94c1e7624b95 54
onseeen 0:94c1e7624b95 55 if(pres > 0){
onseeen 0:94c1e7624b95 56 vel=sqrt(2.0/1.225*pres);
onseeen 0:94c1e7624b95 57 }
onseeen 0:94c1e7624b95 58 else{
onseeen 0:94c1e7624b95 59 vel=-sqrt(2.0/1.225*pres*(-1.0));
onseeen 0:94c1e7624b95 60 }
onseeen 0:94c1e7624b95 61
onseeen 0:94c1e7624b95 62 fprintf(fp,"%6.4f\n ", vel);
onseeen 0:94c1e7624b95 63 //servo.pulsewidth(pout);
onseeen 0:94c1e7624b95 64 //wait(0.04888-time_pulse/1000000);
onseeen 0:94c1e7624b95 65 wait(0.01);
onseeen 0:94c1e7624b95 66 }
onseeen 0:94c1e7624b95 67 stop_counter = 1;
onseeen 0:94c1e7624b95 68 fclose(fp);
onseeen 0:94c1e7624b95 69 led1 = 0;
onseeen 0:94c1e7624b95 70 led4 = 0;
onseeen 0:94c1e7624b95 71 }