MATLAB Answers

fscanf question with Arduino

29 views (last 30 days)
I need to know how I can control the amount of Serial.println(variable_1) methods that get read during the fscanf() execution.
This is the code:
arduino = serial('COM4');
x = 1:1:60;
for i=1:length(x)
y(i) = fscanf(arduino, '%d');
% Plot data from arduino
If my Arduino sketch has multiple Serial.println() it seems to combine the variables within the Serial statements in the same vector. Is it possible for them to be separated?


Sign in to comment.

Accepted Answer

Walter Roberson
Walter Roberson on 24 Feb 2013
fscanf(arduino, '%d', 1);


Darryl on 25 Feb 2013
Thank you for your help.
Say if I did have 2 serial print statements in my arduino sketch, would it be possible to skip the first one that I asked about prior and read a second output. Or even better be able to choose between the two statements as I could write some code like this:
for i=1:length(x)
y(i) = fscanf(arduino, '%d', % read serial print 1);
z(i) = fscanf(arduino, '%d', % read serial print 2 );
Then I could plot a 3d graph for my dht11 temperature and humidity sensor, and it would save me uploading separated sketches for the arduino.
Walter Roberson
Walter Roberson on 25 Feb 2013
y(i) = fscanf(arduino, '%d', 1);
z(i) = fscanf(arduino, '%d', 1);
if you want to read both of them. Or, more efficiently,
t = fscanf(arduino '%d%d', 1);
y(i) = t(1);
z(i) = t(2);
Darryl on 25 Feb 2013
Thank you very much indeed. Much appreciated, will try that tomorrow.

Sign in to comment.

More Answers (1)

Kristian Cvetkov
Kristian Cvetkov on 12 Nov 2017
How I can write data on my Arduino, after I read them in Matlab?


Sign in to comment.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!