2016-11-25 129 views
0

我想将一些数据从Matlab发送到arduino。它是[1乘2]的矩阵。我的计划是将这两个数字转换为一个字符串并发送给arduino。但是在串行监视器中,我无法读取来自matlab的任何值。Matlab arduino串行通信

这是我的MATLAB代码,

val_a = matt(n,:); 
       A = [val_a]; 

       asd = A(1:1); 
       asb = A(:,2); 
       strA = num2str(asd); 
       strB = num2str(asb); 
       comma = ','; 
       endVal = '#'; 
       theString = strcat(strA,comma,endVal); 

       obj1 = instrfind('Type', 'serial', 'Port', 'COM19', 'Tag', ''); 

       if isempty(obj1) 
        obj1 = serial('COM19'); 
       else 
        fclose(obj1); 
        obj1 = obj1(1); 
       end 

       fopen(obj1); 
       fprintf(obj1,theString) 

       fclose(obj1); 
       delete(obj1); 
       A = []; 

这是Arduino的

bool gotalfa = false; 
bool event = false; 
void serialEvent() { 
while (Serial.available()) 
{ 
    char inChar = (char)Serial.read(); 
    event = true; 
    if (inChar == , && !gotalfa) 
    { 
    alfa = inputString; 
    inputString = ""; 
    gotalfa = true; 
    event = false; 
    } 
    if (inChar == '#' && gotalfa) 
    { 
    theta = inputString; 
    gotalfa = false; 
    inputString = ""; 

    Serial.print("alfa "); 
    Serial.print(alfa); 
    Serial.print("theta "); 
    Serial.println(theta); 

    //some program.... 
    event = false; 
    } 
    if(event) 
    { 
    inputString += inChar; 
    }}} 

我必须在我的MATLAB/Arduino的代码改变什么的序列事件。任何有用的提示,不胜感激。

预先感谢您

回答