I have a code for data acquisition n plotting from one sensor how do write the code for three sensors such that I plot three graphs of different color in same figure

1 次查看(过去 30 天)
clear all
close all
clc;
a = arduino();
tmax = 50;
figure(1),
grid on,
title('pulse sensor Analog Voltage Real Time Data Graph')
xlabel ('Time (s)'), ylabel('Voltage');
axis([0 tmax+1 -0.5 5.5]);
k = 0;
v = 0;
t = 0;
tic
while toc<= tmax
k = k + 1;
v(k) = readVoltage(a,'A0');
t(k) = toc;
if k > 1
line([t(k-1) t(k)],[v(k-1) v(k)]);
drawnow;
end
end
  3 个评论
Walter Roberson
Walter Roberson 2020-5-7
The frameworks people have posted should work, provided that you do not need more than about 40 Hz. (But I do recommend animatedline() instead of continually doing line())

请先登录,再进行评论。

采纳的回答

madhan ravi
madhan ravi 2018-12-25

更多回答(2 个)

Walter Roberson
Walter Roberson 2018-12-25
line() can accept a 'color' option.
However, it is inefficient to draw a line between every pair of points. You should look at animatedline() which permits you to addpoints()

Amit Kadarmandalgi
Amit Kadarmandalgi 2018-12-25
clear all
close all
clc;
a = arduino();
tmax = 50;
figure(1),
grid on,
title('pulse redings')
xlabel ('Time (s)'), ylabel('Voltage');
axis([0 tmax+1 -0.5 5.5]);
c= 0;
v= 0;
p=0;
k=0;
t = 0;
tic
while toc<= tmax
c = c + 1;
v(c) = readVoltage(a,'A0');
w(c) = readVoltage(a,'A1');
x(c) = readVoltage(a,'A2');
t(c) = toc;
if c > 1
line([t(c-1) t(c)],[v(c-1) v(c)],'color','blue');
hold on
line([t(c-1) t(c)],[p(c-1) p(c)],'color','red');
hold on
line([t(c-1) t(c)],[k(c-1) k(c)],'color','green');
drawnow;
end
end

类别

Help CenterFile Exchange 中查找有关 MATLAB Support Package for Arduino Hardware 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by