如何使用matlab读取Arduino串口不同的数据并作图

如何使用matlab读取Arduino串口不同的数据并作图,第1张

用matlab读了串口数据然后plot图,但我只会读一种数据。比如只读ADC value,或者只读 Time。但想用matlab把Arduino得到的时间和ADC值都读过去然后做出波形图。时间为横轴,ADC为纵轴。Arduino和matlab代码写在下面了,用那个代码做出来的图横坐标的时间都是不对的,所以必须把Arduino读出的时间也读过去。

Arduino:

#include <MsTimer2h>

const int INTERVAL = 3;

unsigned long n = 0;

void ggyy() {

n = millis();

int m = analogRead(A0);

Serialprint(n);

Serialprint(" ");

Serialprint(m);

}

void setup(){

Serialbegin(115200);

MsTimer2::set(INTERVAL,ggyy);

MsTimer2::start();

}

void loop() {

delay(800000);

}

Matlab:

s=serial('COM3');

set(s,'BaudRate',115200);

fopen(s);

interval=5000;

passo=1;

t=1;

x=0;

while(t<interval)

b=str2num(fgetl(s));

x=[x,b];

plot(x);

grid

t=t+passo;

drawnow;

end

fclose(s);

可以试一下把println(x,y);改成:

print("("); print(x); print(","); print(y); println(")");

把数组拆分输出

可以引用MsTimer2这个库。

通过

MsTimer2::set(60000, readvalue); // 1x60x1000ms period

MsTimer2::start();

其中60000是60秒即一分钟。

readvalue是个函数,

void readvalue()

{

在此函数里读取你的水流的数值,并做一些处理等。

}

跑步或快走时无法测心率脉搏。 切实可行的方法是运动结束立即把脉,数15秒钟的脉搏乘以4,就是1分钟心率。但从停止运动到计数脉搏,无论如何熟练,至少需要十几秒钟。这时数出的心率已小于运动时的数值。所以应再加澍量时心率的10%。

以下是程序:/ 本例程演示从手机蓝牙串口接收指令,点亮或熄灭11脚的LED,或者调整亮度。 接收指令格式:“101X”点亮,“102X"熄灭,”000X"调整亮度。(000为0-100的整数,表示亮度值,X是结束符。) 串口是异步接收的,

以上就是关于如何使用matlab读取Arduino串口不同的数据并作图全部的内容,包括:如何使用matlab读取Arduino串口不同的数据并作图、arduino如何输出一个数组如位置坐标(x,y).不是赋值而是输出。、arduino如何编程读取每分钟水流变化等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9663972.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-30
下一篇 2023-04-30

发表评论

登录后才能评论

评论列表(0条)

保存