Go Down

Topic: comunicar matlab con arduino (Read 3166 times) previous topic - next topic

ajcm

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);      
 
 }
}

ASTROCAR

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

Igor R

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..... ;) )


:D

Go Up