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

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers main.cpp Source File

main.cpp

00001 //-----------------------------------------------------------------------------
00002 // EXAMPLE: ANALOG READ AND STORE IN FILE
00003 // Simple example program to read 100 analog samples at half second intervals.
00004 // The program stores all 100 values and marks each sample as either
00005 // "above" or "below" the chosen threshold of 0.6. The values are
00006 // stored in text file analog.txt in the MBED folder. The samples are
00007 // also written out to stdout (TeraTerm).
00008 // LED 1 turns ON when the sample goes above 0.6, and OFF when it
00009 // falls below 0.6. LED2 toggles ON/OFF to show program activity.
00010 //
00011 // D. Wendelboe  14 July 2010  - Submitted "as is". No guarantees implied.
00012 //-----------------------------------------------------------------------------
00013 
00014 #include "mbed.h"
00015 
00016 #define ON   1
00017 #define OFF  0
00018 
00019 LocalFileSystem local("local");
00020 AnalogIn myinput(p20);
00021 DigitalOut myled(p5);
00022 DigitalOut led1(LED1);
00023 DigitalOut led2(LED2);
00024 
00025 float analog_value;
00026 int count = 0;
00027 
00028 int main() {
00029     printf("Read and store 100 analog sample at 0.5 sec interval\r\n");
00030     
00031     FILE *fp = fopen("/local/analog.txt","w");  // Open a file to save samples
00032     printf("File analog.txt is open.\r\n");
00033 
00034     while (count < 100) {
00035         analog_value = myinput.read();  // Read analog (range 0.0 to 1.0)
00036         if (analog_value > 0.6)         // If value is above 0.6, then store
00037         {                               // it as an "above" value.
00038             fprintf (fp, "%3i: %f [above]\r\n", count+1, analog_value);
00039             led1 = ON;     // Turn LED ON if sample was stored.
00040 
00041         } else {           // Below 0.6, store it as a "below" value.
00042             fprintf (fp, "%3i: %f [below]\r\n", count+1, analog_value);
00043             led1 = OFF;    // Turn OFF if sample was not stored.
00044         }
00045         printf ("%3i: %f\r\n", count+1, analog_value);
00046         count++;           // Increment sample counter.
00047         led2 = ON;         // LED2 ON.
00048         wait_ms(250);      // Wait 0.25 second
00049         led2 = OFF;        // LED2 OFF.
00050         wait_ms(250);      // Wait 0.25 second
00051     }
00052     fclose(fp);            // Close the sampe file after 100 samples read.
00053     printf("File analog.txt closed.\r\n");
00054     printf("Finished. 100 samples taken. Bye!\r\n");
00055 }