Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

Using Matlab for getting data from serial port to do digital filtering

Status
Not open for further replies.

RonaldCUHK

Newbie level 3
Joined
Apr 7, 2012
Messages
3
Helped
0
Reputation
0
Reaction score
0
Trophy points
1,281
Activity points
1,326
I use the code below but seems it doese not work and prompt some errors.
Could any one suggest me how to change the codes?
Thanks.


%%Clear all variables

clear all;
%%Variables (Edit yourself)

SerialPort='com6'; %serial port
MaxDeviation = 3;%Maximum Allowable Change from one value to next
TimeInterval=0.2;%time interval between each input.
loop=120;%count values
%%Set up the serial port object

s = serial(SerialPort)
fopen(s);
time =now;
voltage = 0;
%% Set up the figure
figureHandle = figure('NumberTitle','off',...
'Name','Voltage Characteristics',...
'Color',[0 0 0],'Visible','off');

% Set axes
axesHandle = axes('Parent',figureHandle,...
'YGrid','on',...
'YColor',[0.9725 0.9725 0.9725],...
'XGrid','on',...
'XColor',[0.9725 0.9725 0.9725],...
'Color',[0 0 0]);

hold on;
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
subplot(2,1,1);
plotHandle1 = plot(axesHandle,time,HeartData ,'Marker','.','LineWidth',1,'Color',[0 1 0]);
xlim(axesHandle,[min(time) max(time+0.001)]);
% Create xlabel
xlabel('Time','FontWeight','bold','FontSize',14,'Color',[1 1 0]);
% Create ylabel
ylabel('Voltage in V','FontWeight','bold','FontSize',14,'Color',[1 1 0]);
% Create title
title('Heart Rate','FontSize',15,'Color',[1 1 0]);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
subplot(2,1,2);
plotHandle1 = plot(axesHandle,time,RespirationData,'Marker','.','LineWidth',1,'Color',[0 1 0]);
xlim(axesHandle,[min(time) max(time+0.001)]);
% Create xlabel
xlabel('Time','FontWeight','bold','FontSize',14,'Color',[1 1 0]);
% Create ylabel
ylabel('Voltage in V','FontWeight','bold','FontSize',14,'Color',[1 1 0]);
% Create title
title('Respiration rate','FontSize',15,'Color',[1 1 0]);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


%% Initializing variables

HeartData (1) = 0;
RespirationData (1) = 0;
time(1)=0;
count = 2;
k=1;
while ~isequal(count,loop)

%%Re creating Serial port before timeout

k=k+1;
if k==25
fclose(s);
delete(s);
clear s;
s = serial('com6');
fopen(s)
k=0;
end
%%Serial data accessing
data = fscanf(s);
DecData = hex2dec(data);
D = DecData;
L= LowPass;
B = BandPass;
HeartData (count) = conv(D,P);
RespirationData (count) = conv(D,L);
time(count) = count;
set(plotHandle1,'YData',HeartData,'XData',time);
set(figureHandle,'Visible','on');
datetick('x','mm/DD HH:MM');

set(plotHandle2,'YData',RespirationData,'XData',time);
set(figureHandle,'Visible','on');
datetick('x','mm/DD HH:MM');

pause(TimeInterval);
count = count +1;
end



%% Clean up the serial port
fclose(s);
delete(s);
clear s;
 

Status
Not open for further replies.

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top