Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed SDFileSystem
main.cpp@6:743b09fa5dc0, 2016-05-17 (annotated)
- Committer:
- Twidmer18
- Date:
- Tue May 17 00:35:50 2016 +0000
- Revision:
- 6:743b09fa5dc0
- Parent:
- 5:2d14b92842e8
- Child:
- 7:d33bdc9715ff
FINal;
Who changed what in which revision?
| User | Revision | Line number | New 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 | 6:743b09fa5dc0 | 14 | int test_time = 600; //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 | } |
