How to continuously real-time plotting graph from arduino to matlab (10k Variable Resistor)

9 views (last 30 days)
Hello and good day to all the experts and visitors of Mat-Lab, I am a mechatronic student and now facing problem trying to interface matlab and arduino..
I am trying to real-time plotting graph from arduino to matlab with (10k variable resistor), but the graph will stop plotting after reach the Maximun X-axis (I set 0-1000).
Can it continuously real-time plotting the graph non stop? full of appreciation or teaching me to solve it.
the code is shown below:
a = arduino('COM3');
interv = 1000;
passo = 1;
t=1;
x=0;
while(t<interv)
b=a.analogRead(0);
x=[x,b];
plot(x);
axis([0,interv,0,1024]);
grid
t=t+passo;
drawnow;
end

Answers (6)

David Sanchez
David Sanchez on 13 Aug 2013
You just have to change the axis when the highest value is reached:
axis([interv,2*interv,0,1024]); % adapt values to your needs
  1 Comment
Charles Lim
Charles Lim on 16 Aug 2013
Very Thank you for replied
I set interv = 1000
after I change this code
the x-axis started from 1000 to 2000
how do I start from 0 - 1000 after the highest value is reached auto start from 1000 - 2000 , continuously non stop ?

Sign in to comment.


anand
anand on 22 Dec 2016
just make use of while(1) after a = arduino and at the last make use of a end function this solves your problem

Sanjay Raam
Sanjay Raam on 9 Feb 2014
Edited: Sanjay Raam on 9 Feb 2014
you need not set axis between 0to1024
instead give the following statement
axes auto;
by the way, thanks for your program... it was useful for me to learn!!

khoulod ghanem
khoulod ghanem on 28 Sep 2015
I am trying to plot current-voltage curve from Arduino to Matlab , can you help me to start ??

ravi kumar
ravi kumar on 2 Feb 2017
This did not work for me. I tried this one: Real Time Analog Voltage in Matlab using Arduino it uses line function. anybody knows how to scroll the time line?
  1 Comment
prasad noolu
prasad noolu on 17 Aug 2017
Edited: prasad noolu on 17 Aug 2017
try this code: clear all
a = arduino
x = 0;
for k = 1:1000
b = readVoltage(a, 'A0');
x = [x, b];
plot (x);
grid;
drawnow;
end

Sign in to comment.


Madhu Govindarajan
Madhu Govindarajan on 17 Oct 2017
Checkout this video - https://www.mathworks.com/videos/plotting-live-data-of-a-temperature-sensor-using-arduino-and-matlab-121317.html?s_tid=srchtitle
HTH, Madhu

Categories

Find more on MATLAB Support Package for Arduino Hardware in Help Center and File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!