2016-11-25 1 views
0

J'essaie d'envoyer des données de Matlab à Arduino. C'est une matrice de [1 par 2]. Mon plan est de convertir ces deux nombres en une chaîne et envoyer à l'Arduino. Cependant, dans le moniteur série, je ne peux lire aucune valeur provenant de matlab.Matlab arduino communication série

Ceci est mon code 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 = []; 

Et ceci est l'événement de série 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; 
    }}} 

Dois-je changer quoi que ce soit dans mon code Matlab/arduino. Toute astuce utile est grandement appréciée.

Nous vous remercions à l'avance

Répondre

0

Juste un conseil, nous espérons qu'il vous renvoie à la réponse. Je voudrais utiliser un programme de terminal comme putty ou teraterm pour isoler la cause de votre erreur.

Exécutez putty/teraterm pour envoyer certaines chaînes à votre port série de votre arduino et vérifiez si les chaînes attendues sont renvoyées.

http://www.putty.org/ https://ttssh2.osdn.jp/index.html.en

Aussi, pensez à utiliser la ReadStringUntil Arduino. https://www.arduino.cc/en/Serial/ReadStringUntil

Espérons que ça aide.