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.
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:
¿Alguien sabe por qué?
Gracias a todos.
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));
Gracias a todos.
Valora esta pregunta


0