Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- %Captura de datos mediante MATLAB
- %borrar previos
- delete(instrfind({'Port'},{'COM4'})); %ajustar puerto serie!
- %crear objeto serie
- s = serial('COM4','BaudRate',9600,'Terminator','CR/LF');
- warning('off','MATLAB:serial:fscanf:unsuccessfulRead');
- %abrir puerto
- fopen(s);
- % parámetros de medidas
- tmax = 10; % tiempo de captura en s
- rate = 33; % resultado experimental (comprobar)
- % preparar la figura
- f = figure('Name','Captura');
- a = axes('XLim',[0 tmax],'YLim',[0 5.1]);
- l1 = line(nan,nan,'Color','r','LineWidth',2);
- l2 = line(nan,nan,'Color','b','LineWidth',2);
- xlabel('Tiempo (s)')
- ylabel('Voltaje (V)')
- title('Captura de voltaje en tiempo real con Arduino')
- grid on
- hold on
- % inicializar
- v1 = zeros(1,tmax*rate);
- v2 = zeros(1,tmax*rate);
- i = 1;
- t = 0;
- % ejecutar bucle cronometrado
- tic
- while t<tmax
- t = toc;
- % leer del puerto serie
- a = fscanf(s,'%d,%d')';
- v1(i)=a(1)*5/1024;
- v2(i)=a(2)*5/1024;
- % dibujar en la figura
- x = linspace(0,i/rate,i);
- set(l1,'YData',v1(1:i),'XData',x);
- set(l2,'YData',v2(1:i),'XData',x);
- drawnow
- % seguir
- i = i+1;
- end
- % resultado del cronometro
- clc;
- fprintf('%g s de captura a %g cap/s \n',t,i/t);
- %savefigure('captura_multi','s',[4.5 3],'po','-dpdf')
- %% Limpiar la escena del crimen
- fclose(s);
- delete(s);
- clear s;
Add Comment
Please, Sign In to add comment