Arduino 與matlab串口通訊


有的時候我們自己給Arduino編好了程序,又希望在Matlab中調用串口,讀取數據。此時 Matlab Support Package for Arduino顯然不合適了。這里我們要用到Matlab里的串口對象serial。比如當我們需要利用Matlab處理攝像頭畫面,結合攝像頭標定、攝像頭識別、3D掃描后建模等等。
還是以part1里面的簡易示波器為例。
Arduino代碼如下:

int analogPin = 5;
int val = 0;

void setup()
{
Serial.begin(9600);
}

void loop()
{
val = analogRead(analogPin);
Serial.println(val);
}
1
2
3
4
5
6
7
8
9
10
11
12
13
這里還是要實現Matlab的即時讀取和畫圖。Matlab代碼如下:

s = serial('COM3'); %定義串口對象
set(s,'BaudRate',9600); %設置波特率s
fopen(s); %打開串口對象s

interval = 10000; %這里開始的代碼很Part1里的代碼類似
passo = 1;
t = 1;
x = 0;
while(t<interval)
b = str2num(fgetl(s)); %用函數fget(s)從緩沖區讀取串口數據,當出現終止符(換行符)停止。
x = [x,b]; %所以在Arduino程序里要使用Serial.println(http://www.amjmh.com/v/)
plot(x);
grid
t = t+passo;
drawnow;
end
fclose(s); %關閉串口對象s
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
其他關於串口對象serial的函數之后更新
--------------------- 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM