MATLAB Answers

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일)
Amit Kadarmandalgi
Amit Kadarmandalgi 2018년 12월 25일
댓글: Walter Roberson 2020년 5월 7일
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())

댓글을 달려면 로그인하십시오.

추가 답변(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
  댓글 수: 1
Amit Kadarmandalgi
Amit Kadarmandalgi 2018년 12월 25일
thanks for the answers .... managed to figure it out this is the code if someone is in a simillar situation

댓글을 달려면 로그인하십시오.

Community Treasure Hunt

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

Start Hunting!

Translated by