Grafica en tiempo real
Publicado por denis (18 intervenciones) el 11/11/2015 10:18:56
Hola muy buenas me estaba preguntando si alguien me podria ayudar a hacer una grafica en tiempo real, os cuento estoy usando matlab para la aduisicion de datos a traves de arduino por puerto serial, puedo adquirir los datos e incluso graficarlos el problema es que lo quiero hacer en funcion del tiempo y no en funcion de las muestras. Aqui os dejo el codigo, gracias de antemano.
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
%AQUI INICIALIZO EL PUERTO SERIAL
delete(instrfind({'Port'},{'COM3'}));
s=serial('COM3');
s.BaudRate=9600;
%CREO LA VARIABLE MUESTRAS 'muestras' Y CONTADOR 'i'
muestras=10;
i=1;
temperatura=[];
humedad=[];
tic;
for i=1:muestras
%ABRO EL PUERTO SERIAL
fopen(s)
%IMPRIMO EN EL COMMAND WINDOW
fprintf(s, 'datos')
%VARIABLE PARA LA ENTRADA DE DATOS DE ARDUINO
salida = fscanf(s)
%PASO A VALORES EN BASE 10 Y GRAFICA DE LOS DATOS, COGER LOS 4
%PRIMEROS DIGITOS QUE SON LOS DE LA TEMPERATURA
temperatura(i)=str2double (salida(1:4))/100;
subplot(211);
plot(temperatura,'g');
axis([0,i,0,50]);
title('temperatura vs tiempo');
xlabel('tiempo');
ylabel('temperatura');
grid
fclose(s)
i=i+1;
drawnow;
end
delete(s)
clear s
time=toc;
Valora esta pregunta
0