Data acquisition using excel or matlab

hello

I am working on a project where I am doing PI control on a system. The system has large delays and I need to plot the data over 24 hrs to see how the system is responding to my control algorithm.

The only problem is that I am not familiar on how to save the data that is appearing on the serial monitor to excel or matlab. Is anyone familiar with this and could assist me. I would prefer the data be stored on matlab.

Search for PLX-DAQ.

Pete

PLX-daq doesn't want to run on my system.
I keep getting a run time error '424'

That's a worry......... PLX is just a macro for Excel. What version of Office and what operating system are you using?

For excel, I simply ctrl+A and ctrl+C then ctrl+V all data from Serial monitor to a cell in excel. For matlab, i do the same but save in *.txt format. You may name the file "data.txt".

Then in matlab use these functions:

load ('data.txt');
[row, column] = data; %% to store your data in a matrix with dimesion = row x column

p/s: you better log the data separated by a "tab" rather than a semicolon, comma or a dot.

I've used Processing on the laptop side to be writing data into .csv files. the downside of this is that you can't open the excel files while data logging is taking place over the serial port.

Hope this helps.

The arduino side code is:

float Temp;

void setup()
{
  Serial.begin(9600);
 
}

void loop()
{
  Temp = analogRead(A1);
  Temp = 5.0*Temp*100.0/1024;
  Serial.println(Temp);
  delay(1000);
}

The processing side of the code is as:

import processing.serial.*;

Serial myPort;
PrintWriter output;

void setup()
{
  String[] portList = Serial.list();
  myPort = new Serial(this, portList[0],9600);
  println(portList);
  
  output = createWriter("TempretureLog.csv");
  output.println("Time"+","+"Temp (in Deg. Cel.)");
}

void draw()
{
  if(myPort.available()>0)
  {
    String Temp = myPort.readStringUntil('\n');
    if(Temp!=null)
    {
    output.print(hour()+":"+minute()+":"+second()+":"+",");
    output.print(Temp);
    println(Temp);
    }
  }
  //else println("No Data");
}

void keyPressed()
{
  output.flush();
  output.close();
  exit();
}

Please, look here: RS232 to Excel. Four methods to send data from RS232 to Excel
The most simple way is to output the data from the device in the CSV format. In this case Advanced Serial Data Logger can capture it to an CSV file. You can open this file while the logger will write data to it. From my experience, it will be better to parse and write data to Access and read the captured data to Excel when you need it.

The Excel part is pretty easy...
Use a Leonardo, Pro Micro, or V-USB to simulate a keyboard.
Like my project here:
http://www.hackster.io/rayburne/arduino-to-excel-using-v-usb

If the PC needs to be away, just use the same concept, pass data to SD-Card, import the <file.prn> into Excel later.

Ray

Hey there,

don't want to grave dig but the PLX DAQ 424 error got solved with version 2 of the software.

It can be found here on the forum ==> PLX-DAQ version 2 - now with 64 bit support! (and further new features) - Interfacing w/ Software on the Computer - Arduino Forum <==

I posted to this old thread as it is one of the highest ranked threads on Google and lots of people might look for a solution here. Once again, sorry for grave digging....

P.S.: it actually was an issue with 64 bit versions of Excel. PLX DAQ v1 is not compatible with those (v2 is ! :slight_smile: )

Greetings

Jonathan

@Jonathan: Thanks very much for version 2 of PLX-DAQ!

I used the original a lot, but was stuck with old versions of Excel.