Travis Widmer / Mbed 2 deprecated OzoneDetector

Dependencies:   mbed SDFileSystem

Committer:
Twidmer18
Date:
Wed Apr 20 04:39:33 2016 +0000
Revision:
4:ff1ea24ef19a
Parent:
3:39d578e9ce10
Child:
5:2d14b92842e8
FINAL PRODUCT, with 3 hr run time

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 4:ff1ea24ef19a 14 int test_time = 10800; //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 3:39d578e9ce10 17 DigitalOut Red(p17); //Red LED in Pod (to transitor)
Twidmer18 3:39d578e9ce10 18 DigitalOut Purple(p18); //Purple LED in Pod (to transitor)
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 3:39d578e9ce10 58 Red = 1;
Twidmer18 2:57bffc6f5df3 59 wait(1);
Twidmer18 3:39d578e9ce10 60
Twidmer18 1:34ff3ee532bd 61 }
Twidmer18 1:34ff3ee532bd 62 sampleTime.detach();
Twidmer18 2:57bffc6f5df3 63 fclose(fileRed);
Twidmer18 2:57bffc6f5df3 64 fclose(filePurple);
Twidmer18 1:34ff3ee532bd 65 for (int i=0; i<10; i++) //Signals end of program for lab test purposes
Twidmer18 1:34ff3ee532bd 66 {
Twidmer18 1:34ff3ee532bd 67 led1 = 1;
Twidmer18 1:34ff3ee532bd 68 wait (.5);
Twidmer18 1:34ff3ee532bd 69 led1 = 0;
Twidmer18 1:34ff3ee532bd 70 wait (.5);
Twidmer18 1:34ff3ee532bd 71 }
Twidmer18 1:34ff3ee532bd 72 }
Twidmer18 1:34ff3ee532bd 73
Twidmer18 1:34ff3ee532bd 74 void writeData()
Twidmer18 1:34ff3ee532bd 75 {
Twidmer18 3:39d578e9ce10 76 taverage.start();
Twidmer18 3:39d578e9ce10 77 double sum = 0;
Twidmer18 1:34ff3ee532bd 78 for(int i=0;i<10;i++) //Takes 10 data points per second and finds average
Twidmer18 1:34ff3ee532bd 79 { //Hoping to avoid the waves created by 60 Hz noise in lab
Twidmer18 2:57bffc6f5df3 80 if(taverage.read()>=.1)
Twidmer18 1:34ff3ee532bd 81 {
Twidmer18 1:34ff3ee532bd 82 sum = sum + pot.read();
Twidmer18 1:34ff3ee532bd 83 taverage.reset();
Twidmer18 1:34ff3ee532bd 84 }
Twidmer18 1:34ff3ee532bd 85
Twidmer18 1:34ff3ee532bd 86 }
Twidmer18 2:57bffc6f5df3 87 double average = sum/10;
Twidmer18 3:39d578e9ce10 88 //pc.printf("Time %.2f /t %.4f V\r\n", t.read(), 3.3*average);
Twidmer18 2:57bffc6f5df3 89 if(Red==1)
Twidmer18 2:57bffc6f5df3 90 {
Twidmer18 3:39d578e9ce10 91 fprintf(fileRed, "%.2f \t %.4f\n\r", t.read(), 3.3*average); //Standard file input
Twidmer18 2:57bffc6f5df3 92 }
Twidmer18 2:57bffc6f5df3 93 else
Twidmer18 3:39d578e9ce10 94 fprintf(filePurple, "%.2f \t %.4f\n\r", t.read(), 3.3*average); //Standard file input
Twidmer18 1:34ff3ee532bd 95 }