用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如何编程读取每分钟水流变化等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)