Austin Buchan
/
mbed_photo_bar
Publishing for Biomimetics
main.cpp@0:27d9dfbfd60c, 2016-05-31 (annotated)
- Committer:
- abuchan
- Date:
- Tue May 31 22:56:35 2016 +0000
- Revision:
- 0:27d9dfbfd60c
Publishing for Biomimetics.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
abuchan | 0:27d9dfbfd60c | 1 | #include "mbed.h" |
abuchan | 0:27d9dfbfd60c | 2 | |
abuchan | 0:27d9dfbfd60c | 3 | DigitalOut leds[] = {(LED1), (LED2), (LED3), (LED4) }; |
abuchan | 0:27d9dfbfd60c | 4 | AnalogIn photo(p19); |
abuchan | 0:27d9dfbfd60c | 5 | DigitalIn button(p16); |
abuchan | 0:27d9dfbfd60c | 6 | Serial pc(USBTX, USBRX); |
abuchan | 0:27d9dfbfd60c | 7 | LocalFileSystem local("local"); |
abuchan | 0:27d9dfbfd60c | 8 | Timer timer; |
abuchan | 0:27d9dfbfd60c | 9 | |
abuchan | 0:27d9dfbfd60c | 10 | FILE* fp = NULL; |
abuchan | 0:27d9dfbfd60c | 11 | char filename[256]; |
abuchan | 0:27d9dfbfd60c | 12 | |
abuchan | 0:27d9dfbfd60c | 13 | int n_leds, i, saving, filecount = 0; |
abuchan | 0:27d9dfbfd60c | 14 | float voltage; |
abuchan | 0:27d9dfbfd60c | 15 | |
abuchan | 0:27d9dfbfd60c | 16 | int main (void) { |
abuchan | 0:27d9dfbfd60c | 17 | timer.start(); |
abuchan | 0:27d9dfbfd60c | 18 | while(true) { |
abuchan | 0:27d9dfbfd60c | 19 | voltage = 3.3*photo; |
abuchan | 0:27d9dfbfd60c | 20 | n_leds = (int)(4*(voltage - 2.0)); |
abuchan | 0:27d9dfbfd60c | 21 | |
abuchan | 0:27d9dfbfd60c | 22 | for (i=0; i<4; i++) { |
abuchan | 0:27d9dfbfd60c | 23 | leds[i] = (i < n_leds) ? 1 : 0; |
abuchan | 0:27d9dfbfd60c | 24 | } |
abuchan | 0:27d9dfbfd60c | 25 | |
abuchan | 0:27d9dfbfd60c | 26 | saving = button ? 1 : 0; |
abuchan | 0:27d9dfbfd60c | 27 | |
abuchan | 0:27d9dfbfd60c | 28 | printf("%f %d %d\r\n", voltage, n_leds, saving); |
abuchan | 0:27d9dfbfd60c | 29 | |
abuchan | 0:27d9dfbfd60c | 30 | if (saving) { |
abuchan | 0:27d9dfbfd60c | 31 | if (fp == NULL) { |
abuchan | 0:27d9dfbfd60c | 32 | sprintf(filename,"/local/%d.txt",timer.read_ms()); |
abuchan | 0:27d9dfbfd60c | 33 | fp = fopen(filename,"w"); |
abuchan | 0:27d9dfbfd60c | 34 | } else { |
abuchan | 0:27d9dfbfd60c | 35 | fprintf(fp, "%f\r\n", voltage); |
abuchan | 0:27d9dfbfd60c | 36 | } |
abuchan | 0:27d9dfbfd60c | 37 | } else { |
abuchan | 0:27d9dfbfd60c | 38 | if (fp != NULL) { |
abuchan | 0:27d9dfbfd60c | 39 | fclose(fp); |
abuchan | 0:27d9dfbfd60c | 40 | fp = NULL; |
abuchan | 0:27d9dfbfd60c | 41 | filecount++; |
abuchan | 0:27d9dfbfd60c | 42 | } |
abuchan | 0:27d9dfbfd60c | 43 | } |
abuchan | 0:27d9dfbfd60c | 44 | |
abuchan | 0:27d9dfbfd60c | 45 | if (filecount >= 3) { |
abuchan | 0:27d9dfbfd60c | 46 | exit(0); |
abuchan | 0:27d9dfbfd60c | 47 | } |
abuchan | 0:27d9dfbfd60c | 48 | wait(0.1); |
abuchan | 0:27d9dfbfd60c | 49 | } |
abuchan | 0:27d9dfbfd60c | 50 | } |