Cómo leer datos de Arduino con Matlab a través del puerto USB

Hola, en esta entrada voy a explicar como leer en Matlab los datos recibidos con el módulo para Arduino a través del puerto USB.

Para leer los datos en Matlab basta con cargar el programa de la entrada anterior (Sensor de ultasonidos para Arduino) en nuestra placa Arduino y ejecutar el descrito a continuación con Matlab:

%Borrar conexiones previas
delete(instrfind({'Port'},{'/dev/tty.usbmodem621'}));
%Crear una conexion serie
s = serial('/dev/tty.usbmodem621','BaudRate',9600,'Terminator','CR/LF');
warning('off','MATLAB:serial:fscanf:unsuccessfulRead');
%Abrir el puerto
fopen(s);
%Inicializar las variables
Nvalores=100; %Cantidad de valores que queremos a leer
m1=zeros(1,Nvalores);
i=1;
k=0;
 
while k<Nvalores
%Leer el puerto serie
a = fscanf(s,'%f.%f')';
m1(i)=a(1);
%Dibujar la figura
figure(1);
plot(m1);
%Incrementar el contador
i=i+1;
k=k+1;
end

 

En mi caso el puerto que estoy leyendo es el /dev/tty.usbmodem621 (S.O. Mac) en Windows el puerto tendrá que tener un nombre parecido a COM4, hay que sustituir en el programa el puerto que estemos usando en cada caso. Para ver en que puerto tenemos conectada nuestra placa Arduino podemos abrir el programa de programación Arduino y clicar en Herramientas/Puerto Serial/ . Las funciones que permiten establecer la comunicación serie en la placa Arduino son las siguientes:

//Configura la transmisión por el puerto serie
void setup(){
Serial.begin(9600);
}
//Imprime por el puerto serie la variable entre parentesis y
//salta a la línea siguiente
void loop(){
Serial.println();
}

6 pensamientos en “Cómo leer datos de Arduino con Matlab a través del puerto USB

  1. Daniel

    Hola como estas quisiera k me ayudes con una adquision de datos de un sensor dallas 18b20 porfa k no se ocmo hacerlo en matlab

  2. Chris Amaya

    Se me olvidaba, la comunicación entre Matlab y Arduino es por medio del puerto serial virtual.

  3. Chris Amaya

    Hola, tengo un proyecto en el cual necesito enviar datos de Matlab a Arduino, aparentemente manda el dato, pero no se como leerlo en Arduino, me podrías guiar y ayudarme en eso. Gracias!

  4. Antonio

    Hola,

    el tutorial que muestras me parece muy bueno y sencillo para la gente (como yo) que está comenzando. Te quería preguntar que versión de Matlab utilizas, porque yo utilizo la versión R2008b y el comando “serial” me da un error porque dice que no es soportado por el S.O. de Mac.

    Muchas gracias,
    un saludo.

    Antonio Jesús

    1. javiersb Autor

      Hola, creo que en su momento utilice la versión 2011 de Matlab, también para Mac y no recuerdo haber tenido problemas para usar la comunicación serie pero no puedo asegurartelo porque ahora no lo tengo instalado.

      Un saludo.

Los comentarios están cerrados.