Você está na página 1de 27

INSTITUTO TECNOLOGICO DE CHIHUAHUA

Reporte de Proyecto

Tarjeta de Adquisicin de Datos Orientada a Aplicaciones Didcticas

SISTEMAS DE ADQUISICIN DE DATOS

DESARROLLADO POR:
JORGE ABRAHAM GARCA RUELAS

06061021

OBJETIVO
Disear una tarjeta de adquisicin de datos de bajo costo y accesible para el mejor
aprendizaje del estudiante de la especialidad de electrnica.

INTRODUCCION
La tarjeta DAQ son tarjetas insertables que permiten la entrada y salida de datos
de computador a otros aparatos donde se conectan sensores y actuadores para
interactuar con el mundo real. Los datos que entran y salen pueden ser seales
digitales o anlogas simplemente conteos de ocurrencias digitales tanto de
entrada como de salida.
Las tarjetas se comportan como si fueran un puerto ms en el computador, y
poseen todo un protocolo y sistema de manejo, por lo que entender cada tarjeta,
como es su funcionamiento, al igual que otro instrumento o cualquier instrumento
requiere de tiempo y cuidado.
Existen tarjetas de alto y de bajo desempeo. Las de alto desempeo son
programables y facilitan el manejo de informacin, pues son en cierta forma
inteligentes y suficientes, y por tanto no comprometen la velocidad y el rendimiento
del computador. Las tarjetas de bajo desempeo requieren de un control directo
del computador, y se deben limitadas por la velocidad de este.
Las tarjetas como cualquier otro perifrico requiere de sus parmetros de
programacin, y hasta protocolos de comunicacin por lo que se requiere de un
software (Driver) que maneje lo bajo de programacin y deje en la superficie la
posibilidad de programar aplicaciones con los beneficios de dichas tarjetas de una
forma sencilla.
En la actualidad existen muchas variables analgicas que podemos leer de
manera directa a travs del sensor adecuado. En otras ocasiones, al no existir un
sensor diseado de manera explcita para determinada variable, se ocupa un
sensor para medir una variable fsica diferente, pero que se relaciona con la que
nos interesa por medio de una relacin matemtica, lo cual nos da la posibilidad
de que para cualquier proceso industrial (ah existe un nmero ilimitado de
variables), exista un sensor involucrado. El sensor lee la variable fsica y nos
entrega una seal elctrica que est dentro de un rango de valores de voltaje,
siendo ste el que tenemos que hacer llegar al ADC del microcontrolador.
Teniendo en cuenta que el ADC mide variaciones de voltaje, el sensor tiene que
adecuarse con respecto del rango mnimo y mximo que puede leer la entrada del
ADC. Para que el ADC pueda realizar una conversin del valor analgico, se le
tiene que agregar un voltaje de referencia, porque ste es el que indica
precisamente cul es el rango de operacin de la entrada del ADC. Todos los ADC
de los microcontroladores PIC aceptan, como mximo, un rango de operacin que

llega hasta 5 Volts, por lo que podemos establecer rangos de operacin de


cualquier valor de voltaje, siempre y cuando no rebasemos los 5 volt.
MARCO TEORICO
El microcontrolador usado es el PIC18F4455 del fabricante Microchip Technology
Inc., el cual presenta caractersticas muy importantes para la realizacin del
proyecto como lo son:

-Arquitectura RISC avanzada Harvard: 16- bit con 8- bit de datos.


-77 instrucciones
-Desde 18 a 80 pines
-Hasta 64K bytes de programa
-Multiplicador Hardware 8x8
-Hasta 3968 bytes de RAM y 1KBytes de EEPROM
-Frecuencia mxima de reloj 40Mhz. Hasta 10 MIPS.
-Modulo convertidor anlogo digital(A/D) de 10-bit, este modulo
tiene cinco registros:
A/D Result High Register (ADRESH)
A/D Result Low Register (ADRESL)
A/D Control Register 0 (ADCON0)
A/D Control Register 1 (ADCON1)
A/D Control Register 2 (ADCON2)

Figura 1.Microcontrolador PIC18F4455


COMUNICACION USB
Existen 2 tipos de velocidades: Full-Speed
12 Mbps y Low-Speed
Mbps
Partes del USB(Conectados por medio de un cable)
:
El Host
El dispositivo
Caractersticas del USB

Existen 2 tipos de velocidades:


Full-Speed
12 Mbps
Low-Speed

1.5 Mbps

Las dos partes del USB:


El Host
El dispositivo

1.5

(Conectados por medio de un cable)

(Rojo 1)
(Verde 3)
(Blanco 2)
(Negro 4)

El cable de bus USB es de 4 hilos, y comprende lneas de seal (datos) y


alimentacin, con lo que las funciones pueden utilizar un nico cable.
TIPO DE TERMINAL

TIPO A

Transferencia de Datos

La transferencia (o transmisin) consiste en un cierto nmero de packets que se


mueven a travs del bus entre el host y el dispositivo.
Existen 4 tipos de Transferencia:
Control
Bulk
Isocrono
Interrupcin

Control: Transferencia de configuracin y comandos.


Bulk: Gran cantidad de informacin donde el tiempo no es crtico.
Interrupcin: Poca informacin de inmediata atencin.
Iscrono: Audio o video. Acceso ilimitado al bus. No se corrigen errores.

Funcionamiento
El funcionamiento est centrado en el host, todas las transacciones se
originan en l. Es el controlador host el que decide todas las acciones, incluyendo
el nmero asignado a cada dispositivo (esta asignacin es realizada
automticamente por el controlador "host" cada vez que se inicia el sistema o se
aade, o elimina, un nuevo dispositivo en el bus), su ancho de banda,
etc. Cuando se detecta un nuevo dispositivo es el host el encargado de cargar los
drivers oportunos sin necesidad de intervencin por el usuario

Cada transaccin USB consiste de:

Token Packet.- (Paquete testigo o de comienzo): Identificador que define que se


espera hacer

Optional Data Packet. (Paquete de datos opcional): Contiene la informacin til


que necesitamos

Status Packet. (Paquete de Estatus): Usado para


transacciones y proveer seales de error

reconocer las

Sensor de Temperatura.
El sensor usado para la medicin de la temperatura es el LM35D de National
Semiconductors.
Este sensor cuenta con una precisin calibrada de 1C y un rango que abarca
desde -55C a +150C [2] .

Sensor LM35.
El encapsulado del sensor es el TO-92 con 3 pines, dos de ellos para alimentarlo
(VCC-GND) y el tercero VOUT nos entrega un valor de tensin proporcional a la
temperatura medida por el dispositivo cuya sensibilidad es de 10mV por cada
grado centgrado.
Para su correcta lectura es necesario hacer un adecuado tratamiento de la seal
por medio de una etapa de acoplamiento que sirve para amplificar la seal y
obtener mayor precisin en la lectura pudiendo leerse fracciones de grado.

DESARROLLO
El proyecto se realizo en 3 etapas.
1.- Etapa de Investigacion
2.-Etapa de Programacion
3.- Armado y pruebas

En la etapa de investigacin se buscaron los materiales ptimos que se utilizaron


para el desarrollo del proyecto as como los software de programacin necesarios.
Para la etapa de programacin de software para la computadora se utilizo el
Matlab r2009a, se descargaron los drivers de la pagina de Microchip para que el la
pc reconozca el microcontrolador, se creo y se programo una interfaz sencilla y
facil de manejar; para la programacin del microcontrolador se utilizo el compilador
CCS, especificando los canales de donde se va realizar la adquisicin de datos asi
como los canales de comunicacin USB con la PC. En esta etapa se realizo la
depuracin de errores y fue la mas larga del proyecto.
Por ultimo se realizo el armado de la prctica y pruebas, donde obtuvimos la
respuesta del sistema, su velocidad de trabajo y se verifico el almacenamiento de
los datos.

CONCLUSIONES
Se cumplieron los objetivos ya que se construyo una tarjeta de adquisicin de
datos funcional a un bajo costo, que trabaja con un protocolo de comunicacin
estndar que es el USB lo que la hace muy practica por que puede ser utilizada en
cualquier PC.
Adems de que fue diseada para adaptarse a cualquier sensor puesto que
cuenta con una interfaz sencilla que nos da la oportunidad de caracterizar la
respuesta lo que la hace sumamente funcional

ANEXOS
Diagrama elctrico de conexin

INTERFAZ DE USUARIO

DISEO FINAL DEL HARDWARE

SENSOR

Interfaz de usuario

Prueba con generador de funciones.


La medicin de la respuesta de la frecuencia del sistema se realizo sin resultados
exitosos ya que el generador no proporciono una frecuencia menor de 1 Hz siendo
requerida una de 0.8 Hz debido al teorema de Nyquist ya que la frecuencia de
muestreo es igual a 2 veces la frecuencia mxima de la onda.

Cdigo PIC18f4455
#include <18F4455.h>
#device ADC=8
ADC a 10bits

//Descomente sta opcin en caso de usar el

#fuses
HSPLL,NOWDT,NOPROTECT,NOLVP,NODEBUG,USBDIV,PLL3,CPUDIV1,VRE
GEN,MCLR,NOPBADEN
// Paso 2: Ajuste el fusible del PLL de acuerdo al Xtal que utilice
// No olvide que PLL1 = Para un Xtal de 4Mhz
//

PLL2 = Para un Xtal de 8Mhz

//

PLL3 = Para un Xtal de 12Mhz

//

PLL4 = Para un Xtal de 20Mhz , etc.

#use delay(clock=48000000)
#use rs232(baud=9600, xmit=PIN_C6, rcv=PIN_C7)

/////////////////////////////////////////////////////////////////////////////

#define USB_HID_DEVICE
directivas HID

FALSE

//deshabilitamos el uso de las

#define USB_EP1_TX_ENABLE
USB_ENABLE_BULK
EP1(EndPoint1) for IN bulk/interrupt transfers

//turn

on

#define USB_EP1_RX_ENABLE
USB_ENABLE_BULK
EP1(EndPoint1) for OUT bulk/interrupt transfers

//turn

on

#define USB_EP1_TX_SIZE
buffer

64

//size to allocate for the tx endpoint 1

#define USB_EP1_RX_SIZE
buffer

64

//size to allocate for the rx endpoint 1

#include <pic18_usb.h>
PIC USB driver

//Microchip PIC18Fxx5x Hardware layer for CCS's

#include <usb_desc_scope.h>
#include <usb.c>

//descriptors del Pic USB

//handles usb setup tokens and get descriptor reports

0xD8,0x04,

//vendor id (0x04D8 is Microchip)

0x0B,0x00,

//product id

0x01,0x00,

//device release number

#define LEDR

PIN_B6

#define LEDB

PIN_B7

#define LED_ON output_high


#define LED_OFF output_low

#BYTE TRISA = 0x0F92

// Registro de control de E/S del puerto A

#BYTE TRISB = 0x0F93

// Registro de control de E/S del puerto B

#BYTE PORTA = 0x0F80

// Registro del puerto A

#BYTE PORTB = 0x0F81

// Registro del puerto B

#BYTE ADCON0 = 0x0FC2

// Registro de control del ADC

#BYTE ADCON1 = 0x0FC1

// Registro de control del ADC

#BYTE CMCON = 0x0FB4

// Registro del modulo comparador

int8 dato[63],entrada[6];

void main(void) {

LED_ON(LEDR);
presencia de energia

//encendemos led en RB6 para indicar

LED_OFF(LEDB);

//*************** CONFIGURACIN DEL ADC **************


setup_comparator(NC_NC_NC_NC);
setup_adc_ports(AN0);
y las dems como digitales

// Se selecciona AN0 como entrada analgica

setup_adc( VREF_VREF );
la entrada anloga

// Se indica el rango de voltaje que tendr

set_adc_channel( 0 );

// Indica de que pin se har la conversion

setup_adc(ADC_TAD_MUL_16);;
reloj del ADC ADC_CLOCK_DIV_16

usb_init();

// Indica la frecuencia que se usar el

// inicializamos el USB

usb_task();

// habilita periferico usb e interrupciones

usb_wait_for_enumeration();
configurado por el host

// esperamos hasta que el PicUSB sea

LED_OFF(LEDR);
LED_ON(LEDB);
contacto con la PC

// encendemos led en RB7 al establecer

while (TRUE){
if(usb_enumerated())

// si el Pic est configurado via USB

{
if (usb_kbhit(1))

// si el endpoint de salida contiene datos del

host
{ LED_OFF(LEDB);
usb_get_packet(1, dato, 64);
del EP1 y almacenamos en dato
if (dato[0]==0){

LED_ON(LEDR);
entrada[0]= read_adc();
entrada[1]= read_adc();
entrada[2]= read_adc();

// tomamos el paquete de tamao 8bytes

entrada[3]= read_adc();
entrada[4]= read_adc();
entrada[5]=
(entrada[0]+entrada[1]+entrada[2]+entrada[3]+entrada[4])/5;
dato[1]=entrada[5];
usb_put_packet(1, dato, 64,USB_DTS_TOGGLE);
delay_ms(300);
LED_OFF(LEDR);
delay_ms(300);
}
}
}
}
}

Cdigo matlab
function varargout = Proyecto(varargin)
% PROYECTO M-file for Proyecto.fig
%
PROYECTO, by itself, creates a new PROYECTO or raises the existing
%
singleton*.
%
%
H = PROYECTO returns the handle to a new PROYECTO or the handle to
%
the existing singleton*.
%
%
PROYECTO('CALLBACK',hObject,eventData,handles,...) calls the local
%
function named CALLBACK in PROYECTO.M with the given input
arguments.
%
%
PROYECTO('Property','Value',...) creates a new PROYECTO or raises the
%
existing singleton*. Starting from the left, property value pairs are
%
applied to the GUI before Proyecto_OpeningFcn gets called. An
%
unrecognized property name or invalid value makes property application
%
stop. All inputs are passed to Proyecto_OpeningFcn via varargin.

%
%
*See GUI Options on GUIDE's Tools menu. Choose "GUI allows only one
%
instance to run (singleton)".
%
% See also: GUIDE, GUIDATA, GUIHANDLES
% Edit the above text to modify the response to help Proyecto
% Last Modified by GUIDE v2.5 14-Jun-2010 15:56:22
% Begin initialization code - DO NOT EDIT
gui_Singleton = 1;
gui_State = struct('gui_Name',
mfilename, ...
'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn', @Proyecto_OpeningFcn, ...
'gui_OutputFcn', @Proyecto_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
% End initialization code - DO NOT EDIT

% --- Executes just before Proyecto is made visible.


function Proyecto_OpeningFcn(hObject, eventdata, handles, varargin)
% This function has no output args, see OutputFcn.
% hObject handle to figure
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% varargin command line arguments to Proyecto (see VARARGIN)
% Choose default command line output for Proyecto
handles.output = hObject;
% Update handles structure
guidata(hObject, handles);
% UIWAIT makes Proyecto wait for user response (see UIRESUME)
% uiwait(handles.figure1);

% --- Outputs from this function are returned to the command line.
function varargout = Proyecto_OutputFcn(hObject, eventdata, handles)
% varargout cell array for returning output args (see VARARGOUT);
% hObject handle to figure
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Get default command line output from handles structure
varargout{1} = handles.output;

function edit1_Callback(hObject, eventdata, handles)


% hObject handle to edit1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Hints: get(hObject,'String') returns contents of edit1 as text
%
str2double(get(hObject,'String')) returns contents of edit1 as a double

% --- Executes during object creation, after setting all properties.


function edit1_CreateFcn(hObject, eventdata, handles)
% hObject handle to edit1 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles empty - handles not created until after all CreateFcns called
% Hint: edit controls usually have a white background on Windows.
%
See ISPC and COMPUTER.
if
ispc
&&
isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end

function edit2_Callback(hObject, eventdata, handles)


% hObject handle to edit2 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Hints: get(hObject,'String') returns contents of edit2 as text
%
str2double(get(hObject,'String')) returns contents of edit2 as a double

% --- Executes during object creation, after setting all properties.

function edit2_CreateFcn(hObject, eventdata, handles)


% hObject handle to edit2 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles empty - handles not created until after all CreateFcns called
% Hint: edit controls usually have a white background on Windows.
%
See ISPC and COMPUTER.
if
ispc
&&
isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end

function edit3_Callback(hObject, eventdata, handles)


% hObject handle to edit3 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Hints: get(hObject,'String') returns contents of edit3 as text
%
str2double(get(hObject,'String')) returns contents of edit3 as a double

% --- Executes during object creation, after setting all properties.


function edit3_CreateFcn(hObject, eventdata, handles)
% hObject handle to edit3 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles empty - handles not created until after all CreateFcns called
% Hint: edit controls usually have a white background on Windows.
%
See ISPC and COMPUTER.
if
ispc
&&
isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end

function edit4_Callback(hObject, eventdata, handles)


% hObject handle to edit4 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Hints: get(hObject,'String') returns contents of edit4 as text
%
str2double(get(hObject,'String')) returns contents of edit4 as a double

% --- Executes during object creation, after setting all properties.


function edit4_CreateFcn(hObject, eventdata, handles)
% hObject handle to edit4 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles empty - handles not created until after all CreateFcns called
% Hint: edit controls usually have a white background on Windows.
%
See ISPC and COMPUTER.
if
ispc
&&
isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end

function radiobutton1_Callback(hObject, eventdata, handles)


global data_in data_out vid_pid_norm out_pipe in_pipe conectado my_in_pipe
my_out_pipe
Estado = get(handles.radiobutton1,'value');
conectado = 0;
data_in = eye(1,64,'uint8');
% Se declara el vector de datos de entrada (el que
se recibe del PIC)
data_out = eye(1,64,'uint8');
% Se declara el vector de datos de salida (el que
se envia al PIC)
% TODOS LOS DATOS SE DECLARAN COMO UINT8 de lo
contrario no hay comunicacin.
vid_pid_norm = libpointer('int8Ptr',[uint8('vid_04d8&pid_000b') 0]);
out_pipe = libpointer('int8Ptr',[uint8('\MCHP_EP1') 0]);
in_pipe = libpointer('int8Ptr',[uint8('\MCHP_EP1') 0]);
loadlibrary mpusbapi _mpusbapi.h alias libreria
if Estado == 1
set(handles.radiobutton2,'enable','on');
while (conectado == 0)
[conectado] = calllib('libreria','MPUSBGetDeviceCount',vid_pid_norm);
if (conectado ==0)
selection = questdlg('La tarjeta de evaluacin no se encuentra',...
'Tarjeta no encontrada',...
'Buscar de nuevo','Cancelar','Cancelar');
switch selection,
case 'Cancelar',
set(handles.radiobutton1,'value',0);
set(handles.radiobutton2,'enable','off');
return
case 'Buscar de nuevo'

conectado = 0;
end
end
end

else
set(handles.radiobutton2,'value',0);
set(handles.radiobutton2,'enable','off')
calllib('libreria', 'MPUSBClose', my_in_pipe); % Se cierra el tunel de recepcin
calllib('libreria', 'MPUSBClose', my_out_pipe); % Se cierra el tunel de envio
unloadlibrary libreria
% Importante descargar la librera de memoria, de lo
contrario genera errores
end
% --- Executes on button press in radiobutton1.
function radiobutton2_Callback(hObject, eventdata, handles)
Enable = get(handles.radiobutton2,'Value');
vid_pid_norm = libpointer('int8Ptr',[uint8('vid_04d8&pid_000b') 0]);
out_pipe = libpointer('int8Ptr',[uint8('\MCHP_EP1') 0]);
in_pipe = libpointer('int8Ptr',[uint8('\MCHP_EP1') 0]);
[conectado] = calllib('libreria','MPUSBGetDeviceCount',vid_pid_norm);
[my_out_pipe] = calllib('libreria', 'MPUSBOpen',uint8 (0), vid_pid_norm, out_pipe,
uint8(0), uint8 (0)); % Se abre el tunel de envio
[my_in_pipe] = calllib('libreria', 'MPUSBOpen',uint8 (0), vid_pid_norm, in_pipe,
uint8 (1), uint8 (0)); % Se abre el tunel de recepcin
data_in = eye(1,64,'uint8');
% Se declara el vector de datos de entrada (el que
se recibe del PIC)
data_out = eye(1,64,'uint8');
% Se declara el vector de datos de salida (el que
se envia al PIC)
% TODOS LOS DATOS SE DECLARAN COMO UINT8
% de lo contrario no hay comunicacin.
Nombre = 'Ultimas Mediciones';
fecha = date;
datos = strcat(Nombre,'_',fecha,'.txt');
if Enable==1
arch = 0;
i = 3;
n = 0;
set(handles.radiobutton1,'enable','off')
set(handles.edit1,'enable','off')

set(handles.edit2,'enable','off')
set(handles.edit3,'enable','off')
set(handles.edit4,'enable','off')

while Enable ==1


i = i + 1;
data_out(1) = 0;
if conectado == 1
calllib('libreria', 'MPUSBWrite',my_out_pipe, data_out, uint8(64), uint8(64),
uint8(200)); % Se envia el dato al PIC
[aa,bb,data_in,dd] = calllib('libreria', 'MPUSBRead',my_in_pipe, data_in,
uint8(64), uint8(64), uint8(200)); % Se recibe el dato que envia el PIC
end
data = data_in(2);
vmax = eval(get(handles.edit2,'string'));
vmin = eval(get(handles.edit4,'string'));
ecuacion = eval(get(handles.edit3,'string'));
paso = ((vmax-vmin)/256);
Total = data*double(ecuacion*paso);
set(handles.edit5,'String',(num2str(Total)));
axes(handles.axes1)
plot(0:1000,(Total));
title('Respuesta del sensor');
xlabel('Muestras');
ylabel('Magnitud');
Enable = get(handles.radiobutton2,'Value');

if i >= 3
if arch ==0
[arch,error] = fopen(datos,'w');
end
i = 0;
if n >= 100;
arch = fclose('all');
else
if (arch > -1)
numero = fprintf(arch, '%d \n',Total);
n = n+1;
else
disp('El archivo no pudo ser creado');
end

end
end
end
else
set(handles.radiobutton1,'enable','on')
set(handles.edit1,'enable','on')
set(handles.edit2,'enable','on')
set(handles.edit3,'enable','on')
set(handles.edit4,'enable','on')
set(handles.edit5,'String','Esperando...');
fclose('all');
data_out(1) = 1;
if conectado == 1
calllib('libreria', 'MPUSBWrite',my_out_pipe, data_out, uint8(64), uint8(64),
uint8(200)); % Se envia el dato al PIC
[aa,bb,data_in,dd] = calllib('libreria', 'MPUSBRead',my_in_pipe, data_in,
uint8(64), uint8(64), uint8(200)); % Se recibe el dato que envia el PIC
end

warndlg('Reinicie el PIC','Advertencia')
end

function edit5_Callback(hObject, eventdata, handles)


% hObject handle to edit5 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% Hints: get(hObject,'String') returns contents of edit5 as text
%
str2double(get(hObject,'String')) returns contents of edit5 as a double

% --- Executes during object creation, after setting all properties.


function edit5_CreateFcn(hObject, eventdata, handles)
% hObject handle to edit5 (see GCBO)
% eventdata reserved - to be defined in a future version of MATLAB
% handles empty - handles not created until after all CreateFcns called
% Hint: edit controls usually have a white background on Windows.
%
See ISPC and COMPUTER.
if
ispc
&&
isequal(get(hObject,'BackgroundColor'),
get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end

function closeGUI(source,eventdata)
%src is the handle of the object generating the callback (the source of the event)
%evnt is the The event data structure (can be empty for some callbacks)
arch = fclose(arch);
calllib('libreria', 'MPUSBClose', my_in_pipe); % Se cierra el tunel de recepcin
calllib('libreria', 'MPUSBClose', my_out_pipe); % Se cierra el tunel de envio
unloadlibrary libreria
% Importante descargar la librera de memoria, de lo
contrario genera errores
delete(gcf)
close all
clear all

Referencias.
Data sheet PIC18F4455.pdf
Data sheet LM35.pdf
www.forosdeelectronica.com
www.national.com
www.steren.com.mx
www.elet.itch.edu.mx/academia/ehernand/

Você também pode gostar