用arduino读取多个数据并传入matlab储存

本文介绍了一种方法,通过Arduino输出数据,MATLAB进行编号判断,将电流、电压、光照强度等六种数据分别存储到不同矩阵,并实现实时画图。虽然存在无法手动停止的问题,但可以通过Ctrl+C中断程序,查看所有读取到的数据。
摘要由CSDN通过智能技术生成

作为一个小白之前尝试用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
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值