自己编好Arduino的程序,需要在MATLAB中调用串口,读取数据,我们就需要用到MATLAB中的串口对象serial。
比如读取传感器的值来绘图、处理摄像头等等。
简单的读取传感器的电压值
Arduino程序
int analogPin = 5;
int val = 0;
void setup()
{
Serial.begin(9600);
}
void loop()
{
val = analogRead(analogPin);
Serial.println(val);
}
MATLAB程序
s = serial('COM3'); %定义串口对象
set(s,'BaudRate',9600); %设置波特率s
fopen(s); %打开串口对象s
interval = 10000;
passo = 1;
t = 1;
x = 0;
while(t<interval)
b = str2num(fgetl(s)); %用函数fget(s)从缓冲区读取串口数据,当出现终止符(换行符)停止。
x = [x,b]; %所以在Arduino程序里要使用Serial.println()
plot(x);
grid
t = t+passo;
drawnow;
end
fclose(s);
这样可以实现MATLAB读取串口数值并作图
附做项目时的一个压力传感器实时变化图