Matlab - Estoy leyendo el puerto serial para poder graficar los valore de un LM35

 
Vista:

Estoy leyendo el puerto serial para poder graficar los valore de un LM35

Publicado por Victoria Castro (2 intervenciones) el 17/09/2018 16:10:04
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
39
40
41
42
function Matlab_Arduino(numero_muestras)
 
 
delete(instrfind({'Port'},{'COM7'}));
puerto_serial=serial('COM7');
puerto_serial.Baudrate=9600;
warning('off','MATLAB:serial:fscanf:unsuccessfulRead');
 
fopen(puerto_serial);
 
scrsz= get (0, 'ScreenSize');
scr1=scrsz(3)/4;
scr2=scrsz(4)/4;
 
fig=figure('Position',[scr1 scr2 2*scr1 2*scr2],'Name','Termometro');
hax=axes('Units','pixels');
 
v=1;
 
for i=1:250
    cla
    a(i)=fscanf(puerto_serial,'%f,%f');    [b](ME MARCA EL ERROR EN ESTA LINEA) (Subcripted assignment dimension mismatch)
 
    rectangle('Position',[0,-3,3,a(i)],'FaceColor','y')
    daspect([1,1,1])
    xlim([0,3])
    ylim([-5,100])
 
    pause(0.01)
end
 
figure
plot(a, 'g');
xlim([0,i])
ylim([10,40])
xlabel('Muestras');
ylabel('Temperatura (C)');
 
fclose(puerto_serial);
delete(puerto_serial);
clear all;
end
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
Imágen de perfil de firius
Val: 45
Ha disminuido su posición en 11 puestos en Matlab (en relación al último mes)
Gráfica de Matlab

Estoy leyendo el puerto serial para poder graficar los valore de un LM35

Publicado por firius (26 intervenciones) el 17/09/2018 16:50:41
Hola, recuerda usar las herramientas del foro para poner codigo para que no se vea como texto plano.

En la siguiente linea:
1
a(i)=fscanf(puerto_serial,'%f,%f'); [b](ME MARCA EL ERROR EN ESTA LINEA) (Subcripted assignment dimension mismatch)

creo que el error es que intentas leer un vector de 2 posiciones y guardarlo en la posición de un vector lo cual no tiene sentido, algo que creo que si funcionaria sería:

1
[a(i) b(i)]=fscanf(puerto_serial,'%f,%f'); [b](ME MARCA EL ERROR EN ESTA LINEA) (Subcripted assignment dimension mismatch)

no se que sea lo de la primera y que lo de la segunda posición para ajustar tus gráfica posteriores.

o si lo que intentas leer solo es un dato pues seria necesario modificar el argumento de la funcion fscanf

1
a(i)=fscanf(puerto_serial,'%f'); [b](ME MARCA EL ERROR EN ESTA LINEA) (Subcripted assignment dimension mismatch)
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

Estoy leyendo el puerto serial para poder graficar los valore de un LM35

Publicado por Fernanda (2 intervenciones) el 17/09/2018 17:25:43
Aun que modifique esos datos me marca el error
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: 7.906
Oro
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

Estoy leyendo el puerto serial para poder graficar los valore de un LM35

Publicado por JOSE JEREMIAS CABALLERO (5509 intervenciones) el 17/09/2018 17:33:41
1
2
a=fscanf(puerto_serial,'%f')
rectangle('Position',[0,-3,3,a],'FaceColor','y')

fijar si 'a' es un valor numérico
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