Matlab - Error al guardar array puerto serie

 
Vista:
sin imagen de perfil
Val: 4
Ha aumentado su posición en 4 puestos en Matlab (en relación al último mes)
Gráfica de Matlab

Error al guardar array puerto serie

Publicado por Oscar (3 intervenciones) el 07/10/2018 16:55:56
Buenas a todos, tengo una conexión puerto-serie entre Matlab y Arduino y en lo que se basa mi interfaz es que Matlab envía un 1 cuando quiere recibir datos y entonces arduino le pasa un dato por puerto serie y Matlab lo almacena en un array.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
close all;
y=zeros(1,900); %creo un vector columna de 500 columnas que va a almacenar en cada una de ella el valor de tensión correspondiente al ángulo
Va=zeros(1,300);
Vb=zeros(1,300);
Vc=zeros(1,300);
%Inicializo puerto serie
delete(instrfind({'Port'},{'COM6'}));
puerto_serie=serial('COM6');
puerto_serie.BaudRate=9600;
warning('off', 'MATLAB:serial:fscanf:unsuccessfulRead');
 
%Abro puerto serie
fopen(puerto_serie);
 
%Ahora voy a ver qué valor es Vmin y qué valor es Vmax
muestras=1;
while muestras<10
    fwrite(puerto_serie,1,'uint8');
    valor_servo=fscanf(puerto_serie, '%f');
    disp(valor_servo)
    y(muestras)=(valor_servo(1));
    muestras=muestras+1;
end
 
 
muestras=1;
for i=2: 3: 898
   Va(muestras)= y(i);
   Vb(muestras)=y(i+1);
   Vc(muestras)=y(i+2);
   muestras=muestras+1;
end
%Me aseguro de que envía lo que tenga en el buffer esperando
%flushoutput(arduino);
%Cierro la conexión con el puerto serie y elimino variables 
fclose(puerto_serie);
delete(puerto_serie);
%clear all;

El sketch funciona correctamente pero en cuanto añado la línea de fwrite para que matlab envíe el 1 me aparece el siguiente error:
1
2
3
4
Index exceeds matrix dimensions.
 
Error in Leer_array (line 25)
    y(muestras)=(valor_servo(1));
¿Alguien sabe por qué?
Gracias a todos.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 4
Ha aumentado su posición en 4 puestos en Matlab (en relación al último mes)
Gráfica de Matlab

Error al guardar array puerto serie

Publicado por Oscar (3 intervenciones) el 07/10/2018 17:29:11
Se que el error está al asignar el valor de valor_servo(1) a y(i) pero no se por qué.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de JOSE JEREMIAS CABALLERO
Val: 6.975
Oro
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

Error al guardar array puerto serie

Publicado por JOSE JEREMIAS CABALLERO (5917 intervenciones) el 07/10/2018 19:30:36
1
2
3
4
5
6
7
8
9
10
>> Matlab_Arduino
 
valor_servo =
 
     []
 
Index exceeds matrix dimensions.
 
Error in Matlab_Arduino (line 21)
    y(muestras)=(valor_servo(1));


la variable valor_servo esta vacío y eso ocasiona ese mensaje y el error.

Saludos
JOSE JEREMIAS CABALLERO
Asesor de Proyectos con Matlab
Asesoría online Matlab
Servicios de programación matlab


http://matlabcaballero.blogspot.com
https://www.facebook.com/matlabcaballero
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar