Pages: [1]   Go Down
Author Topic: comunicar matlab con arduino  (Read 2995 times)
0 Members and 1 Guest are viewing this topic.
0
Offline Offline
Newbie
*
Karma: 0
Posts: 19
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

hola foreros, estoy tratando por ahora de enviar un dato desde matlab hacia arduino.... lo que estoy tratando de hacer es enviar
el caracter s y luego leerlo con arduino y que encienda un led indicando que ha recibido el dato, el
problema es que no consigo esto, y no se donde puedo tener el problema, les dejo los codigos
 en matlab
clc;
clear all;
clc; disp('BEGIN')
SerAr = serial('COM3')
set(SerAr,'BaudRate',9600);
set(SerAr,'DataBits',8);
set(SerAr,'Parity','none');
set(SerAr,'StopBits',1);
set(SerAr,'FlowControl','none');
fopen(SerAr)

fprintf(SerAr,'%s','s')            %Envia caracter S
pause(0.2);
fclose(SerAr);
delete(SerAr)
clear SerAr
disp('STOP')      

El siguiente codigo en rojo es lo que me arroja en el command window
BEGIN

   Serial Port Object : Serial-COM3

   Communication Settings
      Port:               COM3
      BaudRate:           9600
      Terminator:         'LF'

   Communication State
      Status:             closed
      RecordStatus:       off

   Read/Write State  
      TransferStatus:     idle
      BytesAvailable:     0
      ValuesReceived:     0
      ValuesSent:         0



Finalmente el codigo para Arduino
int ledPin=13;
int DATO = 0;
void setup() {
 Serial.begin(9600);
 pinMode(ledPin, OUTPUT);      //configura el pin del LED como salida
 
}

void loop() {
  if (Serial.available() > 0) {
     DATO = Serial.read(); // lee el byte de entrada:
  // muestra lo que tiene:
     Serial.print("He recibido: ");
     Serial.println(DATO, BYTE);

  }
  if (DATO == 's'){
   digitalWrite(ledPin, HIGH);   // enciende el LED
   delay(500);                  // espera por un segundo
   digitalWrite(ledPin, LOW);    // apaga el LED
   delay(500);      
  
  }
}
Logged

Venezuela
Offline Offline
Full Member
***
Karma: 0
Posts: 124
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hola , oye te comento algo fuera de lugar que veo en lo del codigo para el arduino dices que te vas a comunicar con el matlab, pero veo que desde el matlab solo envias el valor s y luego desde el arduno enviar ese valor via serial lo que no entiendo es con que puerto del arduino estas usando un arduino mega o que?.

Saludos.
Atten.
Alexander Santana.
Venezuela-Barcelona
Logged

0
Offline Offline
Edison Member
*
Karma: 16
Posts: 1579
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Hola,

Igual este ejemplo te puede ayudar:
http://robotgrrl.com/blog/2010/01/15/arduino-to-matlab-read-in-sensor-data/

Por cierto, estas seguro que tu Arduino esta en el COM3? Es el puerto que tienes seleccionado cuando programas tu Arduino?  (ya se que parece obvio, pero a veces..... smiley-wink )


 smiley-grin
Logged


Pages: [1]   Go Up
Jump to: