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
main.cpp
00001 #include "mbed.h" 00002 #include "SDFileSystem.h" 00003 00004 00005 SDFileSystem sd(p5, p6, p7, p8, "sd"); 00006 AnalogIn pitot(p18); 00007 00008 DigitalOut led1(LED1); 00009 DigitalOut led2(LED2); 00010 DigitalOut led3(LED3); 00011 DigitalOut led4(LED4); 00012 DigitalIn logging(p19); 00013 DigitalOut stop_counter(p20); 00014 PwmOut servo(p21); 00015 Timer t; 00016 00017 float pout; 00018 double time_pulse, length, pres, vel; 00019 float sp_of_s; 00020 float temp = 0; 00021 00022 00023 int main() { 00024 led1 = 0.0; 00025 led2 = 0.0; 00026 led3 = 0.0; 00027 led4 = 0.0; 00028 wait(0.5); 00029 00030 while(logging < 0.5) { 00031 led1 = 1; 00032 led4 = 1; 00033 wait(0.5); 00034 led1 = 0; 00035 led4 = 0; 00036 wait(0.5); 00037 } 00038 00039 wait(3); 00040 //setup log file 00041 FILE *fp = fopen("/sd/TFLOG.csv", "w"); 00042 if(fp == NULL) { 00043 error("Could not open file for write\n\r"); 00044 } 00045 00046 fprintf(fp, "altitude, velocity\n"); 00047 stop_counter = 0; 00048 led1 = 1; 00049 led4 = 1; 00050 00051 while(logging < 0.5){ 00052 //get velocity 00053 pres = 500 * (pitot.read()*5-0.25)/3.75*0.95-15.5; 00054 00055 if(pres > 0){ 00056 vel=sqrt(2.0/1.225*pres); 00057 } 00058 else{ 00059 vel=-sqrt(2.0/1.225*pres*(-1.0)); 00060 } 00061 00062 fprintf(fp,"%6.4f\n ", vel); 00063 //servo.pulsewidth(pout); 00064 //wait(0.04888-time_pulse/1000000); 00065 wait(0.01); 00066 } 00067 stop_counter = 1; 00068 fclose(fp); 00069 led1 = 0; 00070 led4 = 0; 00071 }
Generated on Thu Jul 28 2022 00:26:43 by 1.7.2