中文字幕无码a片久久,亚洲日韩在线观看浪潮,人人超人人超碰超国产二区,国产人妻久久一区二区,国产人妻久久一区二区

福感科技有限公司 歡迎您!
聯(lián)系方式

    地址:北京市平谷區(qū)馬坊鎮(zhèn)金河北街17號(hào)院3號(hào)樓7層712

    電話:010-89968230

    網(wǎng)站:http://0743119.com

matlab 讀取串口傳感器數(shù)據(jù)

2024-11-4 12:44:11??????點(diǎn)擊:

讀取數(shù)據(jù)后,解析到相應(yīng)的蘇話劇格式用到的函數(shù):

serialport   作用:連接到串行端口     

使用方法:參考鏈接  https://ww2.mathworks.cn/help/matlab/ref/serialport.html
readline 作用:從串行端口讀取 ASCII 字符串?dāng)?shù)據(jù)行
使用方法:參考鏈接 https://ww2.mathworks.cn/help/matlab/ref/serialport.readline.html?s_tid=doc_ta
strsplit 作用:在指定分隔符處拆分字符串或字符向量
使用方法: 參考鏈接 https://ww2.mathworks.cn/help/matlab/ref/strsplit.html?searchHighlight=strsplit&s_tid=srchtitle_strsplit_1
str2double 作用:將字符串轉(zhuǎn)換為雙精度值

使用方法: 參考鏈接 https://ww2.mathworks.cn/help/matlab/ref/str2double.html?s_tid=doc_ta 

范例代碼:


% ======注意:本程序需要在arduino端代碼使用Serial.print(),并以逗號(hào)分隔========
% ======例如,arduino端將x,y兩個(gè)數(shù)據(jù)傳輸?shù)紺OM3口,arduino端代碼為
% ============Serial.print(x);Serial.print(",");
% ============Serial.print(y);
% ============Serial.print("\n");

clear;clc;clf

% 自定義參數(shù)
N=3000;                          % 總數(shù)據(jù)量長度
n1=100;                          % *近數(shù)據(jù)量長度

% 讀取串口字符串,并轉(zhuǎn)化為數(shù)據(jù)
arduinoObj=serialport("COM3",9600);      % 串口通信COM3,波特率9600(可根據(jù)實(shí)際情況修改)
data = readline(arduinoObj);            % 讀取 ASCII 字符串?dāng)?shù)據(jù)行
n=length(strsplit(data,','));           % 在逗號(hào)分隔符處拆分字符串,并得到拆分后的長度

% 初始化用來存儲(chǔ)數(shù)據(jù)的矩陣
B=zeros(N,n,'double');                 % 初始化矩陣B,用來存儲(chǔ)總數(shù)據(jù)。
A=zeros(n1,n,'double');                % 初始化矩陣A,用來存放*近100組數(shù)據(jù)
t=zeros(n1,1,'double');                % 初始化數(shù)組t,用來存放*近的100個(gè)時(shí)間數(shù)

% 更新畫圖
for kk=1:N                                 % 總共存N行數(shù)據(jù)
    str = readline(arduinoObj);            % 從串口讀取字符串
    data=str2double(strsplit(str,','));    % 在逗號(hào)分隔符處拆分字符串,并將除逗號(hào)外的字符串轉(zhuǎn)化為double數(shù)據(jù)

    B(kk,:)=data;                          % 把所有數(shù)據(jù)存儲(chǔ)到B矩陣
    figure(n+1)
    plot(1:kk,B(1:kk,2));                    % 畫出B的第二列數(shù)據(jù)(可根據(jù)實(shí)際情況修改)

% 如果需要畫*新的n個(gè)數(shù)據(jù),則啟用以下代碼,否則可注釋掉
%     A=circshift(A,-1);                     % 把A矩陣向下循環(huán)平移
%     A(end,:)=data;                         % 把A矩陣*后一行數(shù)替換為data。以上兩行的作用是保證A矩陣的數(shù)據(jù)為*新的100組數(shù)據(jù)
%     t=circshift(t,-1);
%     t(end)=kk;
%     for ii=n:-1:1
%         figure(ii)
%         plot(t,A(:,ii));
%     end
end

delete(arduinoObj);                    % 刪除端口,以便能在arduino中修改

Copyright 2019 0743119.com

福感科技有限公司 版權(quán)所有 All Rights Reserved

京ICP備20002031號(hào)

010-89968230