Travis Widmer / Mbed 2 deprecated OzoneDetector

Dependencies:   mbed SDFileSystem

Committer:
Twidmer18
Date:
Tue Apr 19 01:59:20 2016 +0000
Revision:
1:34ff3ee532bd
Parent:
0:b1167ebd51d9
Child:
2:57bffc6f5df3
SD card with multiple averaged data points per second, NO LED switch

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Twidmer18 1:34ff3ee532bd 1 #include "mbed.h"
Twidmer18 1:34ff3ee532bd 2 #include "SDFileSystem.h"
Twidmer18 1:34ff3ee532bd 3
Twidmer18 1:34ff3ee532bd 4 SDFileSystem fs(p5, p6, p7, p8, "fs");
Twidmer18 1:34ff3ee532bd 5
Twidmer18 1:34ff3ee532bd 6 Serial pc(USBTX, USBRX);
Twidmer18 1:34ff3ee532bd 7 AnalogIn pot(p16);
Twidmer18 1:34ff3ee532bd 8 Timer t;
Twidmer18 1:34ff3ee532bd 9 Timer taverage; //Seperate Timer for data average
Twidmer18 1:34ff3ee532bd 10 Ticker sampleTime;
Twidmer18 1:34ff3ee532bd 11 FILE *fp;
Twidmer18 1:34ff3ee532bd 12 bool mountFailure;
Twidmer18 1:34ff3ee532bd 13 int test_time = 300; //Length of test in seconds
Twidmer18 1:34ff3ee532bd 14 void writeData();
Twidmer18 1:34ff3ee532bd 15 DigitalOut led1(LED1); //Mbed LED for SD Card Verification
Twidmer18 1:34ff3ee532bd 16 DigitalOut Red(p17); //Red LED in Pod
Twidmer18 1:34ff3ee532bd 17 DigitalOut Purple(p18); //Purple LED in Pod
Twidmer18 1:34ff3ee532bd 18
Twidmer18 1:34ff3ee532bd 19 int main()
Twidmer18 1:34ff3ee532bd 20 {
Twidmer18 1:34ff3ee532bd 21 mountFailure = fs.mount();
Twidmer18 1:34ff3ee532bd 22 if (mountFailure !=0)
Twidmer18 1:34ff3ee532bd 23 {
Twidmer18 1:34ff3ee532bd 24 pc.printf("Failed to mount the SD card. \n\r");
Twidmer18 1:34ff3ee532bd 25 return -1;
Twidmer18 1:34ff3ee532bd 26 }
Twidmer18 1:34ff3ee532bd 27 else if (mountFailure == 0)
Twidmer18 1:34ff3ee532bd 28 {
Twidmer18 1:34ff3ee532bd 29 for (int i=0; i<10; i++)
Twidmer18 1:34ff3ee532bd 30 {
Twidmer18 1:34ff3ee532bd 31 led1 = 1;
Twidmer18 1:34ff3ee532bd 32 wait (.5);
Twidmer18 1:34ff3ee532bd 33 led1=0;
Twidmer18 1:34ff3ee532bd 34 wait (.5);
Twidmer18 1:34ff3ee532bd 35 }
Twidmer18 1:34ff3ee532bd 36 }
Twidmer18 1:34ff3ee532bd 37 fp = fopen("/fs/dataLog.txt", "w");
Twidmer18 1:34ff3ee532bd 38 if (fp==NULL)
Twidmer18 1:34ff3ee532bd 39 {
Twidmer18 1:34ff3ee532bd 40 pc.printf("Failed to open the file.\n\r");
Twidmer18 1:34ff3ee532bd 41 return -1;
Twidmer18 1:34ff3ee532bd 42 }
Twidmer18 1:34ff3ee532bd 43
Twidmer18 1:34ff3ee532bd 44 fprintf(fp, "Time (s) /t Voltage (V)\n\r");
Twidmer18 1:34ff3ee532bd 45
Twidmer18 1:34ff3ee532bd 46 t.start();
Twidmer18 1:34ff3ee532bd 47 sampleTime.attach(&writeData, 1);
Twidmer18 1:34ff3ee532bd 48
Twidmer18 1:34ff3ee532bd 49 while (t.read()<test_time)
Twidmer18 1:34ff3ee532bd 50 {
Twidmer18 1:34ff3ee532bd 51
Twidmer18 1:34ff3ee532bd 52
Twidmer18 1:34ff3ee532bd 53 }
Twidmer18 1:34ff3ee532bd 54 sampleTime.detach();
Twidmer18 1:34ff3ee532bd 55 fclose(fp);
Twidmer18 1:34ff3ee532bd 56 for (int i=0; i<10; i++) //Signals end of program for lab test purposes
Twidmer18 1:34ff3ee532bd 57 {
Twidmer18 1:34ff3ee532bd 58 led1 = 1;
Twidmer18 1:34ff3ee532bd 59 wait (.5);
Twidmer18 1:34ff3ee532bd 60 led1 = 0;
Twidmer18 1:34ff3ee532bd 61 wait (.5);
Twidmer18 1:34ff3ee532bd 62 }
Twidmer18 1:34ff3ee532bd 63 }
Twidmer18 1:34ff3ee532bd 64
Twidmer18 1:34ff3ee532bd 65 void writeData()
Twidmer18 1:34ff3ee532bd 66 {
Twidmer18 1:34ff3ee532bd 67 float sum = 0;
Twidmer18 1:34ff3ee532bd 68 for(int i=0;i<10;i++) //Takes 10 data points per second and finds average
Twidmer18 1:34ff3ee532bd 69 { //Hoping to avoid the waves created by 60 Hz noise in lab
Twidmer18 1:34ff3ee532bd 70 if(taverage.read()>.1)
Twidmer18 1:34ff3ee532bd 71 {
Twidmer18 1:34ff3ee532bd 72 sum = sum + pot.read();
Twidmer18 1:34ff3ee532bd 73 taverage.reset();
Twidmer18 1:34ff3ee532bd 74 }
Twidmer18 1:34ff3ee532bd 75
Twidmer18 1:34ff3ee532bd 76 }
Twidmer18 1:34ff3ee532bd 77 float average = sum/10;
Twidmer18 1:34ff3ee532bd 78
Twidmer18 1:34ff3ee532bd 79 fprintf(fp, "%.2f \t %.4f\n\r", t.read(), 3.3*average); //Standard file input
Twidmer18 1:34ff3ee532bd 80 }