ANALOG READ AND STORE IN FILE Simple example program to read 100 analog samples at half second intervals and store them in a local file.

Dependencies:   mbed

Committer:
YouTahDoug
Date:
Wed Jul 14 15:55:12 2010 +0000
Revision:
0:11245efb9ab9

        

Who changed what in which revision?

UserRevisionLine numberNew contents of line
YouTahDoug 0:11245efb9ab9 1 //-----------------------------------------------------------------------------
YouTahDoug 0:11245efb9ab9 2 // EXAMPLE: ANALOG READ AND STORE IN FILE
YouTahDoug 0:11245efb9ab9 3 // Simple example program to read 100 analog samples at half second intervals.
YouTahDoug 0:11245efb9ab9 4 // The program stores all 100 values and marks each sample as either
YouTahDoug 0:11245efb9ab9 5 // "above" or "below" the chosen threshold of 0.6. The values are
YouTahDoug 0:11245efb9ab9 6 // stored in text file analog.txt in the MBED folder. The samples are
YouTahDoug 0:11245efb9ab9 7 // also written out to stdout (TeraTerm).
YouTahDoug 0:11245efb9ab9 8 // LED 1 turns ON when the sample goes above 0.6, and OFF when it
YouTahDoug 0:11245efb9ab9 9 // falls below 0.6. LED2 toggles ON/OFF to show program activity.
YouTahDoug 0:11245efb9ab9 10 //
YouTahDoug 0:11245efb9ab9 11 // D. Wendelboe 14 July 2010 - Submitted "as is". No guarantees implied.
YouTahDoug 0:11245efb9ab9 12 //-----------------------------------------------------------------------------
YouTahDoug 0:11245efb9ab9 13
YouTahDoug 0:11245efb9ab9 14 #include "mbed.h"
YouTahDoug 0:11245efb9ab9 15
YouTahDoug 0:11245efb9ab9 16 #define ON 1
YouTahDoug 0:11245efb9ab9 17 #define OFF 0
YouTahDoug 0:11245efb9ab9 18
YouTahDoug 0:11245efb9ab9 19 LocalFileSystem local("local");
YouTahDoug 0:11245efb9ab9 20 AnalogIn myinput(p20);
YouTahDoug 0:11245efb9ab9 21 DigitalOut myled(p5);
YouTahDoug 0:11245efb9ab9 22 DigitalOut led1(LED1);
YouTahDoug 0:11245efb9ab9 23 DigitalOut led2(LED2);
YouTahDoug 0:11245efb9ab9 24
YouTahDoug 0:11245efb9ab9 25 float analog_value;
YouTahDoug 0:11245efb9ab9 26 int count = 0;
YouTahDoug 0:11245efb9ab9 27
YouTahDoug 0:11245efb9ab9 28 int main() {
YouTahDoug 0:11245efb9ab9 29 printf("Read and store 100 analog sample at 0.5 sec interval\r\n");
YouTahDoug 0:11245efb9ab9 30
YouTahDoug 0:11245efb9ab9 31 FILE *fp = fopen("/local/analog.txt","w"); // Open a file to save samples
YouTahDoug 0:11245efb9ab9 32 printf("File analog.txt is open.\r\n");
YouTahDoug 0:11245efb9ab9 33
YouTahDoug 0:11245efb9ab9 34 while (count < 100) {
YouTahDoug 0:11245efb9ab9 35 analog_value = myinput.read(); // Read analog (range 0.0 to 1.0)
YouTahDoug 0:11245efb9ab9 36 if (analog_value > 0.6) // If value is above 0.6, then store
YouTahDoug 0:11245efb9ab9 37 { // it as an "above" value.
YouTahDoug 0:11245efb9ab9 38 fprintf (fp, "%3i: %f [above]\r\n", count+1, analog_value);
YouTahDoug 0:11245efb9ab9 39 led1 = ON; // Turn LED ON if sample was stored.
YouTahDoug 0:11245efb9ab9 40
YouTahDoug 0:11245efb9ab9 41 } else { // Below 0.6, store it as a "below" value.
YouTahDoug 0:11245efb9ab9 42 fprintf (fp, "%3i: %f [below]\r\n", count+1, analog_value);
YouTahDoug 0:11245efb9ab9 43 led1 = OFF; // Turn OFF if sample was not stored.
YouTahDoug 0:11245efb9ab9 44 }
YouTahDoug 0:11245efb9ab9 45 printf ("%3i: %f\r\n", count+1, analog_value);
YouTahDoug 0:11245efb9ab9 46 count++; // Increment sample counter.
YouTahDoug 0:11245efb9ab9 47 led2 = ON; // LED2 ON.
YouTahDoug 0:11245efb9ab9 48 wait_ms(250); // Wait 0.25 second
YouTahDoug 0:11245efb9ab9 49 led2 = OFF; // LED2 OFF.
YouTahDoug 0:11245efb9ab9 50 wait_ms(250); // Wait 0.25 second
YouTahDoug 0:11245efb9ab9 51 }
YouTahDoug 0:11245efb9ab9 52 fclose(fp); // Close the sampe file after 100 samples read.
YouTahDoug 0:11245efb9ab9 53 printf("File analog.txt closed.\r\n");
YouTahDoug 0:11245efb9ab9 54 printf("Finished. 100 samples taken. Bye!\r\n");
YouTahDoug 0:11245efb9ab9 55 }