Está en la página 1de 2

function varargout = Interfaz(varargin)

gui_Singleton = 1;
gui_State = struct('gui_Name', mfilename, ...
'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn', @Interfaz_OpeningFcn, ...
'gui_OutputFcn', @Interfaz_OutputFcn, ...
'gui_LayoutFcn', [] , ...
'gui_Callback', []);
if nargin && ischar(varargin{1})
gui_State.gui_Callback = str2func(varargin{1});
end

if nargout
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
gui_mainfcn(gui_State, varargin{:});
end

% --- FUNCI�N PRINCIPAL.


function Interfaz_OpeningFcn(hObject, eventdata, handles, varargin)
cla %Limpia las graficas
clc %Limpia la ventana de comandos
%VARIABLES GLOBALES PARA LA COMUNICACI�N
global PIC

handles.output = hObject;
guidata(hObject, handles);

function varargout = Interfaz_OutputFcn(hObject, eventdata, handles)


varargout{1} = handles.output;

% ---------------------------------------------------------------------

% --- BOT�N CONECTAR


function pushbutton1_Callback(hObject, eventdata, handles)
global PIC
delete(instrfind({'Port'},{'COM8'})); %Insertar COM asignado por la PC
PIC = serial('COM8');

%Caracteristicas de la comunicaci�n
set(PIC,'BaudRate','1000000');
set(PIC,'DataBits',8);
set(PIC,'Parity','none');
set(PIC,'StopBits',1);
set(PIC,'FlowControl','none');

set(PIC,'OutputBufferSize',1); %Tama�o de buffer de salida


set(PIC,'InputBufferSize',4); %Tama�o de buffer de entrada

fopen(PIC); %Inicia la comunicaci�n


flushinput(PIC); %Limpia los datos del buffer de entrada

% --- BOT�N DESCONECTAR


function pushbutton3_Callback(hObject, eventdata, handles)
global PIC
fclose(PIC); %Cierra el puerto
delete(PIC); %Borra las caracteristicas del puerto
clear PIC; %Limpia los datos de la variable

% --- BOT�N GRAFICAR


function pushbutton2_Callback(hObject, eventdata, handles)
global PIC
cla %Limpia las graficas
clc %Limpia la ventana de comandos
k=1;

Frecuencia=str2doubleget(handles.edit1,'String'); %str2double convierte el texto


a n�meros
Muestras=str2doubleget(handles.edit2,'String');
Tiempo=1/Frecuencia;
Resolucion=Tiempo/100;

fwrite(PIC, 'I'); %Manda una I para que el micro empiece a tomar datos

pause(Tiempo)

%SE�AL REAL
while(k<=100)
x(k,1) = ((k-1)*Resolucion); %Vector con el tiempo
fwrite(PIC,'O'); %Manda una O al micro para recibir un
dato
y(k,1)=fscan(PIC,'%f',4); %Vector con el voltaje
flushinput(PIC); %Limpiar el buffer
k=k+1; %Aumentar k
pause(0.1)

end

plot(x,y,'b','LineWidth',2); %Grafica los valores de "x" y "y"


grind on
hold on
%axis([X0 X1 Y0 Amplitud])
axis([0 Tiempo 0 5]);

Intereses relacionados