如何在MATLab程序中显示Arduino串行监视器内显示的内容?从Arduino我们可以使用 serial.println 和 serial.print 通过串行监视器显示输出。但是如何从MATLAB里面的arduino中显示 serial.println 和 serial.print ?如果在Qt编程中,任何东西都可以在QDebug中显示,但我真的不知道它是如何用于MATLab。
也许只是一个简单的 serial.println('1')来显示串口监视器中的字符'1'。那么,我们如何编程MATLAB来读取/检测'1'并做一些事情,比如......创建一个简单的文本文件?
有人可以教我吗?
感谢。
答案 0 :(得分:0)
首先,我们将关闭最终开放的端口:
%% Port reset:
delete(instrfindall);
然后你必须打开与arduino的通信(检查你的arduino IDE以了解选择了哪个端口)。同时选择正确的BaudRate。
%% Serial open
arduino=serial('COM4','BaudRate',9600);
然后你就可以开始阅读arduino输出了。假设我们想要读取10个第一输出。 (所以10第一个serial.printxx)
%% Start to read arduino's values and write the result in results.txt
fopen(arduino)
fid = fopen('results.txt','wt');
for i=1:10
y = fscanf(arduino,'%s');
fprintf(fid,'my arduino output is %s\n',y)
end
fclose(fid);
fclose(arduino);
Matlab会将arduino值读作字符串,我让你把这个字符串转换成你需要的东西。
重要:强>
您需要为matlab安装arduino support package
<强>建议强>
我通常使用无限循环读取输出,如果需要跳过循环,则检查每一步。
例如,如果您的arduino代码发送Serial.println('exit')
我的matlab代码如下:
while 1
y = fscanf(arduino,'%s');
if strcmp(y,'exit')
break
end
fprintf('my arduino output is %s\n',y)
end