作为一个小白之前尝试用matlab读取多个电流、电压、光照强度等数据,并把数据分到不同的矩阵中,以及具备读取数据实时画图功能。网上一直找不到教程,后来自己想了个特别古老的方法,把arduino输出的数据在matlab进行编号,根据整除的余数来判断把数据存储进哪一个矩阵。当然在arduino部分要用到Serial.println(需要输出的量);
话不多说,直接上Matlab代码。
if~isempty(instrfind)
fclose(instrfind)
delete(instrfind)
end
global s
s = serial('COM7'); %定义串口对象
set(s,'BaudRate',9600); %设置波特率s
fopen(s); %打开串口对象s
interval = 10000; %这里开始的代码很Part1里的代码类似
passo = 1;
t = 1;
x1= [];
x2= [];
y1=[];
y2=[];
T=[];
guang=[]
i=0;
p=0
while(t<interval)
i=i+1;
b = str2num(fgetl(s)); %用函数fget(s)从缓冲区读取串口数据,当出现终止符(换行符)停止
if mod(i,6)==1
x1=[x1,b]%所以在Arduino程序里要使用Serial.println()
figure(1)
plot(x1);
grid;
drawnow;
hold on
else
if mod(i,6)==2
x2 = [x2,b];
figure(2)
plot(x2);
grid;
drawnow;
else