Travis Widmer / Mbed 2 deprecated OzoneDetector

Dependencies:   mbed SDFileSystem

Committer:
Twidmer18
Date:
Tue Apr 19 03:07:19 2016 +0000
Revision:
2:57bffc6f5df3
Parent:
1:34ff3ee532bd
Child:
3:39d578e9ce10
Included Led switching and two separate files, NOT putting data into correct files

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 2:57bffc6f5df3 7 AnalogIn pot(p16); //Phototransitor Voltage reading
Twidmer18 1:34ff3ee532bd 8 Timer t;
Twidmer18 1:34ff3ee532bd 9 Timer taverage; //Seperate Timer for data average
Twidmer18 1:34ff3ee532bd 10 Ticker sampleTime;
Twidmer18 2:57bffc6f5df3 11 FILE *fileRed;
Twidmer18 2:57bffc6f5df3 12 FILE *filePurple;
Twidmer18 1:34ff3ee532bd 13 bool mountFailure;
Twidmer18 2:57bffc6f5df3 14 int test_time = 10; //Length of test in seconds
Twidmer18 1:34ff3ee532bd 15 void writeData();
Twidmer18 1:34ff3ee532bd 16 DigitalOut led1(LED1); //Mbed LED for SD Card Verification
Twidmer18 1:34ff3ee532bd 17 DigitalOut Red(p17); //Red LED in Pod
Twidmer18 1:34ff3ee532bd 18 DigitalOut Purple(p18); //Purple LED in Pod
Twidmer18 1:34ff3ee532bd 19
Twidmer18 1:34ff3ee532bd 20 int main()
Twidmer18 1:34ff3ee532bd 21 {
Twidmer18 1:34ff3ee532bd 22 mountFailure = fs.mount();
Twidmer18 1:34ff3ee532bd 23 if (mountFailure !=0)
Twidmer18 1:34ff3ee532bd 24 {
Twidmer18 1:34ff3ee532bd 25 pc.printf("Failed to mount the SD card. \n\r");
Twidmer18 1:34ff3ee532bd 26 return -1;
Twidmer18 1:34ff3ee532bd 27 }
Twidmer18 1:34ff3ee532bd 28 else if (mountFailure == 0)
Twidmer18 1:34ff3ee532bd 29 {
Twidmer18 1:34ff3ee532bd 30 for (int i=0; i<10; i++)
Twidmer18 1:34ff3ee532bd 31 {
Twidmer18 1:34ff3ee532bd 32 led1 = 1;
Twidmer18 1:34ff3ee532bd 33 wait (.5);
Twidmer18 1:34ff3ee532bd 34 led1=0;
Twidmer18 1:34ff3ee532bd 35 wait (.5);
Twidmer18 1:34ff3ee532bd 36 }
Twidmer18 1:34ff3ee532bd 37 }
Twidmer18 2:57bffc6f5df3 38 fileRed = fopen("/fs/dataLogRed.txt", "w");
Twidmer18 2:57bffc6f5df3 39 filePurple = fopen("/fs/dataLogPurple.txt", "w");
Twidmer18 2:57bffc6f5df3 40 if (filePurple==NULL || fileRed==NULL)
Twidmer18 1:34ff3ee532bd 41 {
Twidmer18 1:34ff3ee532bd 42 pc.printf("Failed to open the file.\n\r");
Twidmer18 1:34ff3ee532bd 43 return -1;
Twidmer18 1:34ff3ee532bd 44 }
Twidmer18 1:34ff3ee532bd 45
Twidmer18 2:57bffc6f5df3 46 fprintf(fileRed, "Time (s) /t Voltage[Red] (V)\n\r");
Twidmer18 2:57bffc6f5df3 47 fprintf(filePurple, "Time (s) /t Voltage[Purple] (V)\n\r");
Twidmer18 2:57bffc6f5df3 48
Twidmer18 1:34ff3ee532bd 49 t.start();
Twidmer18 1:34ff3ee532bd 50 sampleTime.attach(&writeData, 1);
Twidmer18 1:34ff3ee532bd 51
Twidmer18 1:34ff3ee532bd 52 while (t.read()<test_time)
Twidmer18 1:34ff3ee532bd 53 {
Twidmer18 2:57bffc6f5df3 54 Purple = 1;
Twidmer18 2:57bffc6f5df3 55 Red = 0;
Twidmer18 2:57bffc6f5df3 56 wait(1);
Twidmer18 2:57bffc6f5df3 57 Purple = 0;
Twidmer18 2:57bffc6f5df3 58 Red = 1;
Twidmer18 2:57bffc6f5df3 59 wait(1);
Twidmer18 1:34ff3ee532bd 60 }
Twidmer18 1:34ff3ee532bd 61 sampleTime.detach();
Twidmer18 2:57bffc6f5df3 62 fclose(fileRed);
Twidmer18 2:57bffc6f5df3 63 fclose(filePurple);
Twidmer18 1:34ff3ee532bd 64 for (int i=0; i<10; i++) //Signals end of program for lab test purposes
Twidmer18 1:34ff3ee532bd 65 {
Twidmer18 1:34ff3ee532bd 66 led1 = 1;
Twidmer18 1:34ff3ee532bd 67 wait (.5);
Twidmer18 1:34ff3ee532bd 68 led1 = 0;
Twidmer18 1:34ff3ee532bd 69 wait (.5);
Twidmer18 1:34ff3ee532bd 70 }
Twidmer18 1:34ff3ee532bd 71 }
Twidmer18 1:34ff3ee532bd 72
Twidmer18 1:34ff3ee532bd 73 void writeData()
Twidmer18 1:34ff3ee532bd 74 {
Twidmer18 2:57bffc6f5df3 75 /* double sum = 0;
Twidmer18 1:34ff3ee532bd 76 for(int i=0;i<10;i++) //Takes 10 data points per second and finds average
Twidmer18 1:34ff3ee532bd 77 { //Hoping to avoid the waves created by 60 Hz noise in lab
Twidmer18 2:57bffc6f5df3 78 if(taverage.read()>=.1)
Twidmer18 1:34ff3ee532bd 79 {
Twidmer18 1:34ff3ee532bd 80 sum = sum + pot.read();
Twidmer18 1:34ff3ee532bd 81 taverage.reset();
Twidmer18 1:34ff3ee532bd 82 }
Twidmer18 1:34ff3ee532bd 83
Twidmer18 1:34ff3ee532bd 84 }
Twidmer18 2:57bffc6f5df3 85 double average = sum/10;
Twidmer18 2:57bffc6f5df3 86 */
Twidmer18 2:57bffc6f5df3 87 if(Red==1)
Twidmer18 2:57bffc6f5df3 88 {
Twidmer18 2:57bffc6f5df3 89 fprintf(fileRed, "%.2f \t %.4f\n\r", t.read(), 3.3*pot.read()); //Standard file input
Twidmer18 2:57bffc6f5df3 90 }
Twidmer18 2:57bffc6f5df3 91 else
Twidmer18 2:57bffc6f5df3 92 fprintf(filePurple, "%.2f \t %.4f\n\r", t.read(), 3.3*pot.read()); //Standard file input
Twidmer18 1:34ff3ee532bd 93 }