2016-07-18 2 views
0

e 'au terminal Arduino.Matlab -> Arduino Serial commnication

Le code Arduino est:

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

void loop() 
    { 
     if (Serial.available()) 
     { 
      Serial.write(Serial.read()); 
     } 
} 

Et le code Matlab est:

data=5 
PS=serial('COM11','BaudRate',9600); 

fopen(PS); 

fwrite(PS,data) 

fclose(PS); 
delete(PS); 
clear PS; 
+0

avez-vous essayé d'utiliser [ 'fprintf'] (http://de.mathworks.com/help/matlab/ref/serial.fprintf.html) au lieu ? Votre '5' ne sera pas envoyé en tant que chaîne, mais en tant que données binaires, voir [' fwrite'] (http://de.mathworks.com/help/matlab/ref/serial.fwrite.html). Je pense que Arduino travaille sur des cordes, n'est-ce pas? 'fwrite' vous permet de définir une '' précision '' cela peut aussi aider si vous l'utilisez comme binaire dans le code Arduino. –

Répondre

0
 Serial.write(Serial.read()); 

ce renvoie exactement ce que vous recevez, il est donc pas vraiment utile découvrez ce que vous avez reçu.

  • Avez-vous la possibilité de l'envoyer ailleurs?
    Série 1, Softserial, lcd?
  • Serial.read() retourne un entier, donc vous pouvez utiliser Serial.println (Serial.read())
    pour voir le code de ce que tu as
  • ... et le nombre d'octets que vous avez reçu
  • envoi/reveiving texte au lieu de binaire rend parfois la vie plus facile