Collecting data and storing in EEPROM

Hi Everyone ,

I have a problem regarding storage of data. I want to use the Arduino for collecting the data samples from the sensor. I want to collect the data as Test 1, test 2 ............ Can anyone tell me, is there anyway that i can store the data collected in first test in EEPROM and again collect the data as test 2 and store this data in EEPROM so that if i m not connected to PC immedietly then also i can retrive the data when i will connect the Microcontroller to PC. So that i will have all the data that i have collected i.e data from all the tests performed..

Second, when we are transffering the data using serial port, we are able to see the data through Hiperterminal. But is there any waty that i can save the data which i m monitoring on screen in a file, so that i can retrive the data after some time by opening the file and use that data for analysis using some softwares like LabVIEW on the PC.

If anyone has worked on such things, please reply.

Thanks for any help!!!!!!

Can anyone tell me, is there anyway that i can store the data collected in first test in EEPROM and again collect the data as test 2 and store this data in EEPROM

See this: http://arduino.cc/en/Reference/EEPROM

You can do something like:

int startAdress = 0; //tweak this to suit your needs
for (byte i=0; i<10; i++){
  //read a value
  byte value = map( analogRead(2),0,255,0,1023 );
  EEPROM.write( startAdress+i , value );
}

This will store ten values in EEPROM from adress 0 to 9.

But is there any waty that i can save the data which i m monitoring on screen in a file

The easiest way would be to simply copy-paste the terminal text to a file.

Otherwise, select a language from this list:
http://www.arduino.cc/playground/Main/InterfacingWithSoftware

Then write a program (called a proxy) that will listen to the serial port, and log to file if anything is recieved.

You can also use a (IMO better) serial program like TeraTerm which has a file logging feature. When enabled, everything you see in the terminal is saved to a file.

Thank you very much guyes,

I will try out the things you suggested and let you know about the result.

Once again thanks for the reply.

Hi All,

I tried using the Tera Term and it works fine. But the other thing that storing the data in EEPROM, i m having some problems with that.
The 512 Bytes of memory is too small as i want to collect much more samples than that. Also i want to coolect the data in between 650 to 1400mV so for storing the data it will require 2 bytes of memory. Right now i m just getting the output in between 0 and 255. How can i configure the EEPROM to store the data as 2 Bytes.
Is there any other way that i can store the data in RAM and then configure the board in power saving mode and extract the data after some time?
I read that we can use the SD card for collecting the data. Can anyone tell me that how we can use it to store the collected data and extract back the collected data from it.

If you have done this before, please tell me how you did it. I am running out of time for this part to finish.

thanks for the help!

Are you sure you need the 750 step precision?

Either way. You could buy additional storage, I2C EEPROM for instance.

Or, you could buy the Arduino Mega :slight_smile:

actually i mean, i have to collet the data which require 2 bytes for the storage. The sampled data will be collected from 10 bit ADC. And the range of the voltage i m working is 0 to 5 volts.

If i buy additional I2C EEPEROM then will it work just as EEPROM and would i ll be able to program that similar to on chip EEPROM.

I will search about Arduino Mega.

Following Arduino Playground - I2CEEPROM24LC512 but with a 24LC256 was my task yesterday.

(Code needs slight modification to work wit a 24LC16 though, due to the different addressing scheme).

Instead of using the EEPROM lib you'll use his two functions which worked pleasingly well.

Edit: woops, wrong page. Should be: Arduino Playground - I2CEEPROM