UNIVERSIDAD AUTONOMA DE SAN LUIS POTosí FACULTAD DE

Anuncio
UNIVERSIDAD AUTONOMA DE SAN LUIS POTosí
FACULTAD DE CIENCIAS
INSTITUTO DE INVESTIGACiÓN EN COMUNICACiÓN ÓPTICA
AUTOMATIZACiÓN DEL SISTEMA DE CRECIMIENTO DE CRISTALES
POR EPITAXIA EN FASE LíQUIDA
TESIS
QUE PARA OBTENER EL GRADO DE
MAESTRO EN
CIENCIAS APLICADAS
PRESENTA:
ING. FRANCISCO SÁNCHEZ NIÑO
ASESOR:
DR. FRANCISCO J. DE ANDA SALAZAR
SAN LUIS POTosí, S. L. P., AGOSTO DEL 2009
t
Dedicatoria
•
Gracias Dios mío por iluminar mi camino.
A mis padres que ~: in e llos no hubiera sido po ible.
•
Gracias por ser la fuente de motivació n de sa lir ade lante .
Gracias por su apoyo siempre incondicio nal, su compr nsió n y cariño a lo largo de mi
formación académica.
2
Agradecimientos
t
Al Dr. Francisco J. de Anda Salazar por darme la oportunidad y el apoyo para realizar e l
presente proyecto de tesis.
A mis hermanos Graciela, Javier, Roció, Alejandro, Miguel y Osear por su compren ión y
apoyo durante este tiempo .
A todos mis profesores compañeros y amigos que estuvieron conmigo en el trayecto de mi
formación académica y personal.
Gracias por tu respaldo, comprensión y cariño durante este tiempo Eve.
•
Al Consejo Nacional de Ciencia y Tecnología (CONACYT) por su apoyo al otorgar una
beca para estudios de posgrado durante el período de septiembre de 2006 a ago to de 2008 .
3
•
,
Resumen
En la actualidad el desarrollo tecnológico brinda la oportunidad de encontrar
diferentes soluciones a diversos problemas en el ámbito industrial , comercial ,
científico , escolar, etcétera . Una de las soluciones que ofrece la tecnología es
optimizar los procesos involucrados en las actividades propias de cada una de las
disciplinas mencionadas con la finalidad de lograr mejores resultados en cada uno
de sus proyectos o trabajos , logrando con esto una mayor rentabilidad en los
sistemas utilizados.
Este trabajo de tesis consiste en el diseño e implementación del software y
hardware de control de los sistemas de crecimiento por epitaxia en fase liquida del
laboratorio de crecimiento de cristales . Se utilizó un microcontrolador Pie 18F4550
como cerebro principal de las tarjetas de control realizando la transferencia de
datos entre el Pie y la pe por medio del puerto USB que es una de las novedades
presentes en el trabajo de tesis . El software de control se realizó en el ambiente
de programación gráfica "LabVIEW" ya que ofrece un ambiente de interacción con
el usuario muy agradable y versátil.
4
•
INDICE GENERAL
CAPíTULO I
INTRODUCCiÓN
1. 1
1.2
1.3
1.4
Epitax ia en fase líquida ......... ...... . .... . ............ . ..................................... .7
Aplicacio nes de la Epitaxia en fase Iíquida .. .. ....... . ......... ... .. . .. ............. . ...... 8
Descripción de los objetivos del trabajo de tesis .. ................................ ........ 8
Ventajas de automatizar los sistemas de crecimiento ... ..... . ...... ...... .... .. .... ... ... 9
CAPíTULO 11
SISTEMA EXPERIMENTAL DEL LABORATORIO
2.1
2.2
2.3
Descripció n de los sistemas de crecimiento de crista les ................... ........... .. . 1O
Proceso operativo ............. ............ ..... .. .. ..... ......... ....... .... . .. .... ....... .... 13
Parámetros fisicos involucrados .. .. ..... ... .... .... ..... . ......................... .. ..... .. 17
,
CAPíTULO 111
HARDWARE DE CONTROL
3.1
3.2
3.3
3.4
3.5
Circuito de potencia ........................ .. ............. . .... . ........... ... . .............. 19
Circuito de contro l e lectrón ico .... . .......... . . .................... ... ...................... 2 1
Circuito de adquisición de seña les ... .. ............... .. ........................... ........ 24
Fuentes de a limentación ... ..... ..... ...... ... . . ... ... ............... .... . ........ . .......... 30
USB ....... .......... .. ....... ... .................. ...... .... . ............... ....... ....... ..... 3 1
3.5.1
3.5.2
3.5 .3
3.6
Características de transmisión ............... ... . ... .. ....... . ............... .. . .... 32
Compatibilidad y conectores ................ ........ ............... ......... . ...... 34
PIC 18F4550 y USB ......... ....... ........... .... . ..... .. ........ . ........ .......... 35
Circu ito impreso ... . ............ . . . . ..... ..... . . ......... .. ................... . ............... 36
5
•
CAPíTULO IV
SOFTWARE DE CONTROL
4.1
4.2
4.3
4.4
Programa desarrollado en el microcontrolador ........................................... 39
LabVIEW ............................. ... ................................... ............. .. .... 42
Programa principal de LabVIEW . ..... ............. .. ... . . ........... ........... .. ........ .45
Modos de operación del software de la PC ... ......................................... ... .4 7
4.4.1
4.4.2
4.4.3
4.4.4
Modo
Modo
Modo
Modo
manual ............ .......... ... .......... ............. ... ... ....... .. ... .. .... 47
válvulas ...................... .. .... .. .... .... . .. . ......... . ................ .. .49
bloques ..... .... .. ............. ... .......... ..... ............................ ..5 1
automático ............. ..... ... . ...... . ................. ..................... 53
CAPíTULO V
RESULTADOS
5.1
Pruebas realizadas ............................... ..... .. .. . ......... ... ... . . .................. 55
CAPíTULO VI
CONCLUSIONES
6.1
6.2
Conclusiones ............ ..... .......... . ... ... . ........................ . ...................... 65
Trabajo futuro .................. .. ......... ........ ..... . ................ . ......... .. .......... 66
APÉNDICE
A. Programa de Control del Microcontrolador PIC 18F455 0 ......... ...... . .......... . .... 67
B. Programa principal de control de la PC implementado en LabVlEW ...... . ... . . .. .. .82
B.l. Subprograma modo Automático .... .. . .... . . .......... ... .................... .. ...... 84
B.2. Subprograma modo Válvulas ...... ... ... .......... . ... ............. ... .. ........... ..84
B.3. Subprograma modo Manual. ........... . .. ... .. ........ ... ...... .... ....... ... .... . .. 89
B.4. Subprograma modo Bloques ....................... ............... ..... .. ............ 90
BIBLIOGRAFíA ......................... ........ ... ........ ...... .............. .................... 93
6
•
CAPíTULO I
INTRODUCCiÓN
1.1 Epitaxia en fase líquida.
•
•
El término epitaxia (del griego epi, sobre, taxis , orden) apareció por primera vez
hace aproximadamente 50 años. Este término se refiere a un proceso de
crecimiento orientado de una película sobre un substrato , que puede ser del
mismo material que la película (homoepitaxia) o bien de un material diferente
(heteroepitaxia) . A los procesos de cristalización de películas sobre la superficie
de un substrato se les llama , en forma genérica , métodos de crecimiento epitaxial
de cristales.
En el método epitaxial por fase líquida la cristalización de las capas crecidas tiene
lugar a partir de una solución saturada con un material semiconductor, en la que
se utiliza un solvente previamente escogido . Para el crecimiento de capas
epitaxiales semiconductoras de los grupos III-V y las soluciones sólidas que se
obtienen es muy cómodo utilizar en calidad de solvente el Ga y el In .
Estos elementos tienen temperaturas de fusión bajas, y además entran en la
composición de las películas crecidas . Tanto el Gol como el In tienen presión de
vapor muy baja en el intervalo de temperatura que ~Ieneralmente es utilizado en el
proceso de crecimiento por el método de fase líquida . Además , estos dos
elementos se pueden obtener muy puros y a las temperaturas usuales de
crecimiento ni el Ga ni el In interaccionan con el wafito , material del cual están
hechos generalmente los contenedores de las fases líquidas.
Para llevar a cabo el proceso de epitaxia es necesario conocer el correspondiente
diagrama de fase que determina la relación entre las. composiciones de las fases
Líquida y sólida a diferentes temperaturas .
•
El método epitaxial por fase líquida fue utilizado por ¡primera vez por H. Nelson
para el crecimiento de uniones p-n en base al GaAs (1963) .
Cabe señalar que la epitaxia por fase líquida, desde el punto de vista técnico , es
bastante sencillo y por esto es posible realizar el montaje experimental en
condiciones normales de laboratorio. Precisamente , la técnica de crecimiento por
fase líquida revolucionó las posibilidades de la época para mejorar los parámetros
de dispositivos ya existentes y crear otros nuevos en base a heteroestructuras de
capas múltiples, como es el caso de los heterolásere's.
7
•
1.2 Aplicaciones de la Epitaxia en fase líquida.
En la tecnología actual de crecimiento de heteroes'tructuras láser las técnicas de
crecimiento epitaxial son utilizadas de manera extensiva . Estas técnicas ocupan
un lugar muy importante en la tecnología de semiconductores relacionada con el
diseño de circuitos integrados, así como de dispositivos semiconductores entre los
que se cuentan fotodetectores , fotodiodos y transistores de alta frecuencia .
Dependiendo de la forma de transportar el material él crecer desde la fuente hasta
el substrato, todos los procesos epitaxiales se dividen en tres tipos : (a) epitaxia por
fase líquida , (b) epitaxia por fase gaseosa , (c) epitaxia por haces moleculares .
Hoy en día todos estos procesos son utilizados en el crecimiento de los más
diversos dispositivos y estructuras semiconductoras . Por otro lado, también son
útiles en la búsqueda de nuevos materiales semiconductores . Debido a que cada
uno de estos procesos tiene una serie de particularidades muy específicas .
1.3
•
Descripción de los objetivos del trabajo de tesis.
El objetivo principal de este trabajo de tesis es el de automatizar los procesos
involucrados en el sistema de crecimiento de cristales por epitaxia en fase líquida
para la obtención de mejores resultados y mejorar la reproducibilidad .
Esto se pretende realizar a través del monitoreo de los parámetros físicos
involucrados en el proceso de crecimiento , tales corno: humedad relativa dentro
del sistema y la humedad relativa en el laboratorio , temperaturas de crecimiento y
temperatura ambiente así como las presiones dentro del sistema que se generan
al hacer fluir hidrógeno y cuando se le hace vacío a este .
Este monitoreo de variables físicas se realizará a lo largo de todo el proceso . En
función de las lecturas obtenidas al leer el estado dl~ las variables mencionadas
anteriormente , el programa de control , tomará una serie de decisiones para llevar
a cabo cada uno de los procesos involucrados en el sistema de crecimiento de
cristales por epitaxia en fase líquida, tales como vacío al sistema , flujo de
hidrógeno , crecimiento y apagado del sistema .
•
8
•
1.4 Ventajas de automatizar los sistemas dt~ crecimiento.
Algunas de las ventajas de automatizar los sistemas de crecimiento de cristales
por epitaxia en fase líquida son las siguientes :
•
•
•
•
•
•
•
•
Permite un registro de datos a lo largo de todo el experimento .
Un mejor control de los procesos involucrados en el sistema .
Monitoreo constante del crecimiento .
En función de los datos registrados se podrán evaluar las condiciones
óptimas para realizar un crecimiento .
Permitirá reducir errores en el accionamiento de las Electroválvulas ya que
estas se accionarán electrónicamente y no en forma manual.
Obtener mejores resultados en los crecimientos de cristales.
y en función de todo esto se espera obtener una mayor reproducibilidad de
los experimentos.
Mayor seguridad .
9
CAPíTULO 11
SISTEMA EXPERIMENTAL DEL lABORATORIO
2.1
•
Descripción de los sistemas de crecimj¡¡mto de cristales .
Epitaxia en fase líquida es una técnica que ha sido ampliamente estudiada para la
obtención de capas epitaxiales de materiales semiconductores y de materiales con
dominios magnéticos y ferroeléctricos . Una de las principales ventajas que ofrece
esta técnica es que permite hacer el crecimiento a tl3mperaturas por debajo de la
temperatura de fusión de los cristales .
Cabe mencionar que el sistema experimental está constituido por dos sistemas de
crecimiento los cuales son idénticos, por lo que a lo largo de la descripción del
trabajo de tesis solo se hará mención a uno de los sistemas.
•
El sistema experimental consta de un horno cilíndrico con resistencia de Kanthal
para elevar la temperatura , un termopar tipo K para medir la temperatura al lado
de la resistencia , un controlador - programador conectado a un SSR para regular
dicha temperatura , además contiene un bote de gralfito tipo panal el diseño más
sencillo de este se muestra en la figura 2.1, el cual se compone de dos partes: el
tronco y el deslizador; el tronco generalmente no se mueve y en sus cavidades se
alojan las fases líquidas de diferentes composiciones .
Figura 2.1. Con ayuda de este bote de grafito es posible crecer estructuras de capas múltiples. Los sistemas modernos de
fase líquida utilizan este tipo de botes ; su presentación puede variar según lo que se des ee crecer.
10
El deslizador tiene una cavidad en la cual se deposita el substrato , éste se desliza
en relación con el tronco y de esta manera el substrato se pone en contacto con
cada una de las fases líquidas contenidas en las célvidades del tronco .
Este tipo de bote de grafito se utiliza con el objetivo de obtener estructuras más
complicadas que contengan varias capas con diferentes composiciones .
•
Además consta de un reactor de cuarzo dentro elel cual está el bote de grafito
donde fluye hidrógeno a través de él durante el crecimiento. Para tener un flujo de
Hidrógeno constante y controlado, se requiere un controlador de flujo de gases .
Para garantizar un alto grado de pureza en el hidró~leno , se necesita un purificador
con celda difusora hecha de paladio y plata .
Es necesario monitorear las concentraciones de vapor de agua presentes en el
sistema ya que concentraciones altas pueden alterar el experimento , por lo que se
requiere un analizador de partes por millón de vapor de agua . Se hace necesario
también un sistema de vacío para limpiar el sistema cuando se requiera , como en
el caso en el cual se abre el reactor al medio ambiente , para este caso se utilizan
dos tipos de bomba con las cuales se hace vacío éll sistema , la primera de ellas
es una bomba tipo Jet la cual genera un vacío burdo y para realizar un vacío más
fino se utilizan unas bombas llamadas de adsorción .
•
•
11
•
En la figura 2.2 se muestra el esquema general de los sistemas de crecimiento de
cristales por epitaxia en fase líquida .
ESQUEMA GENERAL D13L SISTEMA
•
•
H2
yp
G
yp
Figura 2.2. En esta figura se muestra el es quema general dElI sistema de crecim iento .
•
•
Este sistema consta de una serie de tuberías interconectadas entre sí por medio
de válvulas neumáticas las cuales son accionadas por electroválvulas esto con el
objetivo de realizar los diferentes procesos involucrados en el sistema .
Cabe mencionar que se hace necesaria la utilización de válvulas neumáticas
debido a que a través del sistema fluye hidrógeno el cual es altamente inflamable
y no debe de tener una interacción con 02 .
12
•
2.2
Proceso operativo.
En esta sección se describirá de una forma breve la manera en la cual se realiza
un crecimiento de cristales esto con el fin de dar una perspectiva muy
generalizada de los pasos involucrados en el proceso .
•
Esta técnica se basa en que la solubilidad de un constituyente diluido en un
solvente líquido , decrece cuando disminuye la temperatura ; es por esto que el
enfriamiento de una solución saturada conlleva a la aparición de la fase sólida en
ésta . La técnica de EFL aprovecha ese fenómeno pélra colocar en contacto en ese
momento la solución con el sustrato , y generar así na deposición del material en
fase sólida sobre él. La fase sólida se adhiere al sustrato de manera ordenada ,
conservando las características cristalinas del mismo .
En primer lugar es necesario preparar una solución saturada la cual se colocará
en el tronco del bote de grafito y el substrato , dondE~ se depositarán los cristales ,
se coloca en el deslizador del bote de grafito, una vez realizado esto se introduce
el bote de grafito en el tubo de cuarzo y se cierra el reactor.
•
Como el reactor estuvo expuesto al medio ambientl~ a la hora que se colocó el
material , es necesario, realizar un vacío al sistema , esto con el fin de extraer todo
el aire que se introdujo dentro del reactor, para esto se realiza primero un vacío no
muy fino con la bomba Jet, con la cual se obtienen vacíos en el orden de los dos
PSI o menos , en la figura 2.3 se muestra la forma de como se realiza este vacío.
Vacío Bomba Jet
•
H2
Figura 2 .3. Accionamiento de vál vu las para la realización de vado con la Bomba Jet.
•
13
Se abre la válvula de paso de la bomba Jet (JP) y se accionan las válvulas cuatro
y cinco para realizar el vacío al sistema tal como se muestra en la figura 2.3, la
tubería y válvulas en color obscuro muestran el se tido del proceso .
Una vez realizado este paso se procede a realizar el vacío fino por med io de las
bombas de adsorción (VP 1 y 2) una vez más se accionan las válvulas cuatro y
cinco con este vacío se obtienen lecturas en el orden de los 100 mili torr, esto se
observa en la figura 2.4 aquí termina el proceso de aplicar vacío al sistema .
•
Vacío Bomba De A,bsorción
•
H2
Figura 2.4. Accionamiento de válvulas para la realización de vaclo con las Bombas de adsorción .
Las bombas de adsorción cumplen con la función de absorber la mayor cantidad
de partículas que se introdujeron a la hora de introducir el material en el reactor.
Una de las características de este tipo de bomba es que entre más fría se
encuentre mayor será la capacidad de adherencia que tendrán , es por eso que se
requiere del uso de nitrógeno líquido para enfriarlas antes de ser utilizadas, una
vez que las bombas se saturan , en ese momento termina la generación de vacío
con estas .
•
14
Una vez realizado el vacío al sistema se procede a la purificación del sistema el
cual consiste en hacer circular hidrógeno purificado a través del reactor de cuarzo.
La utilización del hidrógeno permite eliminar las películas de óxido que casi
siempre están presentes en la superficie del material que se utiliza como solvente
así como sobre la superficie del substrato y del matmial utilizado para saturar la
fase líquida. La existencia de estas películas de óxido no permite que haya un
buen contacto entre el substrato y la solución . En la figura 2.5 se muestra el
esquema de circulación de hidrógeno en el sistema .
Flujo de Hidrogeno
•
Figura 2.5. Accionamiento de válvu las para la purificación del reactor .
•
Hay que señalar que la purificación del sistema se r,ealiza con la apertura de la
válvula uno la cual permite la entrada del hidrógeno proveniente del tanque , este
pasa a través del purificador obteniendo a la salida de éste hidrógeno ultra
purificado. Posteriormente se accionan las válvulas tres y cinco con lo cual se
permite el paso de hidrógeno hacia el reactor del tubo de cuarzo donde se
contiene el material y una vez que se alcanza una presión interna de 15 PSI se
abre la válvula ocho y se deja fluir el hidrógeno hasta el final del experimento .
15
•
Finalmente una vez que se han realizado estos pasos se comienza con la etapa
de crecimiento la cual consiste en implementar un diagrama de temperatura , tal
como se muestra en la figura 2.6.
DIAGRAMA DE TEMPERATURA
•
Tem pe ratura
Diso luci ó n
Tiempo
Disolución
Temperatura
Saturación
Forma de Crecim iento
1- - - - 1
1
1
Tem pe ratura
Crecim iento
1Tiempo-....~
-1'
Saturación
1
.g "1
o .~
a.
~:E
"'
•
1
I?arr¡
1
1
a
1
.~
.- 1;;
1-
emp eratura
Ambi ente
Constante
1
1
1____ 1
w
Tiempo
Ho ras
Figura 2 .6. Diagrama de temperatura generalizado para la realiz ación del crecimiento . Hay que señalar que los tiem pos y
temperaturas va rían de acu erdo a los tipos de materiales y objeti vo s a lograr en el experimento
A continuación se describe de una forma breve la manera en la cual se realiza el
crecimiento de cristales por el método de epitaxia en fase líquida : El reactor se
localiza dentro de un horno , con ayuda del cual se calienta la solución hasta la
temperatura deseada . Al alcanzar la temperatura necesaria , el deslizador se
desliza en relación con el tronco el cual contiene el substrato y de esta manera el
substrato se pone en contacto con cada una de las fases líquidas contenidas en
las cavidades del tronco. Si al mismo tiempo se baja la temperatura del horno ,
entonces sobre la superficie del substrato se van a cristalizar capas epitaxiales ; la
composición de estas capas depende de la temperatura y de las composiciones
de las fases líquidas .
Naturalmente que para crecer estas películas epitaxialE~s de diferentes materiales
es necesario conocer sus diagramas de temperatura , según sea el caso.
16
En la actualidad , estos diagramas han sido estudiados con detalle tanto
experimental como teóricamente para casi todos los sistemas de materiales que
representan algún interés práctico. Conociendo los datos de los diagramas de
temperatura que establecen la relación de composiciones entre las fases líquida y
sólida a diferentes temperaturas , se pueden regular las propiedades físicas de las
capas crecidas y de las estructuras de capas múltiples en general. El espesor de
algunas de las capas se puede regular variando el intervalo de la temperatura en
el que se realiza el proceso de cristalización o bien valriando el volumen de la fase
líquida .
•
Una vez que se ha terminado el experimento se balja la temperatura del horno
hasta cero grados esperando a que la temperatura dentro sistema llegue a los 80
grados para poder apagar el sistema terminando de esta forma el experimento .
2.3
Parámetros físicos involucrados.
Las variables físicas a monitorear son las siguientes:
•
Flujo de Hidrógeno: es importante monitorear durante todo el proceso el
flujo de hidrógeno , ya que este no se debe de hacerse cero o bajar del valor
predefinido por el usuario, si esto sucediera entonces se debe detener el
proceso ya que esto indicaría una falla en el sistema, ya sea una fuga , una
válvula dañada o alguna otra falla que seria difícil de determinar en ese
momento lo cual implicaría errores en el crecimiento por lo que es
necesario apagar el sistema .
Además se utiliza para purificar al sistema tal como se mencion ó ya
anteriormente y este tipo de crecimiento se realiza bajo una atmósfera de
hidrógeno .
•
•
Presión : es necesario adquirir la presión que se genera al hacer vacío con
la bomba Jet y las bombas de adsorción para saber el momento en el cual
debe concluir esta etapa , además cuando se realiza el flujo de hidrógeno se
debe vigilar que la presión interna en el sistema no suba por arriba de los
16 PSI ya que esto provocaría una presión excesiva dentro del reactor de
tubo de cuarzo provocando que este se rompa lo cual sería un peligro para
el usuario y el sistema .
17
•
•
Temperatura Interna : Es importante no solo monitorear sino también
controlar ya que de esta depende el crecimiento del cristal. Las
temperaturas a controlar y monitorear son las. siguientes: temperatura de
disolución que es en la cual los cristales se disuelven en el solvente , una
vez que se han disuelto totalmente los cristales se baja la temperatura unos
cuantos grados esto con el fin de saturar la solución y posteriormente se
coloca el horno en la temperatura de crecimiento que es aquí donde se
realiza la deposición de los cristales en el substrato .
•
Temperatura Ambiente : este parámetro físico se mide con el objetivo de
poder analizar cómo es que afecta la temperatura ambiente en el desarrollo
de los experimentos, este es uno de los objetivos de la tesis , mejorar la
reproducibilidad , conociendo precisamente las condiciones optimas para la
realización de los experimentos.
•
Humedad relativa dentro del laboratorio: esta variable física también es de
vital importancia monitorear ya que se desea saber cómo afecta en el
proceso de crecimiento. Sobre todo a la hora len la que se abre el reactor
para introducir el material , se desea saber los niveles de humedad en ese
momento , con el fin de observar cómo afecta está a la hora de hacer fluir el
hidrógeno en el sistema para mejorar los niveles de humedad interna en el
sistema .
•
Humedad interna en el sistema : esta es probabl,emente una de las variables
físicas más importantes involucradas en el proceso , ya que entre valores
más bajos se tengan se podrá obtener mejores resultados , y es
precisamente lo que se quiere hacer con la adquisición y mon itoreo de
todas las demás variables , ver cómo es afectada la humedad interna en
función del estado de los otros parámetros .
18
CAPíTULO 111
HARDWARE DE CONTRIOL
3.1
•
Circuito de Potencia
El circuito de potencia es el encargado de accionar léls válvulas neumáticas , es a
través de la apertura de estas válvulas , como se llevan a cabo la ejecución de los
diferentes procesos involucrados en el sistema , por ejemplo al accionar las
válvulas uno , tres , cinco y ocho se realiza el flujo de hidrógeno para purificar el
sistema y hacer el crecimiento bajo una atmosfera de hidrogeno ultra purificado .
Los principales componentes utilizados en el circuito de potencia para el
accionamiento de las válvulas son los siguientes.
•
•
•
•
•
•
Electroválvulas marca Festo.
Transistor de Potencia "TIP32C" .
Transistor de señal "2N2222A".
Diodo 1 N4007.
Resistencias.
En la figura 3.1 se muestra el diagrama electrónico del circuito de potencia
implementado en el sistema .
•
19
>
N
T"""
+
1.{)
1.{)
o::
014
TIP30
06
2N2222A
~
Bobina
N
Electro - Válvula
o
o
~
oC{
~
..,.....
1'- Z
o
T"""
..,.....
T"""
.....J
N
ce
(j)
(j)
>
(j)
(j)
>
•
•
Figura 3.1 Diagram a electrónico de potencia implementado.
En el diagrama electrónico tenemos R43 que es la resistencia de base del
transistor de señal 06 (2N222A) que está conectado a la salida de la compuerta
OR que manda la señal de activación de la válvula a accionar , esta señal puede
provenir de uno de los pines del microcontrolador o de uno de los switch utilizados
en el modo de operación manual. Cabe mencionar que tanto el transistor de señal
como el transistor de potencia se utilizan en el modo de operación de switch , es
decir, se estarán trabajando en las regiones de corte y saturación . Por lo cual al
haber un uno lógico en la base del transistor de se ñal habrá un cero lógico en la
base del transistor de potencia teniendo doce volts en el colector con lo cual se
activa la electroválvula (L 1) que está conectada al tierra , el diodo 07 (1 N4007)
sirve de protección a la electroválvula .
Para desactivar la válvula neumática simplemente se envía un cero lógico a la
base del transistor de potencia . Este circuito se implementó para todas la válvulas
neumáticas utilizadas en los dos sistemas de crecimiento.
•
20
3.2 Circuito de control electrónico
Este se encarga de controlar el funcionamiento de los circu itos de poten ci a,
adquisición de señales y comunicación con la PC por medio del puerto USB.
El dispositivo encargado de realizar el control de la tarjeta es el microcontrolador
PIC18F4550 . Se eligió este dispositivo debido a que cuenta con un módulo de
comunicación USB interno , con el cual se real iza la comunicación con la
computadora y se realiza el intercambio de información entre el PIC y la PC , es
decir, el PIC recibe los comandos que se le envían desde la PC y la PC recibe la
información que le solicita al microcontrolador.
A continuación se dará una breve explicación de la:, características que presenta
este microcontrolador de Microchip.
En la figura 3.2 se muestra la imagen del PIC18F45E,O con sus respectivos pines .
IC2
•
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
rvlCLR\NPP/RE3
RB7/BKI3/PGD
R.AO/.ANO
RB6/KBI2/PGC
RA1/AN1
RB5/KBI1/PGM
R.A2/.AN2NREF-/CVREF
RB4/A \J11 IKBIO/CSSPP
R.A3/Ar~4NREF +
RB:JIAN9/CCP2NP O
RA4fTOCVI/CIOUT/RCV
REI2/AN8/INT2NMO
R.A5/.AN4/SSVHLVDIN/C20UT
RB1 I.AN1 0/lNT1 ISCKlSCL
REO/AN5/CK1 SPP
RBO/.AN 12/1 NTO/LFTO/S DliS DA
RE1/AN6/CK2SPP
VDD
RE2/.AN3/0ESPP
VSS
VDD
RD7ISPP7/P1 D
+
VSS
RD6/SPP6/P1 C
OSC1/CLKI
RD5/SPP5/P1 B
R.A6/0SC2/CLVO
RD4/SPP4
RCOITIOSOIT13CVI
RC7/RXJDT/SDO
RC11T10SI/ICCP2/UOE\
RC6ITXJCK
RC2/CCP1/P1.A.
RC5/D+NP
VUSB
RC4/D-NM
RDO/SPPO
RD3/SPP3
RD1/SPP1
RD2/SPP2
PIC 18F4550 40
Figura 3.2. Pi e 18F4550
•
21
•
Entre las características principales del PIC18F4550 se encuentran las siguientes:
•
*
•
•
•
•
•
•
•
•
•
•
•
•
•
•
Arquitectura RISC avanzada Harvard : 16 bits con 8 bits de datos.
Set de 77 instrucciones.
40 pines.
Memoria de programa flash de 64 Kb .
Memoria de datos RAM 3968 bytes .
Memoria de datos EEPROM 1 Kb .
Frecuencia máxima de reloj de 40 MHz
Múltiples fuentes de interrupción .
Periféricos de comunicación avanzados (USB y CAN) .
5 Puertos E/S A, B, C, O Y E.
Módulos de PWM.
Líneas de entrada para el ADC de 8 o 10 bits .
Pila de 32 niveles .
Módulo de comunicación serie.
El microcontrolador PIC18F4550 dispone de 5 puertos de entrada/salida que
incluyen un total de 35 líneas digitales de E/S .
Todas las líneas digitales de entrada/salida disponen de al menos una función
alternativa asociada a alguna circuitería especifica del microcontrolador. Cuando
una línea trabaja en el modo alternativo no puede sl~r utilizada como línea digital
de E/S estándar.
En la figura 3.3 se muestra el diagrama a bloque del
PIC18F4550.
•
22
•
---- -.
.~I'~
--••
I:HIT
•
--Figura 3.3 Diagrama a bloques del PIC18F4550.
En la figura 3.4 se muestra el esquema del circuito de control.
5
~
e
~
SI
o
~
,f
ilII14}o'~.¡.
~
R2
o
JlI·,.I"'I1P(. 1I
ftII.&.I'1'tY,I<KOIJHIOC',,'
~N~l\.tl·.r..SJ'.!T
I\E!)"'",V. ""~:"
•
P.E.'~"'bl:..r-;',
111 e'1;JItI.H'lO !St,
1
"DO
'"
V'iG
U
j;.
:c
"1"/~Jrz"
JIIl_\.\II,"
ftoI21ov'2f,'P'ft"'¡:;"'''E'
ItAJ;<oJ¡v.,·"Ef.
PI &. ~Nll"""OCS7f'.., '
lil:1l¡"H·..:(
';!/l.",)
"'':Y'.NIl,rH:v. Uv
R"-"'N1DNT\.Q::~l
IU[l¡'.Ht2IINmL~'fnoG,D~O ...
O"
.....
ID
"D'IS"~"
~t.CL~U()
IIICQ'Tor.,('lJT1X 1-<1
IK' ,.. Th)~~r lo '~UOf"'
~ ~:':~'I"IA
II:OM''''
II!OtJS.",
IIID&:',"M.c
RD!"6"~"1
111014" .
ftl:.11f1!'qOU·OO
"r..'Jr<'.C~
ftCS'Ct.,.,..,
ftC &.. ~""' U
IiIClG'"
IIID:4"2
Pie Isr,,1'.o_40
Figura 3.4 Circuito de control.
•
23
3.3
Circuitos de Adquisición de Señales
Para la medición de la temperatura ambiente se utilizó el sensor "TMP36", sus
condiciones de operación son las siguientes: provee un voltaje de salida lineal a la
temperatura medida , esto es en grados centígrados . El rango de operación es de _
40°C a 125 oC , a 25°C se tiene una señal de 750 mv Hn la salida del sensor.
El rango de la fuente de alimentación es de 2.7 V halsta 5.5 V máximo , el sensor
se muestra en la figura 3.5 .
•
Vs
O
TMP3x
VOUT
L / """--_
<:
GND
Figura 3.5 Sens or de tem peratura T MP3'3.
Es necesario conectar un capacitor de 0.1 uf en las terminales alimentación del
sensor para eliminar ruido tal como se muestra en la anterior figura .
•
El acondicionamiento de la señal de salida del sensor de temperatura se realiza
por medio del amplificador operacional OP491 que está configurado como
seguidor unitario. Esta configuración lleva a cabo dos funciones : la primera es la
de aislar al sensor, esto se logra debido a la alta impedancia de entrada que
ofrece la configuración de seguidor unitario y la segunda es la de evitar que en un
momento dado se pudiera caer la señal de medición de temperatura al entrar al
convertidor.
Para el cálculo de la temperatura en función del voltaje a la salida del sensor se
utilizó la fórmula uno, la cual se obtuvo en forma empírica .
Temperatura = ( voltaJe/
/ 0.0 I ) - "~ O -_
•
(1 )
24
a_____________________________________________________________ ________________
•
Para la medición de la humedad relativa en el laboratorio se utilizó el sensor "HIH4000-001 ". Este sensor tiene una señal de voltaje de salida lineal. Requiere de
una fuente de alimentación de alrededor de 4 V a 5.8 V con un consumo de
corriente máxima de 500 uA. El rango de operación va de O % al 100 % de
humedad , operando en un rango de temperatura de - 40°C a 85 °C . El voltaje de
salida correspondiente a la humedad relativa medida es de 0.981 V al 0% de HR
hasta 3.9 V 100 % de HR.
Los circuitos de medición de humedad y temperatura se muestran en la figura 3.6 ,
el pin de salida del sensor se conecta a la entrada no inversora del amplificador
operacional OP491 el cual está configurado corno seguidor unitario el cual
básicamente tiene la función de aislar al sensor.
Figura 3.6 Circuito de adquisición de temperatura y humedad dentro del laboratorio.
La señal de salida del sensor de temperatura se conecta en el PIN2 de JP37 y la
señal del sensor de humedad se conecta en el PIN1 de JP37, como se ve en
esquema , el PIN2 se conecta al operacional IC5A y Ell PIN1 al operacional IC58
respectivamente .
Para el cálculo de la humedad en el laboratorio se utilizó la fórmula dos que es
proporcionada por el fabricante .
lJ.
d a d. Re la/lva
' =
Hume
•
1 (
Vo/tajedeS:tlida
- O. 16)
0.0062 Vol/ajedeAlim en/ación
(2)
25
•
•
•
Para la medición de la temperatura dentro del sistema se utilizan los controladores
- programadores "Eurotherm 818" y el "OMRON E5CN" para los sistemas uno y
dos respectivamente . Estos controladores no solo se utilizan para leer la
temperatura actual del sistema sino que además se utilizan para controlar la
temperatura deseada dentro de este , es decir, es por medio de estos dispositivos
que se inyecta la corriente necesaria para calentar el horno a las temperaturas de
disolución , saturación y crecimiento . Las principales características de estos son la
siguientes: proveen una salida de control de 4 - 20 mA requerida por la etapa de
potencia conectada al horno, tarjeta de comunicación con la PC , protocolo RS232 ,
control PIO y cinco dígitos de resolución en el control de temperatura .
Para la medición de las presiones generadas cua do se realiza vacío y flujo de
hidrógeno se utilizan los siguientes sensores: el sensor de la serie PC 302A-VR
marca PURERON de alta pureza con el cual se rnide el vacío generado en el
sistema en el rango de 15 PSI a O PSI esto cuando se utiliza la bomba Jet ,
además se cuenta con un indicador analógico moclelo PSO-02A también marca
PURERON con el cual también se monitorea este valor de presión así como el
valor de presión que se genera dentro del sistema cuando se hace fluir hidrógeno ;
hay que mencíonar que este indicador dispone de una señal de salida analógica
de voltaje que se utiliza para desplegar el valor de presión en la PC a través de la
adquisición de esta señal por medio del PIC18F4550 . Este indicador se utiliza en
el sistema uno, para el dos , se utiliza un indicador marca Eurotherm modelo 2408i
este también cuenta con una señal de salida analógica que se adquiere y
convierte con el PIC18F4550 para ser transmitido y desplegado en la PC , el
sensor en ambos sistemas es el mismo .
Cuando se utilizan las bombas de Adsorción para hacer vacío se utiliza el sensor
Thermocouple Vacum Gauge modelo 1518 el cual es capaz de medir vacíos más
finos , estos valores van de O a 1000 mili Torr. Para visualizar este valor se utiliza
un indicador marca MOC modelo CT el cual es capaz de leer estos valores de
presión algo que el indicador PURERON ya no es capaz de hacer. Este indicador
también cuenta con una señal de salida analógica qUI~ es adquirida por medio del
microcontrolador para ser desplegada en la PC .
•
Los circuitos de adquisición de estas señales se muestran en la figura 3.7, el
diagrama que se encuentra en la parte superior corresponde al utilizado para
adquirir el valor generado por la bomba Jet y el de la parte inferior es el que
adquiere la señal que se genera cuando se utiliza la bomba de Adsorción .
..
26
r
1r.-...
-.,
.1 P4
.2
~
R12
~P~OP
C16
Pl1
== F
Ir
CdA
1
PIS
Al-14
G
~ 14
oc
==
R20
'"
\V
\
.r-
~
.>
•
R22
~
~
J
IC08
+
.1 p!
R17
.J
~N 5
OP4<lOP
¡;;;C15
<'>
~
a.
\
;r,
V'
\11
:>
'"
>
Figura 3.7 Circuito de adquisición.
Para obtener el valor en PSI una vez que se adquirió la señal entregada por
sensor PC302A-VR
a través del indicador PURERON por medio del
microcontrolador hacia la PC , se hace uso de la ecualción tres la cual se obtuvo en
forma empírica , es decir, se tomó la lectura de voltaje en los puntos de máxima y
mínima presión en el sistema , al ser lineal el sensor, se introdujeron las señales
leídas en la ecuación de la recta y se calculo la pencliente con lo cual se obtuvo la
fórmula tres .
vacioJel = ' o/taje * -5.7) 100
•
En lo que respecta a la obtención del parámetro físico en mili Torr para los valores
de voltajes que se presentan al utilizar las bombas de Adsorción se hace uso de la
fórmula cuatro , esta se obtuvo en base a una tabla de voltajes contra vacío en mili
torr proporcionada por el fabricante , estos datos se graficaron y ajustaron
mediante un programa para matemáticas , el cual arrojó precisamente la ecuación
cuatro , con la cual se obtenía el mejor ajuste de los valores graficados.
vacioabsorcion = ( a ) * exp -.Ollu% ) +
•
(3)
'2*
exp -.Ol,u%
j- t * exp -,OI,u1. ~ Yo
(4)
27
En lo que respecta a la medición de flujo de hidrógeno se utiliza el sensor UFC
1400 el cual entrega una señal de salida de O a 5 volts en el rango de O a 100% de
flujo, este dispositivo cuenta con una válvula que abre en cierto porcentaje de
acuerdo al valor de flujo que se desea , la válvula abre del O a 100 % de acuerdo al
voltaje que se le aplique, y puede variar de O a 5 volts en función del porcentaje
deseado. Este sensor también cuenta con una terminal de salida que se conecta
al sistema de adquisición del PIC18F4550 para su vi.sualización en la PC .
El diagrama electrónico de adquisición se muestra en la figura 3.8 .
nllTPUT o ~
1· ~
+
1(50
11
R16
.-.H. ./'
V" OP490P
Figura 3.8. Diagrama eléctrico de adquisición de flujo de Hidrógeno.
La fórmula utilizada para convertir del voltaje adquirido a su valor correspondiente
en porcentaje de flujo de hidrógeno leído por el sensor y desplegado en la PC es
la fórmula cinco .
fl . uJo -
C; ollajesa5da * 100
voltajedeleferencia
(5)
En lo que respecta a la medición de la humedad interna en el sistema se utiliza el
Moinsture Monitor Series 3 que al igual que los demás sensores e indicadores
este también cuenta con una señal de salida analógica que se conecta al circuito
de adquisición mostrado en la figura 3.9.
•
1"""'------_ __
28
•
RI~
ANl
JP3
(12
:~
Figura 3.9. Circuito de adqu isición de la humedad interna .
En lo que respecta a la conversión de voltaje a parámetro físico leído se utiliza la
fórmula seis. Esta fórmula se obtuvo en base a la cal ibración del sensor, es decir,
se definieron los rangos de lectura máximo y mínimo , en base a esto se obtuvo la
resolución del sensor y se calculó la fórmula .
•
•
/
) + '""
~ I I 0-_
humeda d.·mt erna = ( voltajeSalida/ 0.02
(6)
29
3.4
Fuentes de Alimentación
Para la alimentación de los componentes se utiliza una fuente de 5 V. En la figura
3.10 se muestra el esquema que compone la fuente de alimentación para la tarjeta
de control. Además se implementó una fuente ole ± 15V para alimentar el
controlador de flujo de hidrógeno , que requiere estos voltajes de alimentación .
El transformador baja de 127 volts de alterna a 24 volts de alterna y estos son
rectificados para obtener los voltajes de CD qU I~ serán regulados por los
componentes 7805, 7815 Y 7915 para obtener los voltajes respectivos de
alimentación .
,
-
::;-~
~-----H------~
R3
L.~l
•
-.
.
'------------'
R4
<
~
"
F:"J
...
E04
•
•
Figura 3.10. Fuente de alimentación.
30
3.5
USB
El Universal Serial Bus (bus universal en serie) o Conductor Universal en Serie
(CUS) , abreviado comúnmente USB, es un puerto que sirve para conectar
periféricos a una computadora . Fue creado en 1B96 por siete empresas : IBM ,
Intel , Northern_Telecom, Compaq , Microsoft, DigitalJ~quipmentCorporation y NEC.
El estándar incluye la transmisión de energía eléc\rica al dispositivo conectado .
Algunos dispositivos requieren una potencia mínima , así que se pueden conectar
varios sin necesitar fuentes de alimentación extra . La gran mayoría de los
concentradores incluyen fuentes de alimentación que brindan energía a los
dispositivos conectados a ellos, pero algunos disposi'tivos consumen tanta energía
que necesitan su propia fuente_de_alimentación . Los concentradores con fuente de
alimentación pueden proporcionarle corriente eléctrica a otros dispositivos sin
quitarle corriente al resto de la conexión (dentro de ciertos límites) .
•
El diseño del USB tenía en mente eliminar la nE~cesidad de adquirir tarjetas
separadas para poner en los puertos busJSA o PCI , y mejorar las capacidades
plug and play permitiendo a esos dispositivos ser conectados o desconectados al
sistema sin necesidad de reiniciar. Cuando se conecta un nuevo dispositivo, el
servidor lo enumera y agrega el software necesario para que pueda funcionar .
El USB puede conectar los periféricos como ratones , teclados, escáneres,
cámaras digitales , teléfonos móviles , reproductores multimedia , impresoras , discos
duros externos, tarjetas de sonido , sistemas d l~ adquisición de datos y
componentes de red. Para dispositivos multimedia como escáneres y cámaras
digitales , el USB se ha convertido en el método E~stándar de conexión . Para
impresoras , el USB ha crecido tanto en popularidad que ha desplazado a un
segundo plano a los puertos paralelos porque el USB hace mucho más sencillo el
poder agregar más de una impresora a una computadora personal.
En el caso de los discos duros , es poco probable que el USB reemplace
completamente a los buses (el ATA (lOE) Y el SCSI) , pues el USB tiene un
rendimiento más lento que esos otros estándares . Si n embargo , el USB tiene una
importante ventaja en su habilidad de poder instalar y d~sinstalar dispositivos sin
tener que abrir el sistema , lo cual es útil para dispositivos de almacenamiento
externo . Hoy en día , una gran parte de los fabrican:tes ofrece dispositivos USB
portátiles que ofrecen un rendimiento casi indistinguible en comparación con los
ATA (lOE) . Por el contrario , el nuevo estándar Serial ATA permite tasas de
transferencia de hasta aproximadamente 150/300 IIIIB por segundo , y existe
también la posibilidad de extracción en caliente e incluso una especificación para
discos externos llamada eSATA.
31
Figura 3.11 Símbolo de USB y conector USB tip o A. macho.
3.5.1 Características de Transmisión
Los dispositivos USB se clasifican en cuatro tipos según su velocidad de
transferencia de datos:
•
Baja velocidad (1 .0): Tasa de transferencia de hasta 1'5 Mbps (192 KB/s) .
Utilizado en su mayor parte por dispositivos de interfaz humana (Human
interface de vice , en inglés) como los teclados , los ratones y los joysticks .
•
Velocidad completa (1 .1): Tasa de transferencia de hasta 12 Mbps (1 '5
MB/s) . Ésta fue la más rápida antes de la especificación USB 2.0, y muchos
dispositivos fabricados en la actualidad trabaljan a esta velocidad . Estos
dispositivos dividen el ancho de banda de léI conexión USB entre ellos ,
basados en un algoritmo de búferes FIFO .
•
Alta velocidad (2.0) : Tasa de transferencia de hasta 480 Mbps (60 MB/s).
•
Súper alta velocidad (3.0) : Actualmente en fasl: experimental y con tasa de
transferencia de hasta 4.8 Gbps (600 MB/s). Esta especificación será
lanzada a mediados de 2009 por Intel, di: acuerdo con información
recabada de Internet. La velocidad del bus ser.á diez veces más rápida que
la del USB 2.0 , debido a la que han incluido 5 conectores extra,
desechando el conector de fibra óptica propuesto inicialmente , y será
compatible con los estándares anteriores. Se espera que los productos
fabricados con esta tecnología lleguen al consumidor en 2009 o 2010 .12
32
Pin Nombre Color del cable Descripción
L--...-
---
-r-
VCC
Rojo
+5v
....
t
2
0-
Blanco
Data -
3
D+
Verde
Data +
.
4
GND
t
t
Negro
Ti(:rra
Figura 3.12 Señales del conector USB
•
•
Las señales del USB se transmiten en un cable de par trenzado con impedancia
de 90 n ± 15%, cuyos hilos se denominan 0+ y O-Estos, colectivamente , utilizan
señalización diferencial en half dúplex para combatir los efectos del ruido
electromagnético en enlaces largos. 0+ y 0- suelen operar en conjunto y no son
conexiones simples. Los niveles de transmisión de la señal varían de O a 0'3 V
para bajos (ceros) y de 2'8 a 3'6 V para altos (unos) en las versiones 1.0 y 1.1, Y
en ±400 mV en alta velocidad (2 .0) . En las primeras v'3rsiones , los alambres de los
cables no están conectados a masa , pero en el modo de alta velocidad se tiene
una terminación de 45 n a tierra o un diferencial de 90 n para acoplar la
impedancia del cable. Este puerto sólo admite la conexión de dispositivos de bajo
consumo , es decir, que tengan un consumo máximo de 100 mA por cada puerto ;
sin embargo , en caso de que estuviese conectado un dispositivo que permite 4
puertos por cada salida USB (extensiones de máximo 4 puertos) , entonces la
energía del USB se asignará en unidades de 100 mA hasta un máximo de 500 mA
por puerto . Los cables de datos son un par trenzado para reducir el ruido y las
interferencias.
Figura 3.13. Cable de datos USB
•
33
3.5.2 Compatibilidad y conectores
El estándar USB especifica tolerancias para impedancia y de especificaciones
mecánicas relativamente bajas para sus conectores, intentando minimizar la
incompatibilidad entre los conectores fabricados por distintas compañías -una
meta a la que se ha logrado llegar. El estándar USB, a diferencia de otros
estándares también define tamaños para el área ailrededor del conector de un
dispositivo, para evitar el bloqueo de un puerto adyacente por el dispositivo en
cuestión .
Las especificaciones USB 1.0, 1.1 Y 2.0 definen dos tipos de conectores para
conectar dispositivos al servidor: A y B. Sin embargo , la capa mecánica ha
cambiado en algunos conectores . Por ejemplo , el IBM UltraPort es un conector
USB privado localizado en la parte superior del LCO de las computadoras
portátiles de IBM. Utiliza un conector mecánico diferente mientras mantiene las
señales y protocolos característicos del USB. Otros fabricantes de artículos
pequeños han desarrollado también sus medios de conexión pequeños , y ha
aparecido una gran variedad de ellos , algunos de baja calidad.
•
Una extensión del USB llamada "USB-On-The-Go" (sobre la marcha) permite a un
puerto actuar como servidor o como dispositivo - esto se determina por qué lado
del cable está conectado al aparato . Incluso después de que el cable está
conectado y las unidades se están comunicando , las 2 unidades pueden "cambiar
de papel" bajo el control de un programa . Esta facilidad está especificamente
diseñada para dispositivos como POA, donde el enlace USB podría conectarse a
un PC como un dispositivo , y conectarse como servidor a un teclado o ratón . El
"USB-On-The-Go" también ha diseñado 2 conectores pequeños, el mini -A y el
mini-B, así que esto debería detener la proliferación de conectores miniaturizados
de entrada .
•
5cm
Figura 3.14. Tipos diferentes de conectores USB (de izquierda a derecha) : micro USB macho, mini USB ti po B macho, Tipo
B macho, Tipo A hembra, Tipo A macho
•
34
•
3.5.3 PIC18F4550 y USB
El USB es directamente soportado por el microcontrolador PIC18F4550. De esta
forma se permite que el microcontrolador sea in erconectado a una PC por
medio del USB para virtualmente cualquier uso que necesite este tipo de
conectividad. Se utilizan librerías ya predefinidas en el compilador de PICC
de la compañía Custom Computer Services CCS .
•
•
Para llevar a cabo la comunicación se hace uso de un driver y una DLL
desarrollados por microchip. El driver contiene todas las características del
dispositivo que se va a conectar en este caso el microcontrolador, mientras
que la DLL contiene todas las funciones necesarias para comunicar al
dispositivo con una aplicación en cuyo ca.so consiste el programa
implementado en LabVIEW del cual se hablará E~ n el siguiente capítulo.
Es necesario utilizar este driver de instalación parél el reconocimiento del nuevo
dispositivo conectado (PIC18F4550) debido a que se está trabajando la interfase
USB a una alta velocidad , en este modo de trabajo es necesaria la instalación del
driver, el cual se instala solo la primera vez que se conecta el dispositivo . Cabe
señalar que tanto la DLL como el driver utilizados son compatibles con Windows
XP .
La figura 3.15 ilustra la estructura interna de la interfase USB con la que cuenta el
microcontrolador PIC18F4550 y en la figura 3.16 Sl~ muestra la interfase entre la
PC y el PIC18F4550 por medio del conector USB.
------------------,
"1C1.'UWXltG '.mUy
I
~
- -- ---- .
: ~:;:~lV :
Opdoou'
Extemal
~1I<v,",PI
~----
I IF...
1 5pH(I¡
~----
- --- -..
-
tl.oow I
Speed )1
----~
UMe" l
===:±== ~
------------------~
Figura 3.15. Estructura interna del mód ulo USB.
Figur3 3.16. PIC18F4550 conectado al puerto USB.
35
3.6
Circuito impreso
En la figura 3.17 se muestra el circu ito impreso de lél tarjeta de control del sistema
uno y en la figura 3.18 la tarjeta de control del sistema de crecimiento dos , como
se puede notar ambas tarjetas son casi idénticas .
•
•
o
..loi
.S!
.-l
lil
lit
111
J
'.
~
:.
-
....
1"
111
:.
':
':
:.
~
h
1I1
~
:.
~ ~.
"
r;
':
~
~
,:
r;
,.
"
.:
G
, L'
~
I
--.,-,
....... :.
o
:,
' .'~
v'·
. ,:.:-.'
I:
I
<.
"t
,J,
o
S"
.."
"1
:o
~~:
O
,
:.
o
f.
''t-~
-1
Figura 3.18. Tarjeta de control del sistema dos .
36
•
En la figura 3 .19 y 3.20 se muestran las tarjetas de control implementadas de los
sistemas uno y dos de crecimiento de cristales por el método de epitaxia en fase
líquida .
,
•
•
Figura 3.19. Tarjeta de control del sistema de crecimiento de cristales uno.
Figura 3.20. Tarjeta de control del sistema de crecimiento de cristales dos.
•
•
37
•
En la figura 3.21 se muestra un diagrama a bloques general del hardware de
control implementado en el sistema de crecimiento de cristales .
•
Figura 3.21 . Diagrama a bloques del Hardware de control.
•
•
38
.
CAPíTULO IV
SOFTWARE DE CONTIR OL
,
4.1
Programa desarrollado en el microcontrolador
En esta sección se dará una breve explicación del programa desarrollado en el
microcontrolador PIC18F4550 , el cual se utiliza Gomo una interfase entre el
sistema y la PC , es decir, de acuerdo a los comandos enviados desde la PC el
microcontrolador ejecutará la acción indicada en el comando la cual puede ser
adquirir una señal física por medio del convertido r análogo/digital , accionar las
válvulas neumáticas a través del circuito de potencia para comenzar a real izar
alguno de los procedimientos involucrados en el sistema o alguna otra acción de
acuerdo al comando a ejecutar.
El programa se realizó en lenguaje C, para lo cual se utilizó el "PIC C compiler" , en
este compilador se puede programar el microcontrolador en un lenguaje de alto
nivel como lo es el lenguaje de programación "C". El "PIC C comp iler" fue
desarrollado para cumplir con las especificaciones del lenguaje ANSI C.
En la figura 4 .1 se muestra el diagrama de flujo del programa principal del PIC , a
continuación se explica el desarrollo del programa :
•
•
1. Inicio: En esta parte se declaran todas las directivas a utilizar ta les como
archivos incluidos como lo son las fu nciones para operaciones
matemáticas, el archivo "#include <18F4550.h>" que contiene declarados
todos los registros internos del microcontrolador , además de las librerías
para configuración del módulo USB, define la resolución a utilizar en el
convertidor análogo/digital , declara los fusibles de programación del
microcontrolador, variables globales a usar en t~1 programa y las constantes
a usar por el preprocesador .
2. Inicializa el Microcontrolador PIC18F4550: En esta parte se configura la
forma en la que trabajaran los puertos , es decir, cuales trabajarán como
puertos de entrada y cuales como puerto de :;alida , configura el módulo
interno del convertidor análogo/digital.
3. Configura el módulo interno USB para ser uf¡ilizado: Esta parte es muy
importante , es aquí donde se mandan llamar las funciones encargadas de
configurar e inicializar el módulo USB; dichas funciones son las siguientes :
la función usb_initO que es la encargada de configurar el modulo interno
para la comunicación USB, esta es la que prepara todo las partes físicas
internas del PIC para que realicen la función ele la comunicación USB; la
39
•
función usb_taskO que es la que distribuye todas las funciones a realizar
durante
la
comunicación
USB
y
finalmente
la
función
usb_wait_for_enumerationO que es la que nos indica cuando la PC ya
reconoció y enumeró al dispositivo .
4. Dispositivo enumerado : Cuando el dispositivo ya fue enumerado y
reconocido por la PC la función usb_wait_for_enumerationO manda un valor
booleano (TRUE o FALSE) a la función usb_enumeratedO de esta forma si
esta función contiene un ''TRUE'' quiere decir que el dispositivo fue
enumerado y se continua con la siguiente parte del programa de lo contrario
tenemos un "FALSE" y el programa se queda esperando a que el
dispositivo sea enumerado por la PC .
•
Figura 4.1. Diagrama de flujo del programa princip al del microcontrolador PIC18F4550 .
•
40
•
•
5. Datos en el Buffer: Una vez que el dispo~;itivo fue enumerado entonces
esperamos a que se envíen datos de la pe al PIC 18F4550, que en este
caso, esperamos que el programa reali,zado en LabVIEW envíe un
comando para que el PIC realice alguna operación . Si no hay datos en el
buffer entonces volvemos a verificar que el PIC continúe enumerado por la
PC es decir que no haya problemas en la comunicación y esperamos que
haya datos en el buffer para continuar con el programa .
6. Comando Válido: Si se recibe un comando que sea válido entonces se
realiza la acción indicada por este de lo contrario se vuelve a la etapa de
enumeración.
7. Transmite información: Finalmente si el dispositivo fue enumerado y se
recibió un comando válido desde la PC y se ha realizado la acción definida
por el comando entonces finalmente se transmiten datos desde el
PIC18F4550 a la PC , este dato puede ser uno de los valores físicos a
monitorear o una señal de validación de que se activaron en forma correcta
las válvulas a la hora de comenzar o detener alguno de los procesos
involucrados en el sistema de crecimiento.
La ejecución de las funciones está previamente definida en una lista de comandos
los cuales se realizan dentro de una estructura die selección como lo es un
"switch" el cual se ejecuta en la parte de validación de comando . En las tablas
mostradas en las figuras siguientes se muestran tocios los comandos empleados
así como las acciones a realizar por el PIC 18F4~i50 de acuerdo al comando
indicado además de la función de cada uno de lo:s pines del microcontrolador
utilizado.
Figura 4.2. Primera parte de la lista de comandos usados en el programa del microcontrolador.
•
4\
Ox14
ON UP1
!))
I
? 2.
Figura 4.3. Segunda parte de la lista de comandos usados en el programa del microcontrolador.
•
4.2
LabVIEW
Cuando se habla de instrumentos de medida , es normal pensar en una carcasa
rígida , en la que destaca su panel frontal lleno de botones, leds y demás tipos de
controles y visualizadores. En la cara oculta del panel están los contactos de esos
controles que los unen físicamente con la circuitería interna . Esta circuitería
interna se compone de circuitos integrados y otros elementos que procesan las
señales de entrada en función del estado de los controles , devolviendo el
resultado a los correspondientes visualizadores del pa el frontal.
Un instrumento virtual es un módulo software que simula el panel frontal del
instrumento que antes se mencionó y apoyándose en elementos de hardware
accesibles por el ordenador (tarjetas de adquisición , tarjetas DSP , instrumentos
accesibles vía GPIB , RS-232 , USB) , realiza una se ie de medidas como si se
tratase de un instrumento físico .
De este modo cuando se ejecuta un programa que funciona como un instrumento
virtual o VI (Virtual Instrument) el usuario ve en la pantalla de su ordenador un
panel cuya función es idéntica a la de un instrumento físico , facilitando la
visualización y el control del aparato .
•
42
.
A partir de estos datos reflejados en el panel frontal , el VI debe actuar recogiendo
o generando señales, como lo haría su homólogo físico.
El control de instrumentación por ordenador no resulta nuevo; incluso el uso de la
PC en sistemas de medida se usaba en los setenta mediante la interfase de bus
IEEE 488 o GPIB (General Purpose Interface Bus). Pero ha sido en los noventa
cundo los procesadores de 16 y 32 bits se han incorporado a equipos accesibles ,
consiguiendo altas velocidades y grandes capacidades de memoria .
Esta popularización de ordenadores de altas prestaciones ha traído consigo un
fuerte desarrollo de potentes paquetes software que simplifican la creación de
aplicaciones .
•
Hasta hace poco la tarea de construcción de un VI se llevaba a cabo con paquetes
de software que ofrecían una serie de facilidades , como funciones de alto nivel y la
incorporación de elementos gráficos, que simplificaban la tarea de programación y
de elaboración del panel frontal , sin embargo , ell cuerpo del programa seguía
basado en texto , lo que suponía mucho tiempo invertido en detalles de
programación que nada tienen que ver con la finalidlad de un VI. Con la llegada del
software de programación gráfica LabVIEW de National Instruments, Visual
Designer de Burr Brown o VEE de Agilent Technology, el proceso de creación de
un VI se ha simplificado notablemente , minimizándose el tiempo de desarrollo de
las aplicaciones .
Cuando se crea un VI en LabVIEW trabajamos con dos ventanas : Una en la que
se implementará el panel frontal (figura 4.4) y otra que soportara el nivel de
programación figura 4.5). Para la creación del panel frontal se dispone de una
librería de controladores e indicadores de diferentl~ tipo y la posibilidad de crear
más, diseñados por el propio usuario.
Cuando un control es pegado desde la librería del panel frontal se acaba de crear
una variable cuyos valores vendrán determinados por lo que el usuario ajuste
desde el panel; inmediatamente aparece un terminal en la ventana de
programación representándolo .
•
•
El nivel de programación del VI consistirá en conectar estos terminales a bloques
funcionales hasta obtener un resultado que deseemos visualizar, por ejemplo un
led de alarma . Los bloques funcionales son iconos con entradas y salidas que se
conectan entre sí mediante cables ficticios por donde fluyen los datos,
constituyendo el nivel de programación del VI.
43
•
•
Add"",
Uler Conttok
SdKt I ControL
"'en
..
Figura 4 .4 Panel frontal
Se puede comparar la ventana de programaclon con una placa de circuito
impreso , donde las terminales del panel frontal se cablean a bloques funciona les
(circuitos impresos) que se interconectan para generar los datos que se desea n
visualizar. A su vez , estos circuitos integrados contienen bloques circuitales
conectados entre sí, al igual que un icono está formado por la interconexión de
otros iconos. La programación gráfica permite diseñar un VI de manera intuitiva ,
vertiendo las ideas directamente a un diagrama de bloques, como se haría sobre
una pizarra .
-{;:l F..ndIons
ScMdI
Mü.sulem~VO
I
i:J
Progr-.11'VNn9
Insttument VO
-..
...th<mm<>
- DOCE)
~P""esung
O"ComrnuntutJOn
Conn«tMty
CDn~ ~
&: 5Mnut. bOn
~ O~ ~
,
D[1]EJ
[DDS
~
I
Stgn. r&:ptHJ.
bp<ou
!i<nng
~
0...0, & u.....
~
,
Addons
• A¡>pIK
F'w ontu
j
VIMOn . nd Mobon
~
_ 00
I:WI
u...l>bf.....
eme mlillmlJ
Il ~
I<l«,. YL.
FPGAlnterl.c:e
, R.".,. G.n<r_
I
Figura 4.5 Diagrama de bloques
.,
44
4.3
•
Programa principal de LabVIEW
En esta sección se dará una breve explicación dE~ 1 software desarrollado en la
computadora , el programa se realizo en lenguaje de alto nivel , solo que en este
caso se utiliza un lenguaje de programación grafiGa como lo es LabVIEW. Se
decidió utilizar este programa debido a que ofrece un ambiente grafico para el
usuario muy agradable y versátil además de permitir la visualización de los datos
de una forma muy eficaz .
En la figura 4.6 se muestra el diagrama de flujo del programa principal de la PC , a
continuación se explica el desarrollo del programa :
1. Inicio: Inicializa el panel frontal de control del pmgrama .
2. Clave: El acceso al programa está protegido por medio de una clave de
usuario , esto con el fin de que personas ajenas al laboratorio llegaran a
hacer uso del sistema .
3. Enumerado: Se espera a que el PIC18F4550 se conecte a la PC para que
sea enumerado y se establezca la comunicación entre ambos .
4. Modo de trabajo : En esta parte el software espera a que el usuario elija la
forma en la que desea que opere el sistema , es decir que elija cualquiera
de los cuatro modos de trabajo (manual , válvulas , bloques, y automático) .
5. Modo Manual : Si el usuario elije este modo de trabajo el sistema opera a
través de un conjunto de switches, este subprograma se explica en la
siguiente sección .
6. Modo válvulas: Consiste en manipular los procesos involucrados en el
sistema en forma virtual desde la PC , se verá con mayor detalle el
funcionamiento de este en la siguiente sección
7. Modo automático : El programa toma por completo el control del sistema
bajo los parámetros indicados por el usuario .
8. Modo bloques: Este es muy similar al au tomático solo que aquí el
crecimiento se realiza por etapas.
9. Ejecuta subprograma: Se ejecuta el modo de trabajo elegido por el usuario .
10. Fin modo : Se detiene el modo de trabajo y se retorna al programa principal.
11 .Stop : Se espera a que se detenga el programé! o se elija de nueva cuenta
otra forma de trabajo .
12.Fin : Termina de ejecutarse el programa .
•
45
•
Figura 4.6. Diagrama de flujo del programa principal de la
..
pe implementado en LabVI EW .
En la figu ra 4.7 se muestra el panel frontal del prograrna pri nci pal de LabVIEW .
"0<' -
SOJI -
..... 0"Tew'lp- zs,.o -
--
o.
~
'IoIoN
..... N
~
•
•
Yi
ContaotCN'
",_0.0 J.tt.. •SQ.O _
Y2
Y3
v.
V.
W
110.0 =
IX
,
"
VT
-
V• • Wt.
-IO.a'
O~
OliO(
...... 11
'.
U;«{.(
((,)O
1I,.",lal ...
YA '
YA>
'entifUe ..
.
,
XOO:oX'
o
"__.ut..
Tanque H
100
,
o
un
-,
I
'
•
•
,
,o.
..:
lO oo.
~OO
,
,
.
•
t
t
•
•
,
!
:
wOO»
Vado ,.,
A....
,. ...... Al
OC:.o
ti...
""U'UI"'\
Figura 4 .7. Panel de control principal.
46
1",...
4.4
Modos de operación del software de la pe:
En esta sección se dará una breve explicación de los programas implementados
para las cuatro formas de trabajo del sistema . Se mostrará de una forma general
los diagramas de bloques desarrollados en estas aplicaciones para comprender
mejor como es que funciona la automatización de los procesos.
4.4.1
..
Modo manual
La forma de operar del sistema en este modo de trabajo consiste en que el usuario
tendrá el control del sistema utilizando un conjunto de switches , por lo que el
operador será quien tome las decisiones en el proceso . En este modo la PC solo
realizará el control de flujo de Hidrógeno, es decir, se enviará el valor de voltaje a
la válvula para que esta abra de acuerdo al porcentaje que se desea establecer en
el flujo de hidrógeno en el sistema y llevará a cabo la adquisición y despliegue de
los valores medidos por los sensores . En la figura 4.8 se muestra el diagrama de
flujo de este subprograma el cual se explica a continuación .
1. Inicio: Configura panel frontal del modo manual.
2. Mensajes al usuario: Se le indica al usuario que lo primero que haga al
iniciar este programa es enviar el comando dE! activación de la fuente que
alimenta los switches con los que se trabajan en esta forma de
funcionamiento .
3. Adquisición de datos: En esta parte se realizél la adquisición de todas las
señales a monitorear a través de los sensores.
4 . Activar switches: En esta parte se espera a que se oprima el botón con el
cual se envía el comando para la activación de los switches.
5. Purga On : Se activa la válvula de purga cuando se hace vacío al sistema y
cuando este se comienza a llenar de hidrógeno una vez que se alcanza la
presión de 15 PSI Y se abre la válvula 8 para bajar la presión dentro del
sistema , se desactiva la purga por medio del botón de purga off.
6. Purga Off: Desactiva purga .
7. Porcentaje de flujo : Envía el valor deseado de apertura de la válvula para el
flujo de hidrógeno , es decir, envía una señal digital de O a 255 cuyo valor
se despliega en el puerto B del PIC18F4550 el cual está conectado a un
convertidor digital análogo , la señal de salid:3 de este se conecta a la
válvula de apertura de flujo .
8. Stop: Se detiene este subprograma y se regresa al programa principal.
47
Figura 4 .8. Diagrama de flujo del subprograma: modo manual.
En la figura 4.9 se muestra el panel frontal de este programa .
....
~
T.....
T.",,.
E.-1 • •
I."t • •
.
H...... Ext • •
•
o ""A' ''~
10D0~
fh.jo4e HWr • •
. .,
¡?... '.
'1)1)
_ JOO
6QO
"rs'
Hu....
,nt.,.
iOo
Vacto J e t
l.'
1'"
,.
"
100 ",.
a
I
I
".
~
,
.
)
J
..... "
AW
'OJU. \II
....r'1j....-
~
rM\o1A AYtlr' " " , u, ........
"
.
~AI"UI"'Uf
11 1IIf'
," ..... ,t,.. , .... 1. . M,,",
tl!
1"]
,
l \'"
11..-'., ...
f"'lI
.
-,
,
r. oo.,
I
Vatio ......
o
I
C( ',#
((.C(oc
Ho_lm."
Figura 4.9. Panel frontal del modo manual.
48
.
4.4.2
•
,
•
Modo válvulas
Consiste en manipular el conjunto de válvulas con las que se realizan los procesos
de vacío y flujo de hidrógeno desde la PC pero sin dejar que la computadora
tome el control por completo del proceso , es decir, se implementan switch es
virtuales que son operados desde la computadora . Además como en el modo de
funcionamiento anterior en este también se realiza la adquisición de las variables
físicas medidas por los sensores y el control de flujo de Hidrógeno. En la fi gura
4.10 se muestra el diagrama de flujo de este subprograma el cual se explica
brevemente a continuación y en la figura 4.11 se ilustra el panel fronta l de este
programa.
1. Inicio: Configura panel frontal del modo válvulas.
2. Desactivar Switches físicos : se envía el comando para ind icarle al
microcontrolador que envíe la señal de desactivación de los switches
físicos , esto con el objetivo de evitar posibles conflictos a la hora de utilizar
el sistema desde la PC , es una forma de seguridad , se asegura que no se
activen las válvulas neumáticas con los switches físicos cuando estas se
activan por medio del microcontrolador PIC18F4550 por medio de la etapa
de potencia.
3. Adquisición de datos: En esta parte se real iza la adquisición de todas las
señales a monitorear a través de los sensores.
4. Activar válvulas: Aquí el programa espera a que el usuario active alguna de
las válvulas o varias (válvula uno , dos , tres , cuatro , cinco, ocho , UP1 y UP2)
para comenzar cualquiera de los procesos involucrados en el crecimiento ,
dependiendo de la etapa de crecimiento serán las válvulas que se utilicen ,
vacío Jet (válvulas usadas: cuatro y cinco) , vacío con las bombas de
Adsorción(válvulas usadas: cuatro , cinco , UP1 o UP2) , flujo de hidrógeno
(válvulas usadas: uno , tres , cinco y ocho) y en la parte de crecimiento se
utilizan las mismas que en el flujo de hidrógeno .
5. Purga On : Se activa la válvula de purga cua ndo se hace vacío al sistema y
cuando este se comienza a llenar de hidróg l~no una vez que se alcanza la
presión de 15 PSI Y se abre la válvula 8 para bajar la presión dentro del
sistema se desactiva la purga por medio del botón de purga off.
6. Purga Off: Desactiva purga .
7. Porcentaje de flujo : Envía el valor deseado de apertura de la válvula para el
flujo de hidrógeno , es decir, envía una señal digital de O a 255 cuyo valor
se despliega en el puerto B del PIC 18F4550 el cual está conectado a un
convertidor digital análogo , la señal de salida de este se conecta a la
válvula de apertura de flujo .
8. Contacor: Se manda comando para encendelr o apagar el horno .
9. Stop: Se detiene este subprograma y se regresa al programa principal.
49
•
Figura 4 .10. Diagrama de flujo del subprograma: modo válvulas.
,
--
'urtles4«
¡""I'
~ _\1P
~H. . . .
Ut~
va
VI
V4
V5
VI
i:i:; ~
VT
•
T......-N
--
_odoJ<t.
.C(
"
"
VAl
UP2
100
"
\O
,
n~)
.'
,
.
()'" ·lí.
V.,UO ...,
I
•
"
((', JI
lIu'" b,.,.
.. ..
(
,!'
•
.
,
(t{1)
...
I
•
•
•
t
., .I
1,IJ.l
l),l}Jl'l
ti...... Inl.,
Figura 4 .11 . Panel fronta l del mod o válvulal:.
•
t
{);l{I«
1\,,.11
.'
. ¡
~
.
....
O
VAl
..
:-. ~u
O
IittIU. bcu.
TanqweH
......
Int~
50
•
4.4.3
•
•
•
Modo bloques
Esta forma de trabajar el sistema es muy similar a la automática que será
explicada en la siguiente sección . La diferencia entre está y la automática es que
el usuario podrá realizar el crecimiento por etapas, es decir, puede realizar cada
uno de los procesos en forma independiente, esto es, no están enlazados todos
los procesos, por ejemplo, abra ocasiones en las que no se necesite llevar a cabo
todo el proceso, como lo es aplicar primero vacío tanto con la bomba Jet como
con la Bomba de Adsorción después hacer fluir hidrógeno para purificar el sistema
y que la humedad en el sistema baje a un valor óptimo de acuerdo a los cálculos
del operador para finalmente hacer el crecimiento aplicando el diagrama de fases
establecido para el crecimiento que se desea reali,zar. Esto es lo que se debe
realizar cuando se hace un crecimiento , pero hay ocasiones en las que no se
realizará un crecimiento como tal si no que solo serál necesario hacer por ejemplo
fluir hidrógeno durante todo un día , probablemente porque así lo requiera el
experimento , o solo hacer vacío al sistema pero no necesariamente con los dos
tipos de bomba si no solo con una bomba . Es por eso que se implementa esta
forma de trabajo , porque aquí la computadora es quien toma el control del sistema
pero se pueden realizar los procesos de uno por uno de acuerdo a las
características del crecimiento que se quiere realizar y no necesariamente hacer
todo el proceso si no es necesario. En la figura 4.12 se muestra en una forma muy
breve el diagrama de flujo de este programa y en la figura 4.13 el panel frontal de
este.
1. Inicio: Configura panel frontal del modo bloques.
2. Espera proceso : el programa espera a que el usuario configure los
parámetros de crecimiento tales como las temperaturas de saturación ,
homogenización , crecimiento , humedad interna deseada , porcentaje de
flujo de hidrógeno, valor de vacio con la bomba jet a alcanzar, etc. para que
posteriormente se elija el proceso a realizar.
3. Desactivar Switch es físicos: Se envía el comando para indicarle al
microcontrolador que envíe la señal de desactivación de lo switches físicos ,
esto con el objetivo de evitar posibles conflictos a la hora de utilizar el
sistema desde la PC , es una forma de seguridad , que impide que se activen
las válvulas neumáticas con los switches físk;os cuando estas se activan
por medio del microcontrolador PIC18F4550 a través de la etapa de
potencia .
4 . Configuración : Al oprimir este botón se despliega una venta en la cual el
usuario define todos los parámetros de crecimi,ento deseados.
5. Vacío Jet: Se da comienzo al vacío utilizando la bomba Jet.
6 . Vacío Adsorción: Vacío con las bombas de adsorción .
7. Flujo de Hidrógeno : Se purifica el sistema y SE~ espera llegar a la humedad
deseada para comenzar el crecimiento .
8. Crecimiento: Se implementa el diagrama de fases a través del control de la
temperatura del horno.
9 . Stop: Se detiene este subprograma y se regresa al programa principal.
51
•
Figura 4.12. Diagrama de flujo del subprograma : modo bloques.
T...Po
In..
~wrifioacior
·~ _ _U¿l'Hft!I_
..
l(~
VT
•
..._---
--
10(
lo)
,
,
5C
.
~}v)
,..,. ..
o
HflJIWL UrW..
-
•
oc oc
(
OC XX
VAl
<
VA2
~
I
•
x
v..,•• 1..-,
x).:
L..:'JiP_ _____....___.J.ET.q¡, ATII
\(
•
l.;
.1.
l' I T
,,. .. )
tltJITt.lnt.,
-
Figura 4 .13. Panel fronta l del modo bloques .
..
(.)(¡i)
Ilum. laf.,.
52
4.4.4
•
•
Modo automático
En esta forma de operar, el programa si toma por completo el control del sistema
para realizar el crecimiento de acuerdo a las especificaciones predeterminadas por
el usuario . Una vez que han sido configurados los parámetros de crecimiento el
software se encarga de realizar todo el proceso , tal como se mencionó en la
sección anterior en este programa se enlazan todos los procesos para realizar el
crecimiento que es la gran diferencia con el modo de trabajo anterior. En la figura
4.14 se muestra el diagrama de flujo y en la figura 4.15 el panel frontal de este
subprograma .
•
1. Inicio: Configura panel frontal del modo automático.
2. Desactiva Switches: Se envía el comando para indicarle al microcontrolador
que envié la señal de desactivación de los switches físicos , esto con el
objetivo de evitar posibles conflictos a la hora de utilizar el sistema desde la
PC , es una forma de seguridad que impide que no se activen las válvulas
neumáticas con los switches físicos cuando I~stas se activan por medio del
microcontrolador PIC18F4550 a través de la etapa de potencia .
3. Configuración : Al oprimir este botón se despliega una venta en la cual el
usuario define todos los parámetros de crecimiento deseados .
4. Vacío Jet: Se da comienzo al vacío utilizando, la bomba Jet, si este proceso
se realiza de forma correcta , es decir, se alcanza el valor de presión
deseado entonces pasa a la siguiente etapa de lo contrario despliega un
mensaje de error y termina el proceso .
5. Vacío Adsorción: Vacío con las bombas de adsorción , al igual que la
anterior etapa si esta se realiza de forma correcta procede a realizar el flujo
de hidrógeno .
6. Flujo de Hidrógeno: Una vez que se ha realizado de forma correcta el vacío
en el sistema se procede a purificar este y St~ espera alcanzar la humedad
deseada para poder comenzar con la etapa de crecimiento .
7. Crecimiento : Se implementa el diagrama de fases a través del control de la
temperatura del horno .
8. Termina experimento : Se espera a que la temperatura del sistema sea de
80 oC para poder comenzar a cerrar válvulas y poder detener el flujo de
hidrógeno ya que ha esta temperatura ya es s(eguro detener el flujo .
9. Stop : Se detiene este subprograma y se regresa al programa principal.
53
..
•
..oc_
r ......
fleI:e . oc
Tanq. . H
,~-
~ ..... H ' -
.....
~ _U'H
~
.,
Y.
.......
YO
~
YT
•
lnI~
--
CJ
Hwnt!..fJrte.. ..
T_ N
-
" ..kll«.~
'C
YA'
""
CJ
JET
OTM
,..¡. lotT
Figura 4.15. Panel frontal del modo automático .
•
54
•
CAPíTULO V
RESULTADOS
5.1
Pruebas Realizadas
En este capítulo se muestran los resultados obtenidos durante la realización de las
pruebas para la verificación del correcto funcionamiento del sistema , se depura el
software de control implementado en LabView y se corrobora el correcto
funcionamiento de las tarjetas de control basadas en el microcontrolador
PIC18F4550 .
En esta sección se muestran algunas de las gráficas y tablas que se obtuvieron de
los datos almacenados que fueron adquiridos d rante la realización de las
pruebas así como también se presentan los panelE!S frontales de control de los
cuatro modos de trabajo publicados en la Web , ésta es una herramienta que
proporciona LabVIEW para el control y monitoreo dla paneles frontales en forma
remota. En párrafos siguientes se ofrece una explicación más detallada de esta
aplicación del software de control.
Hay que recordar que uno de los objetivos de la automatización del sistema es el
de recaudar y guardar información de los parámetrmi físicos presentes durante la
realización de un crecimiento , esto con la intención de poder analizar con detalle
su comportamiento durante todo el experimento y cómo es que afectan a la
realización del crecimiento , para de esta forma , tratar de realizar los experimentos
bajo las mejores condiciones posibles.
Lo primero que se verificó de la automatización del sistema fue el correcto
funcionamiento de las tarjetas de control ; básicamente las pruebas realizadas
fueron encaminadas a la apropiada adquisición de las variables monitoreadas por
los sensores, el adecuado accionamiento electrónico de las válvulas neumáticas
así como el de constatar que las tarjetas de control :;oportaran cargas de trabajo
de 24 horas o más, para esto se realizaron varias pru,ebas en las cuales se dejaba
el sistema funcionando a máxima carga durante dos o tres días enteros . En cuanto
al accionamiento de las válvulas éstas se activaban desde la PC o en su caso en
forma manual a través de los switches , ello con el fin de constatar que la lógica
de accionamiento era la apropiada .
En lo que atañe a la apropiada adquisición de las variables físicas se tuvieron
varios problemas ; la temperatura interna que se adquiere por medio del Eurotherm
818 vía puerto serie (RS232) , en una de las pruebal; realizadas , envió una mala
lectura , la cual provocó que entraran las condiciones de seguridad del software de
control (dicha condición de seguridad consiste en que si alguna de las
55
•
temperaturas del crecimiento , tales como disolución , saturación y crecimiento
suben por encima de un rango predefinido entonces el sistema se apaga , lo cual
indicaría que el control de temperatura está fallando y no es factible que se realice
el experimento por condiciones de seguridad) . El error consistió en que en menos
de un segundo se tuvieron lecturas con diferencia entre cada una de 100 oC, dicho
evento indica una gran falla , ya que por más corriente que se inyecte a la
resistencia del horno es imposible que la temperatura suba 100°C en un segundo .
Este error se corrigió colocando una condición en la cual el programa no continúe
su ejecución si entre lectura y lectura hay una difere ncia de 10°C (para evitar un
ciclo infinito si se presentara una lectura errónea constante se metió la condición
de que el ciclo se ejecutara un número finito de veces por lo cual si el error
continua el programa se detiene) .
•
En lo que respecta a las otras seis variables físicas que son adquiridas por medio
del convertidor análogo digital del microcontrolador y que son enviadas a la PC a
través del puerto USB también se presentó un problema en su obtención y
muestreo ya que en varios de los ensayos realizados presentaban el problema de
que se corrían en una posición, este problema también se presentaba cuando se
hacia el cambio de un modo de trabajo a otro modo de trabajo. Al igual que el error
anterior esto provocaba que entraran las condiciones de seguridad en momentos
en los cuales no se requerían . Este problema se resolvió colocando un
identificador para cada una de las variables leídas, de tal forma que en LabVIEW
se visualizaran los datos solo cuando estos se adquirían en forma correcta , es
decir, cuando la señal solicitada al PIC18F4550 por el programa realizado en
LabVIEW tuviera el identificador apropiado , era cuando se permitía su
visualización y adquisición .
Además de estos problemas de software que se pres,entaron en la adquisición de
las variables se tuvieron otras dificultades para poner a punto el programa de
control, estos dilemas se debieron más a errores de programación los cuales
fueron corregidos en su momento.
En lo que respecta a las condiciones de seguridad estas se realizan con el objetivo
de asegurarnos de que el proceso se haga bajo un ambiente de confianza y tener
la certeza de que si se presentara alguna anomalía en el funcionamiento del
sistema este se detendrá proporcionando la protección del usuario y el sistema .
Las condiciones de seguridad que se implementaron fueron las siguientes :
•
•
•
'.
Cuando la presión dentro del sistema llegue él 15 PSI se abre la válvula
ocho , esto se hace solo cuando se llena el sistema de hidrógeno .
Si la presión interna es igual a 16 PSI cuando se está fluyendo hidrógeno
se detiene el proceso esta misma condición se implementa en la parte de
crecimiento solo que aquí lo primero que se hace es mandar a cero el set
point para que comience a enfriarse el horno .
Si se hace cero el flujo de hidrógeno también se detiene el experimento .
56
•
•
•
•
Otra de las condiciones de seguridad implementadas fue la de apagar el
sistema si la temperatura de control (disolución , saturación , crecimiento)
sube por encima de un límite establecido .
La temperatura adecuada para apagar el sistema una vez que se ha
realizado el experimento en forma correcta es de 60°C a esta temperatura
ya se puede abrir el sistema para retirar las muestras e introducir nuevo
material según sea el caso.
Hay que mencionar que durante la realización de las pruebas (estas
se
comenzaron a realizar desde mediados de mayo) hubo varias ocasiones en las
que entraron las condiciones de seguridad con lo cual se pudo constatar de una
manera no muy grata que estas funcionan.
A continuación se muestran solo algunas de las nráficas obtenidas durante la
realización de las pruebas.
•
La figura 5.1 muestra datos recopilados durante una prueba realizada en modo
manual. Las gráficas que proporcionan mayor información del experimento son la
de temperatura interna , y humedad interna la cual es expresada como la
temperatura de rocío , ya que en estas se puede ver cómo es que se afecta a la
humedad en el sistema , cuando es introducido el aterial , entra aire al sistema ,
cuando comienza el flujo de hidrógeno la humedad aumenta drásticamente y poco
a poco comienza a disminuir conforme se hace fluir hidrógeno en el sistema tal
como se puede ver en la figura 5.1. Se puede obserlfar que cuando la temperatura
interna del sistema empieza a subir la humedad también aumenta esto se debe a
que al aumentar la temperatura la velocidad de d'esorción de las moléculas de
agua aumenta. El perfil de temperatura realizado en este experimento consiste en
elevar la temperatura a 600 oC (disolución) se malntiene veinte minutos en este
valor, se baja a 550°C (saturación) y se mantiene quince minutos después se lleva
a la temperatura de crecimiento que en este caso es de 540°C y se deja diez
minutos para que se estabilice , una vez transcurrido este tiempo se procede a
implementar una rampa controlada de medio grado por minuto hasta llegar a
530 °C en este punto se mantiene cinco minutos para finalmente poner el set point
a cero y de esta forma termina el ensayo , esto se puede observar en la gráfica de
temperatura de la figura 5.1 .
•
•
57
Minutos
Temp.lnterna.
1
~
I
L
500
400
"
98
126
154 182 210
I
200
\
\
I
J
O
o
28
56
-20
\
-30
\
L
300
100
•
70
-10
600
;
56
O
700
v
28
1)
70
98
Minutos
v
..........
126 154 182 210
...;e
~
-40
-50
-60
-70
\
A
--.J
-80
-90
Humedad Interna.
Figura 5.1 comportamiento de la humedad interna y la temperaturéI intern a durante el procedimiento.
•
La figura 5.2 muestra datos recopilados durante una prueba realizada en modo
válvulas. En este caso se muestran las gráficas de temperatura interna , flujo de
hidrógeno y humedad interna . El perfil de temperatura realizado en este
experimento es básicamente el mismo que el anterior, se eleva la temperatura a
550 oC (disolución) se mantiene veinte minutos, se baja a 500°C (saturación) se
mantiene quince minutos para después bajar la temperatura del horno a la
temperatura de crecimiento , 490°C, permanece diE~z minutos en este valor, para
después implementar una rampa controlada de medio grado por minuto hasta
llegar a 480°C, es en este momento donde se realizan los movimientos para iniciar
el crecimiento epitaxial sobre el substrato , una vez que se tiene la temperatura de
530 oC se mantiene cinco minutos para finalmente bajar el set point a cero y
terminar el experimento, esto se puede observar en la gráfica de tempe ratura de la
figura 5.2. Se puede observar que la humedad interna no presenta el rápido
aumento inicial como el que se ve en la Fig . 5.1 esto se debe a que el sistema no
se abrió al iniciar el ciclo . La rápida disminución del flujo que se observa al inicio
de la gráfica se debe a que en esos momentos el tubo de cuarzo se está llenando
con hidrógeno a la mayor velocidad de flujo posible (determinado por las
diferencias de presión externa e interna) durante el llenado del tubo el controlador
de flujo solo funciona como medidor.
58
•
Minutos
O
43
52
62
76
o
600
-10
500
..
.g
.
i
1:)
400
u
-20
u
Temp.lnterna.
89 117 127 132
-30
300
t!
1:)
200
-40
100
-50
O
-60
•
-80
-90
-
J
\-,
_J
O
"-
-70
/
/
/
--
/
-
43
52
"-
62
76
89 117 127132
Minutos
Flujo de Hidrógeno.
Humedad Interna.
60
50
JI. 40
l!
e
30
~
~
I
20
10
O
O
•
43
52
62
76
89 117 127132
Minutos
Figura 5.2 Comportam iento de la humedad interna , flujo de hidrógeno y t'3mperatura interna durante el experimento.
•
La figura 5.3 muestra datos recopilados durante una prueba realizada en modo
automático. En este caso se muestran las gráficas de temperatura interna y vacío
con la bomba Jet. El perfil de temperatura realizado en este experimento consistió
en elevar la temperatura a 550 °e (disolución) se mantiene veinte minutos, se
0
baja a 500 e (saturación) se mantiene quince minutos para después bajar la
temperatura del horno a la temperatura de crecimiento , 490 o e, permanece diez
minutos en este valor, para después implementar una rampa controlada de medio
grado por minuto hasta llegar a 480 o e, es en este momento donde se realizan los
movimientos para efectuar el crecimiento epitaxial sobre el substrato , una vez que
se tiene la temperatura de 480 °e se mantiene cinco minutos para finalmente bajar
el set point a cero y terminar el experimento, esto s,e puede observar en la gráfica
de temperatura de la figura 5.3 .
•
59
Temp.lnterna.
-
600
500
.
u
o
400
."
300
"
200
e
/
100
O
/
\
\.
'\
/
/
-./
~
16
14 o-.
12
10
8
6
4
2
O
o
•
Vacío Jet.
20
48
57
67
Minutos
81 112 122
o
-
~
~-
~--
~
./'"
~
/~--
""""
2
4
6
8
10
12
14
16
19
Mmutos
Figura 5.3 Comp ortam iento de la temperatura interna y vac io con la bomba jet durante el experimento.
La figura 5.4 muestra datos recopilados durante una prueba realizada en modo
bloques . En este caso se muestran las gráficas de humedad interna y vacío con
las bombas de adsorción . Estas gráficas ilustran los comportamientos de estas
variables cuando se hace vacío al sistema , hay que sE~ñalar que al día siguiente de
que se hizo vacío al sistema se realizó un crecimiento , las gráficas e imágenes del
crecimiento se muestran más adelante.
•
•
>.
En estas graficas se puede ver que al utilizar las dos bombas de adsorción se
logran vacíos muy buenos llegando a valores cercanos a los 40 mili Torr, en la
gráfica de la izquierda se puede ver cómo es que el valor del vacío comienza a
disminuir hasta llegar a un punto en el cual las bombas de adsorción están
saturadas, se puede ver como alrededor de 40 minutos se mantiene un vacío muy
bueno después de este tiempo la presión comienza a elevarse hasta alcanzar el
valor de inicio esto se debe a las pequeñas fugas presentes en el sistema la
diferencia es que ya se ha eliminado una gran cantidad de moléculas de oxigeno
del sistema . En la gráfica de la derecha se muest a el comportamiento de la
humedad interna , de acuerdo al vacío generado al sistema , se puede ver cómo es
que la humedad disminuye conforme el vacío mejora , hay un comportamiento muy
interesante entre los 15 y 89 minutos de iniciado el eJ<perimento , este consiste en
dos picos de valores muy marcados en la gráfica . Este comportamiento se debe al
cambio de bomba con la que se realiza vacío , es necesario cambiar de bomba ya
que como se mencionó en párrafos anteriores hay un momento en el que las
bombas se saturan por lo que es conveniente cambiar de bomba una vez que
ambas están saturadas termina el vacío con ellas.
60
Vacío Adsorción
t
~
800
700
600
500
400
300
200
100
\
\
\
o
o
..--
"
O
Minutos
J
15
89
I
f
,"
~
Minutos
89
165 242 319 395 433
-10
.
165 242 319 395 433
1!)
O
v
o
~
f
"
-20
-
-30
--
-40 ¡----50
-
-60
-70
-80
-90
~J\...
~
Humedad Interna .
Figura 5.4 Comportamiento de la humedad intern a y vacío con las bombés de adsorción durante el experimento .
•
Como se mencionó anteriormente las imágenes siguientes muestran el
crecimiento que se realizó , este se hizo al día siguiente en el que se le hizo vacio
al sistema y se dejo fluyendo hidrógeno en el sistema .
En la figura 5.5 se muestran las gráficas de humedad interna , temperatura interna
y humedad externa así como la imagen del creci miento logrado. El perfil de
temperatura implementado fue el siguiente : temperatura de disolución de 600 oC
se mantiene alrededor de veinte minutos en esta temperatura , se manda la
temperatura de saturación de 550 oC se mantiene quince minutos , se baja la
temperatura del horno a la temperatura de crecimiento que para este crecimiento
es de 540 oC y se espera a que se estabilice durante diez minutos , para después
implementar una rampa controlada de medio grado por minuto hasta llegar a 530
oC, que es en esta parte donde se realizaron los movimientos para hacer el
crecimiento, finalmente se mantiene la temperatura en 530 grados durante ci nco
minutos y se manda el set point a cero grados para dar por terminado el
crecimiento .
•
61
•
Minutos
o 27
54
Temp.lnterna .
. . . . . .
81 106 132 156 181 196
700
-66
v
...
1
~
-68
v
-70
~
...o
600
500
400
I! 300
~
200
100
-72
-74
O
-76
o
27
54
-78
81 106 132 156
181 196
Minutos
-80
-82
Humedad Interna.
Humedad Externa.
Ji.
lO
e
•
~
i.
51
50
49
48
47
46
45
'--
o 27
54
....
81 106 132 156 181 196
Minutos
Figura 5.5 Comportam iento de la humedad intern a. temperatura interna y humedad extern a dura nte el crecimiento.
•
•
En la figura 5.6 se muestran las gráficas de humedad interna , temperatura interna
y temperatura externa así como la imagen de otro crecimiento realizado . En esta
ocasión mostramos el comportamiento de las variables en el proceso que se llama
recocido de la muestra crecida , lo que se pretende c'on el recocido es lograr una
uniformidad en las capas epitaxiales crecidas de la muestra dicho recocido se
realiza a una temperatura menor a la temperatura de disolución , en este caso , el
recocido se realizó a 550 oC durante tres horas y media .
62
•
lempo Exte rna
20
:: w,.....lIIIiIIIu-.-_...
'fIII7• •",....
>00
\
("
¡ :~
¡U
"
lempoInterna.
600
:
o 200
;
100
o
o
46
55
64
..
72 113
"".,.
o
182 250 268
o
J6
55
64
n
113
182 250 268
MlftUtos
Mlnut ••
o
46
55
¡4
n
113
182 250268
·10
•
" 0
" 0
~~~ j :1
·70
·10
'--.r"-..
---
.'10
Hu meda d Interna.
Figura 5.6 Comportamiento de la humedad intern a, temperatura interna y te mpl~ratura externa durante el recocido de tres
horas y media de la muestra .
Una de las opciones que ofrece la automatización del sistema es la de poder
visualizar ó en su caso manipular el proceso en forma remota , es decir, gracias a
las herramientas que proporciona LabVIEW es posible publicar los paneles
frontales de los diferentes modos de trabajo en páginéls Web para poder acceder a
estos por medio de internet. Los paneles frontales publicados en las páginas Web
se muestran en la figura 5.8 y la página Web del pro!)rama principal desde donde
son llamadas las otras páginas a través de los links correspondientes se muestra
en la figura 5.7. Hay que mencionar que solo es posible conectarse a estos
paneles en forma remota dentro de la red de la UASLP po r cuestiones de política
de la misma .
Liq uid ¡'hase Epi luy
'"
.....
..
~' --'"
Fig ura 5.7 Panel principal publicado en la \I\Ieb.
•
63
c)
:J
'-: j
.
~
........
•
'-
-
.-o- v
• • - .-.
._
...
.;-
1
---, -
-hnpllcompulllCO
hnp:/IcompulllCO M html
~J
-1
f-
-
hnp:llcompulllCO B.html
•
-
_.- _~ I-
V.html
_.-_~ - _.- = .-
.....
"-::-".'=
:
I
-..
•
.
,
http://compulIIC(LAJumJ.
Figura 5.8 Paneles frontales de los modos de trabajo put,lícados en la Web .
Además de esta opción LabVIEW también proporciona la herramienta para crear
la aplicación y el ejecutable del programa implementado en esta plataforma de
programación. De esta manera no es necesario el tener instalado LabVIEW solo
basta con crear el instalador y la aplicación y de es.ta forma es posible instalar
nuestra aplicación en cualquier máquina y nuestro programa estará funcionando .
El icono de nuestro programa se muestra en la figura !i.8.
· bin
•
· licerl se
· supportfiles
LJ nidist,i,d
Liqui,d Pha,se
Epitaxy, exe
setup.e:xe
.'
setup.ini
Figura 5.8 De izquierda a derecha se muestra el icono creado para la aplicación del programa de control yel ejecutable
para la instalación del programa en el sistema d ,~ la PC .
•
64
CAPíTULO VI
CONCLUSIONES
6.1
Conclusiones
Este trabajo de tesis se implementó utilizando la plataforma de programación
LabVIEW desarrollando en está el programa de control del sistema de crecimiento
de cristales. De esta forma se hizo posible automatizar los procesos involucrados
en el crecimiento de cristales por la técnica de epitaxia en fase líquida .
Para la automatización del sistema se fabrico una télrjeta de control basada en el
micrcocontrolador PIC18F4550 de Microchip , dicha tarjeta incluye la etapa de
potencia para la activación de las válvulas , encendido del horno así como la
adquisición de las señales analógicas medidas por los sensores instalados en el
sistema .
Finalmente se realizaron una gran cantidad de pruebas para verificar el correcto
funcionamiento del sistema , las pruebas realizadas ayudaron a depurar el
software de control para de esta manera obtener los resultados esperados , el
sistema está automatizado y funciona de acuerdo a las necesidades del usuario el
cual configura el sistema en función de las características del experimento que
desea realizar.
•
El sistema está siendo usado para la realización de crecimientos y recocidos de
materiales dentro del laboratorio de crecimiento de cristales del Instituto de
Investigación en Comunicación Óptica .
65
•
6.2
Trabajo a futuro
En el actual trabajo de tesis no se han automatizado aun los movimientos que se
realizan para la deposición del material sobresaturado en el substrato para el
crecimiento epitaxial de semiconductores, el automcltizar estos movimientos sería
una gran aportación ya que se eliminarían por completo las vibraciones presentes
en el sistema durante la realización del experi ento además de tener la
posibilidad de hacer crecimientos más controlados.
•
Otra de las actividades a realizar es la referente a los puntos de líquidus , el poder
controlar la medición de los puntos de líquidus es tclmbién de gran ayuda ya que
este es un proceso muy lento y tedioso para el usuario . Se hace la medición de los
puntos de líquidus cuando se requiere conocer la temperatura a la cual los
cristales utilizados en el experimento se disuelven ¡por completo en el solvente ,
esto garantiza mejores resultados ya que se conoce la temperatura exacta a la
cual los cristales están totalmente disueltos y no hay partes solidas presentes en
la solución.
Finalmente otra de las opciones a trabajar es la de automatizar el pesaje de los
materiales utilizados en el crecimiento de cristales dE~bido a que es aquí donde el
investigador tiene mayores dificultades esto debido a las proporciones tan
pequeñas en peso y medida de los materiales utilizados .
..
66
Apéndice A
Programa de Control del Microcontrolador PIC18F4550.
•
•
1 1/1'//
11/ / 11I I1
/ 111/ 11
11/ 1
3:.:-,e¡';,,"e',"33,=
111I
11/1 b :::~n~ :.~ ~a=:.~~ 3~ des=r:.be ~: ~=:=rarra d~ :o~~ro: para ~_
IIII S:'3~err~ de =rec:.rr~e~~c de -r:.s~a:es : ~~:.:~zandc :a =crr~~:.=a=:.c~
1 III "53 e~ mcde b~ :~ dese~=ade~ad~ e: :~a: ~raba:a a ~~a ~e:c=:.dad
11II r'e ~=a!:sfe=e!:c.:.a de da~=s de 'F" !'J::ps,
11 1
111 ~ spe=a re::::b.:.r 5 b~~e3 de :a F:, ~: pr:.rrer by~e es e: =:rra~d=
1
~: c~a: :e .:.~d:=a a: F:::~F~55: q~e a=::=~ desarrc::ara.
111/ Ya sea adq'_:,s::':'é::: ::le 3e:-.a:es é,:-,a::'q::as e :a acc_·'a::.:~ ::le
11/ :"'as "I·a ':"- r~':"a3 de ::c:::.:-:-:' ~e: 3:'3:.~rr5.
111
111
11/1
1111 E_ P e 3 : rr.p:err,e::~e e:-,·':.a ::3 da~:s : :=rr.a:-,~i ~3 depe,.:::1:e:-,::i: ::le
1 11 :.a acc.:..c=-: 'I'".... e ':"e :.!':d:..-:c :'a F: q''';'~ =~a:':za.=¿ ..
11/1
1111
1111
1111
111/
'1
/
1
:: ::-::;,s:'F
/1 / :: :.:: .: =:; :' -: t =a :' :. '':' 9 .. :..:...: e . "'; a. -9 :. t: . rr.x
/11 ::,:""cf 9o:-.ft~'a:-.cc. :::;=rr,.rr~x
1 /
I
:: l::C f
111
II
30:-.' ~!1:::~rr.a:.: . ': crr
1/11/11
111 I1
•
67
•
Ifindude <18F4550.h>
#device AOC = 10
Iffuses H5PU.NOWOT, OPROTECT,NOlVP, OOEBUG,USBOIV,PU5,CPUOI'Il,VREGEN
use delay(doc =48000000)
l/Una in51rucclon en 0.2us
Ifinclude <math.h>
I/Ubreria e51andar I)peraciones matematicas
Ifdefine USB_HID_OEVICE
FALSE
Ifdefine USB_EP1_TX_ENABLE USB_E ABlE_BUU<
Ifdeflne USB_EP1_RX_ENABlE USB_E ABLE_BUU<
1/ o se trata de un dispositivo HID
l/Se habilita EP1(EndPointl) for IN bul transfers
/ISe habilita EPl(En:lPointl) for OUT bul transfers
"define USB_EPl_TX_SIZE 64
l/Memoria a reservar para el endpolnt tx (Inplpe)
Ifdefine USB_EP1_RX_SIZE 3
l/Memoria a reservar para el endpolnt rx (Outplpe)
"indude <plc18_usb.h>
l/Carga de las librerías USB.
Iñndude <usb_desc_scope_alt.h>
l/carga el header con las definiciones.
"indude <usb.c>
IIDeclara constantes a utilizar por el preprocesador
"define comand
usb_indataIO)
#define data
sb_indatall)
#define resolucl on
0.004848
#define val_l
PIN_D7
#define val_2
PIN_D6
Ifdefine val_3
PI _05
#define val_4
PI _04
"define val_S
PI
IIdefine val_8
PIN 02
- 03
#define ups_senal PI _E2
lIdefine ups_cont PI _El
lIdefine horno
PI _C2
lIdefine neumatlca PI _C6
lIdefine purga
PIN_Cl
lIdefine modo
•
lIdefine led
PI
CO
PI _A4
Iluse fa51_io(A)
Iluse fa51_lo(B)
lfuse fa51 _io( C)
lfuse fa51_lo(D)
#Use fast_io(E)
Ilbyte PORTA =OxOFao
"byte PORTB = OxOF8l
"byte PORTe = OxOF82
#byte PORTO = OxOF83
#byte PORTE = OxOf84
68
•
/ /d eclaracion de variables autilizar dentro de l programa
char Datos(S]
={O OOOOOOO};
char comando(S]
={O OOOOOOO};
intS i, valyurga;
int16 average;
float celsius,humedad, flujo, vacio,absorcion,inte rna;
/ /Fundon utilizada para configurar los puertos del microcontrolador
void inicializar(void)
{
•
•
set_tris_a(ObOO10llll);
output_a(OxOO);
/ / RAO,1,2,3,5 Analog Input
set_tris_b(ObOOOOOOOO);
output_b(OxOO);
/ / Puerto B como sal ida
set_tris_c(Ob01OOOOOO);
output_c(OxOO);
/ / Puerto C como salida(Exep :o RC6)
set_tris_d(ObOOOOOOOO);
output_d(OxOO);
/ / Puerto D como salida
set_tris _ e (ObOOOOOOO1);
output_e(OxOO);
/ / Puerto E como salida(Exepto REO)
setup_adc( ADC_CLOCK_INTER Al);
setup_adcyorts(A O TO A 5 A ALOG I VSS_VDD};
}
69
/ / Adqu iere temperatura exte ma
float voltage_O(void)
(
set_adc_channel(O);
delaLms(5);
average =0;
for(i={);i<64; i++)
(
average = read_adc( );
}
•
average = average/ 64;
retum celsius = (float)«(average • resolucion)/(0.01)) - (50));
//Adquiere humedad extem a
float voltage_1(vold)
(
set_adc_channel (1);
..
delaLms(5);
average =0;
for(i={); i<64;i++)
(
average += read_adc( );
}
average = average/64;
retum humedad = (float )( l/0.0062)*«(average • resolucion)/(4.95)) - (0.16)));
}
//Adqu iere humedad intem a
float voltage_2(vold)
(
set_adc_channel(2);
delay_ms(5);
average =0;
for(I ={);I<64;I++)
(
average += read_adc();
}
average = average/ 64;
retum Intema = (float)(( average • resolucion)/(0.02)) + (- 110));
70
//Adqu l ere fluj o de hl drogeno
float voltage_3 ( vo l d )
{
set_adc_ channel ( 3 );
de l ay_ms( 5 );
average = O;
fo r(I~; I<64;I++ )
{
average + = read_ adc();
}
average = average/ 64;
•
r etu rn f luj o
=( float )« (ave r age ·
re so lu cl o n) -( 100» /(4 .95» ;
//Adqu l ere valor de vacl o j et
float voltage_4(vo l d )
{
set_adc_cha n nel (4 ) ;
delay_ ms(5 );
average =0;
for(I ~; I<64; i ++)
{
ave r age += r ead_ adc( ) ;
}
avera,ge = average/64;
•
retu rn vado = (float)«(average • resol ucl on ) / (21» - (100» ;
// Adq ui e r e va l or de l a bombas de a b so rclon
float voltage_5 ( vo l d )
{
=
float y _ O - 70. 79104;
float a _ l = 2522. 27752;
float t _ l = - 0 . 84633 ;
float a_2 = 1159880;
float t _ 2 = - 0 . 17733;
float a_ 3 = 333 .081 29;
f l oat t _ 3 = - 6 . 37121;
float volts = O;
set_adc_ch ann el (5} ;
de l ay_ ms (5 ) ;
average = 0 ;
for(i~; I<64; I ++ )
{
average += r ead_ adc( ) ;
}
ave r age = average/ 64;
volts
= ( float)«( average • re so lu ci o n) • 2»;
=
r e turn a b so rcl o n (fl oat)« a_ 1 • ex p( v olts/t_1 » + (a_2 • ex p( v ol t s/t _.2 » +
( a_ 3 • exp( volts/ t _3» + ( y _ O» ;
•
7\
•
IIOn
valvula 1
IIOn
vo.d voltage _8( vold )
(
output_h l gh(val_1) ;
de lay_ms(5);
ou1:put_h Igh(val_3);
d ela y_m s( 5) ;
ou1:pu1:_l ow(P I N _C7};
output_h Igh(PIN_C7);
ou1:put_hlgh(PIN_D1) ;
outopu1:_l ow(PIN_DO};
delay_ms(5 };
oU1:pu1:_lovv(PIN_D1) ;
ou1:pu1:_Iovv(PIN_DO);
delay_ms(5);
I f(lnput (n eumatlca} )
{
.f(lnput(r eumatoca »
{
•
= 'T';
= 'r';
comando[O] = 'T';
comando[1]
'r';
coman do ( O]
coman do[1 ]
comando [ 2]
coman do l 2] = 'u';
=
= 'u';
= ' e ';
comando [ 3]
comando[4] = 'T';
coman do[3 ] = ' e ';
comando[5] = 'r';
comando[5] = 'r';
comando(6]
comsndo[4]
= ' u ';
= 'T';
=
comando(7] = ' e ';
}
comsn dol6]
'u ' ;
comando[7] = 'e';
}
e l s.e {
else (
comando[O]
comando(1]
= ' F ';
comando[O) = ' F ';
= ' a ';
=
com ando(1)
' a' ;
comando(2) = ' 1';
comando[2] = ' 1';
=
comando[3]
's';
comando(4] = ' F ' ;
cornando(3) = 's';
comando(4) = 'F';
comando(5] = ' a ' ;
comando(5)
' s ';
comando(6) = ' 1';
comando(7) = 's';
}
=
comandol6] = ' 1';
comando(7] = ' s ';
}
}
•
valvula 3
vo l d voltage_6(voi d }
(
}
IIOn
valvu l a 2
IIOpen
valvula 4
vol d voltage_7(vold }
{
vo l d vol1:age_ 9(vo l d }
{
Ou1:pu1:_h l gh(val_2};
ou1:pu1:_hlgh(vsl_4};
delay_u 5( 5 };
de lay_ms(5};
outpu1:_lovv(PI
_C7) ;
outpU1:_hlgh(P IN_D1);
out:pu1:_hl g h( PIN _ DO};
ou t pu1:_hl gh(PIN_C7} ;
ou1:put_lovv(PIN_D1);
delay_ms(5 );
outpu1:_high(PIN _ DO};
delay_ms(S) ;
i f (lnpu t(neu matlca})
(
If(lnpu t( n eurnatlca}}
{
comando( O)
comando(1)
comando(2)
comando [ 3]
comando[4]
cornando ( S]
= 'T';
= 'r';
= 'u';
= 'e';
= 'T';
'r';
comando ( 6] = 'u';
cornando [ 7] = ' e ';
=
coman c lo [O ]
oom anclo ( 1]
comanclo[2]
comanclo(3]
comanclo[ 4]
=
=
=
}
eis.e {
else {
=
cornando(3]
's';
comando[4] = 'F';
cornando (5 ] = ' a ';
comando [ 6]
comando[7]
= ' 1';
= 's';
= 'r';
= 'u';
= 'e';
= 'T';
comanclo(S]
' r';
oomancl o [ 6]
' u';
comanclo(7]
' e';
}
comando[O] = 'F';
comando(1] = 'a ' ;
oomando[2] = ' 1';
= 'T';
coman do (O ] = 'F';
coma ndo(1] = 'a';
coma ndo[2]
coma ndo(3]
= '1';
= 's ' ;
= 'F';
comaln do l 4]
corna,ndo(5] = 'a';
corn",ndoI6] = '1';
conlClndo[7] = 's';
}
}
•
72
•
llapen
v alvula 5
II
On purga
vold voltage_10(vo l d)
(
vold voltage_12(vold)
(
output_hlgh(val _ S) ;
delay_ms(S) ;
output_hlgh(purga) ;
d e laY_lTI s( S) ;
output_h gh(PIN _ C7) ;
val.....Pur~:a
output_hl gh(PIN_D1) ;
output_lo\IV(PIN_DO);
delay_ms(S) ;
I f( bl t_te st( va I""'pu rga , 1 »
(
comando(O)
com ando(1)
I f( input(neumatlca»
(
= "';
= ' r ';
co mando(2) = 'u ';
comandorO) = "';
comando(1) = ' r ';
•
= PORTC;
com ando(3)
=
' e ';
comando(2) = ' u ';
comando(4) = "';
comando[S) = ' r ';
comando[3) = ' e ';
comando(6) = 'u';
comando[4) = " ';
comando[7) = ' e ';
}
comando[S) = ' r ';
comando[6) = ' u' ;
el se {
comando[7) = ' e' ;
}
comandorO) = 'F';
oomando(1) = 'a';
com ndor2) = '1';
else {
comando[O)
comando(1)
= ' F ';
= ' a ';
comando(3)
comandor2) = ' 1';
comando( 4 )
comando(S)
comando[3) = ' s ';
comando[4) = 'F';
comando(6)
comando(5)
=
oomando(7) = 's';
}
}
= 'a';
= ' 1';
comando(7] = 's';
}
' a ';
comando(6) = ' 1';
= 's';
= 'F';
}
IIHorno
IO n
vold voltage_13(vo l d)
{
I IOn
valvula 8
output __hlgh(horno);
vold voltage_11(vold)
{
output_h gh(val_ 8 );
delay_ms(S) ;
output_hl gh(PIN_C7) ;
delay _rns(S);
v a l""'purga = PORTC;
I f( blt_t,;>st(va I""'pu rga , 2»
(
output_h l gh(PIN_D1);
comal",do(O) = "';
comar,do(1) = ' r ';
output_hl gh(PIN_DO) ;
d elay_m s(5);
comar,do ( 2)
=
' u ';
comar,do(3) = 'e';
If(lnput(neumatlca»
{
comando( 4 ) = " ';
coman do(S) = 'r';
comar,do(6) = 'u';
comando(O) = " ';
comando ( 1) = ' r ';
comando(7)
}
comando ( 2) = 'u';
comando ( 3) = ' e ';
comando(4) = 'T';
comando [ S) = 'r';
else {
cornando(O) = 'F';
OOrT,ando(1) = 'a';
oOrT,ando(2) = ' 1';
comando [ 6) = 'u';
comando(7]
}
= ' e ';
= ' e ';
cOrTlandor3) = 's';
cOrTlando(4) = 'F';
c OrTlando(5) = ' a l;
else {
=
comando { O) = ' F ';
cornando(6)
' 1';
cornando(7) = 's';
comando(1) = ' a ';
comando ( 2) = ' 1';
comando ( 3) = ' s ';
comando ( 4) = ' F ';
comando(S) = ' a ';
comando ( 6)
' 1';
comando ( 7)
' s';
}
=
=
}
}
73
II
On valvula UP1
II0ff
vold voltage_14(VOld)
(
ou·tput_hlgh(ups_senal) ;
delay_ rns(S) ;
valvul
1
void "oltage_ 16(vold)
(
outpu~_lo\N(v
1_ 1) ;
delay_ rns(S) ;
ou~pu~_hlgh(ups_cont) ;
delay_rns(S) ;
ou~pu~_lo\N(PIN _C 7) ;
output_ hlgh(PIN_ D1 );
ou~put_lo\N(PIN _C7) ;
ou~pU~_IO\N(PIN_D1) ;
outp u t _ lo\N(PIN_ DO) ;
delav_ rns(S) ;
outpu~_lo\N(PIN_DO) ;
delay_rns(5 );
I f( !l nput(neurn
(
If(inpu~(neurnat l ca) )
»
comando[O) = "T';
comando(1) = ' r ';
comando(2) =' u ';
(
•
ti c
comando(O) = "T';
cornando(1) = ' r ';
'.
'.
com,.ndo[S) = 'ro ;
c omando(3) - '
comando(2) = ' u ';
com ,.ndo(4)
comando(3) = ' e' ;
comando(4) = "T';
comnndo(6) =' u' ;
comnndo(7) - ' ' .
}
comando[S) = ' r' ;
comando(6) = ' u ';
comando(7) = ' e' ;
}
else (
comando(O) = ' F' ;
el s e (
CO''1"I
ndo(1] = 'a';
=
cornando(O) = ' F ';
comando(1) = ' a ';
CO 'TI ndo(2)
' 1';
co 'Tlando(3) = ' s ';
cornando(2) = ' 1';
co'Tlando(4]
'F';
co , nando(S) = 'a';
=
comando(3) = ' s ';
comando(4)
' F ';
=
co , nando(6) = ' 1';
comando[S) = ' a ' ;
comando(6) = ' 1';
co r nando(7) = 's';
}
cornando(7) = ' s ';
}
•
}
II0ff
II
On valvula UP2
vo l d vol~age_15(vold)
(
valvula 2
void vo lltage _ 17{vold )
(
ou~pu~_lo\N(val _2 ) ;
delay_ms(5) ;
ou"t-pu~_lo\N(ups_senal );
delay_ms(5) ;
oU"tput._ lo\N(PIN_ C7) ;
ou"t-pu~_hlgh{ups_cont);
ou~put. _hlgh(PIN _D1) ;
delay_ ms(5) ;
o u tput. _hlgh(PIN_ DO) ;
delay_ ,n s (5) ;
ou~pu"t-_lo\N(PIN_C7) ;
OU1:put_ IO\N(PIN_D1) ;
ou"t-put_high(PIN_DO) ;
delay_ms(5) ;
If( Ii np ...,t(neurn
(
comando(O]
comando(1]
comando(2]
comando(3)
comando(4)
= "T';
='r' ;
=' u ';
=' e ';
= T ;
comando(S) = 'r' ;
coman ::10(6] = ' U '¡
coman ,::Io(7] = ' e ';
1ft Inpu1:(neumatlca »
{
comando(O) =,..;
comando(1) = ' r ';
comando(2) =' u ';
comando(3) =' e '¡
comando(4) = "T' ;
comando(S) = 'r ';
•
}
else (
comando(6] = ' u ' ;
comando(7) = ' e ';
comnndo(O]
cornundo(1]
comnndo(2)
corn • • ndo(3]
com • •ndo(4]
corn ,¡¡ ndo( 5 ]
}
else {
= 'F';
= ' a ';
= ' 1';
= ' s ';
= ' F ';
cornando(S] = 'a' ;
cornando[6] = ' 1';
cornando(O]
comando(1]
oomando(2]
comando(3]
comando(4]
cornando(7]
}
=
tlca»
=' F ';
-
'
'.
=' 1';
= 's ';
= ' F ';
-
'
'.
coma ndo[6) = ' 1';
coma ndo[7) = 's';
}
}
's';
}
•
74
Iloff
valvula 3
II
vo l d voltage_ 20(vo d)
{
output_1 O\N( val_3 );
delay_ms(S );
output_lo\N(val _ S) ;
delay _ms(S);
output_h l g h(PI N _C 7) ;
output_hlgh(PIN_C 7) ;
outp ut_lovv(PI N _ 01 );
output_h l gh(PIN_01) ;
output_ lovv( PIN _ OO) ;
output_ lovv(PIN_ DO) ;
delay_ms(5 );
delay_ms(5);
I f ( ! Input(neumatl ca»
{
If(! In put(neumatlca»
{
comando(O] = "T ' ;
•
co rnando(O] = 'T';
comando(1] = 'r';
coman do(2] ='u ' ;
comando(1] = 'r' ;
comando(2] =·u';
comando(3] =' e ';
comando(4] = ~' ;
comando(5]
comando(3] =' e' ;
coman do(4] = "T';
comando(S] = ' r ';
comando(6] = 'u';
='",..';
comando(6] =' u';
comando(7] =' e ';
}
comando(7] =' e' ;
}
else {
el se {
comando(O) = ' F ';
comando(1] = ' a ';
cornando(2) = ' 1';
comando[O] = 'F ';
cornando[1] = 'a ';
ceoman do[2] = '1 ';
co mando[3] = '5';
cornando (3] = ' s' ;
cornando(4] = ' F' ;
comando(S) = ' a ';
comando(4] = 'F';
cornando(S] ='a';
cornando(6] ="';
comando[6] = '1';
cornando(7] = 's' ;
}
cornando (7] = 's' ;
}
}
•
Off valvula S
void voltage_18(vold )
{
}
IIOff
Iloff
valvula 4
vo l d voltage_ 19(vold)
{
output_lovv(val _ 4 );
valvula 8
vo l d voltage _ 21(vold)
{
output_lovv(va 1_8) ;
delay __rns(5);
delay_rns(S) ;
output_h lgh( PI N _C 7) ;
output_hl gh(PIN_C7) ;
output_hlgh(PIN_01) ;
output_1 ovv( P 1N _ 01);
output_hlgh(PIN_OO) ;
delay __rns(S);
output_h gh(PIN_DO) ;
delay_ rns(S);
I f( !l nput( neumatlca »
{
•
I f( II nput(neurnatlca»
(
comando(O] = "T';
comando ( O] = "T';
comando(1) = ' r ';
comando(1] = 'r';
cornando(2) = ' u ';
comando( 2] = ' u ';
comando(3) = ' e ';
c oma ndo( 4) = "T';
comando(3] = 'e' ;
comando[4] = "T';
comando(5] = 'r';
comandolS) = 'r';
comando( 6] = 'u';
cornando ( 6] = 'u';
comando[7] = ' e ';
coma lndo(7) = 'e' ;
}
}
else {
else (
comando(O) = 'F';
cornando(1) ='a';
cornando(2) ='1 ';
con~ando[O]
='F';
con~ando(1]
=
cornando(4) ='F';
'a';
conlando(2] =' 1';
conlando(3) = 's ' ;
conlando(4) = 'F';
conlando[5] =' a' ;
cornando(5) ='a ';
cornando(6) ='1';
conlando[6] = '1';
conlando[7] = 's';
cornando(3) = 's';
comando(7) ='s';
}
}
}
75
[ 11
11
Off s""lt:ch de purga
vold volt:age _ 2.2(vold)
(
11 OH valvula
vo I d vol tage_
=
24(vOld )
(
Ou1:put:_'o""(purga) ;
delay_m s(S);
val ----purga
UP1
out:put_ 'o",,(up s_ ont);
d .. 1 y_m s (S) ;
PORTC;
out:put_ lo",,(up s_s
ni) ;
dE, lay_ ms(S) ;
I f( I blt:_ t:est:(val----Purga , 1»
(
01.1t:put:_ IO",,(PIN _ C7);
comando(O) = 'T';
comando(1) = "r O";
"
11
•
0 <'It:pu1:_IO",,(PIN _D1);
o .. lput_lo",,(PI N _DO);
comando(2) ="u";
comando(3) =' e ';
del
comando(4) = 'T';
comando(S) = · r o;
If( IInpu1:(n eumst:lc
(
comando(6) =" u' ;
comando(7) = "' e";
}
comando(O] ='"r;
cc,rnando(1) = ' ro ;
comando(O) = 'F';
comando(2)
cCl mando[4] = 'T';
cc,mando(S] = ' r ';
= ' a' ;
= ' 1' ;
ce mando(6) =" u ';
comando(3) = ' s ';
cornando(7) ='e';
}
el ,§.
comando(4) = ' F ';
comando(S) = ' s' ;
comando(6)
»
cc.mando(2) ='u';
cc.mando[3] = ' "
else {
comando(1)
y _ ms(S) ;
= '1';
com
comando(7) = 's';
}
ndolO] = °F ';
comando( 1] comando(2)
}
'
,
~' I ';
comando[3] = ·s·;
comando[4] = 'F';
oornando[S] = ' 0' ;
oo m
ndo[6] = ' 1';
IIHorno
OH
vold voltage_23(vold)
(
,::omando(7] ='s';
out:put:_ lo""(horno);
delay_ms(S) ;
val----purga
=
f
PORTC;
110ft'
I f( ! blt:_ t:est:(val----Purga .2»
{
{
out:put_ lo",,( ups_cont:);
comando(1] = ' r ';
delay_ ms(S) ;
cornan do (2) = ·u
f
;
ndo(3) = ' e';
comando(4) = 'T';
comando(S)
comando(6)
=
=
out:put:_lo",,(ups_ s
delay_ ms(S) ;
ni);
' r ';
' u' ;
out:put:_ lo",,(PIN _C 7) ;
comando(7) = ' e ';
}
ou t:pu t:_lo ",,(PIN _ D1) ;
else {
comando ( O) = 'F ';
comando ( 1) = ' a ';
comando(2) = ' 1';
comando(3) = ' s ';
comando(4) =
comando(S) =
comando(6) =
comando(7) =
}
}
valvula UP2
voltage_ 2S(vold )
comando(O) = 'T';
com
.
vo l d
' F ';
' a' ;
ou tput:_hlgh(P IN _ DO) ;
delay_ms(S) ;
If( \In pU1:(neurnat:lca»
{
corr ando[O) ='"r;
cornando(1) = oro ;
cornando(2)
' 1';
corn
's·;
corn
comando(S)
=
fU' ;
ndo(3) =' "
ndo(4) = 'T';
= or o;
comando(6) =" u ';
com ndo(7) - ' "
}
el se {
com ando[O)
comsndo(1)
= 'F';
='
comando(2) = ' 1';
cornando(3) = 's';
cornando( 4) =' F ';
cornando(S) =' Q ';
cornando(6) = ' 1';
cornando(7) == 's';
}
•
I
76
// Modo PC
/ / Modo Manual
void voltage_26(void )
{
vo ld voltage_27(void)
{
output_low( modo);
output_high(modo) ;
delaLms(S) ;
de l ay_ms(5);
val-purga
=PORTC;
va l-purga = PORTC;
¡f( !bit_test(val-purga,O»
{
•
i f (bit_test (val-purga,O»
{
comando[O]
comando [l) = 'r' ;
comando(2] = 'u ';
comando [2) = 'u ';
comando[3] = 'e ';
comando(4] = 'T';
comandol[3] = 'e ';
comando [4] = 'T';
comando[5] = 'r';
comando [ S] = 'r';
comando[6] = 'u ';
comando l 6]
comando[7] = 'e ';
}
comandol 7]
else {
else {
='u ';
='e ';
comando[O] = 'F';
comanclo[O] = 'F';
comando[1] = 'a';
comando[l] = 'a';
comanclo[2] = '1';
comando(2] = '1';
comando(3] = 's';
coman clo[3] = 's';
comanco[ 4] = 'F';
='F';
comando(5] ='a ';
comando(4]
•
=T';
comando(O] = 'T';
comando(l] = 'r ';
comando[ S] = 'a';
comando(6] = '1';
comando[6] = ' 1';
comando[7] = 's';
}
comando[7]
='s';
void ma i n(vold )
{
i nt8 usb_i ndata [ 3] ;
/ /declaramos vari abl es
setup_adc-ports(NO_ANA l OGS I VSS_VDD );
setup_adc( ADC_OFF );
..
setup-psp(PSP _DISAB l ED};
setup_sp /(SPI_SS_DISABLED};
setup_wdt(WDT_OFF );
setup_timer_O(RTCC_INTERNAl};
setup_timer_l(Tl_DISABl ED };
setup _tlmer_2(T2_DISAB l ED,O, l );
setup_timer_3(T3_DISABl ED I T3_DIV _BY _l};
setup_comparator(NC_NC_NC_NC) ;
setup_ vref(FALSE) ;
i n i ci alizar() ;
output_high(led) ;
usb_init(};
usb_task();
l/Se i n i ci aliza USB y espera que sea enumerado por la PC
usb_ wait_for_enumeratl on();
77
•
while (TRUE) {
If(usb_ en umeratedO )
{
If(usb_ bhit(l))
{
usb...EetJlacket(l ,usb_indata,3);
swi eh (comand)
{
case OxOO://Temperatura externa
voltage_O();
sprintf(Datos,"%O.lf",celsius);
Datos(7) ='A';
usbJluts( 1, Datos,8,50);
voltage_1();
sprintf(Datos,"%O.lf", hu medad );
Oat:Js(7) = 'B';
usb yuts(1,Oatos,8,SO);
brea ;
brea ;
case Ox02://Humedad Interna
•
case OX03 ://Fl uj o de hidrogeno
voltage_2();
sprintf(Datos,"%O.lf",interna);
Datos(7) ='C';
usbJluts(1,Datos,8,SO);
volt 3ge_3();
sprintf(Datos,"%O.lf",flu jo);
Oatos(7) = 'O';
usb _puts(1,Oatos,8,50);
brea ;
break;
case Ox04:/ /Vacio jet
voltage_4();
sprintf(Datos,"%O.lf",vaclo);
Oatos(7) ='E';
usbJluts(l,Oatos,8,50);
•
case Ox01:/ / Humedad externa
case Ox05://Valor absorcion
voltage_50;
sprin tf(Oatos,"%O.lf",absorcion) ;
Oat05[7) ='F';
usb_ outs( l ,Datos,8,50);
break;
brealt;
78
•
case Ox06://Valvula 1 On
case Oxll://Valvula 70n
voltage_6O;
usbyuts(1,comando,8,50};
voltage_ll10;
usbyuts(1,comando,8,50};
brea k;
brea;
}
•
case Ox07://valvula 20n
case Ox12: l/Purga On
voltage_7();
usbyuts( 1,comando,8,50};
voltage _12();
usbyuts(l,comando,8,50};
brea k;
brea ;
}
case Ox08: //valvula 3 On
•
case Ox13: / /Homo On
voltage_8{};
usbyuts(1,comando,8,50};
voltage_130;
usbyuts(1,comando,8,50};
brea k;
brea
case Ox09://valvula 4 On
case Ox14: //UP1 On
voltage_90;
usbyuts(1,comando,8,50};
voltage _,14{};
usbyut:;(1,comando,8,50);
brea k;
brea;
}
•
case OX10://valvula 60n
voltage_100;
usbyuts(1,comando,8,50};
case Ox15': //UP2 On
voltage __150;
usbyuts(1,comando,8,50) ;
break;
}
brea;
79
.
case Ox16://valvula 1 Off
case Ox21:/ /Valvula 7 Off
voltage_16();
usbJ)uts(l,comando,8,SO);
voltage_21();
usb_puts(l,comando,8,SO);
break;
break;
}
•
case OX22://Purga Off
case OX17:l/valvula 2 Off
voltal~e_22() ;
voltage_17();
usbJ)uts(l,comando,8,SO);
usb-I>uts(l,comando,8,SO);
brea~.;
brea k;
}
case Ox23: l/Horno Off
case Ox18: I/valvula 3 Off
voltage_23();
usbJ 1uts(1,comando,8,SO);
voltage_180;
usbJ)uts(1,comando,8,SO);
•
break;
break;
}
case Ox24:/ /UPl Off
case Ox19: I/valvula 4 Off
voltage_24();
usbJ)uts(1,comando,8,SO);
voltage _19( );
usbJ)uts(1,comando,8,50);
break;
brea ;
•
}
case Ox2S: //UP2 Off
case OX20:I/Valvula 6 Off
voltagl~_25() ;
voltage_20();
usbJ)uts(1,comando,8,SO);
usbJ)uts(1,comando,8,SO);
break;
break;
}
80
1-
.1
•
case Ox26: / /Modo PC
{
voltage _26(};
usbyuts(1,comando,8,50);
break.;
}
•
case Ox27: / /Modo manual
{
voltage_270;
usbyuts(1,comando,8,50);
break.;
}
case Ox28://Porcenta de Flujo de H i drogeno
{
output_ b( data );
•
delay_ms(20);
comando(O]
comando (1]
comando ( 2]
comando( 3]
comando(4]
comando(5]
comando( 6]
comando( 7]
•
= 'T';
= 'r';
= 'u';
= 'e ';
= 'T';
= 'r';
= 'u';
= ' e ';
usbyuts(1,comando,8,50);
break.;
}
}//Cierra switch
}//Espera bytes en el buffer de l usb
}//Espera a que sea enumerado
}//Cierra while
}//Fin main
•
81
•
Apénd ice B
Programa principal de control de la
pe implementado en LabVIEW.
1 0..1 •
•
1nt".11LI Irreglo p.r. guardar dltos
en eJlnp¡p<.
Oc esta mane. no se HU Cfündo
un , rreglo
· usuano· Otf-aull •
ud.. vv que s.t Itttl
d.tos.
r.k:Eii
,. Dllos en ti InP.pe ~
_.._ . _u..... ... ...._._..
"" I
_~
1Od.04~odOOOl
~'"'
_._~
~:
.
~
usaT""
1.. VID&I'IIl
1.·IMtMIcio (O _ t e )
__.__. . . . . ._. . . ___....._. ._.
IIL:
I
n
n ................
3.- End........
0)
." OutPi~ (5e deja en Ceto)
5.-lnp<pe (Se dejo ." coro)
fft{I]
Di
.
m
•
-
2 •.1 '
ln1Cl oI JtU ItTeglo ~r.
guitd.r dfios
"'''¡''P'p"Oe e:st. rn..nen no u esU creando
"."umen,"
un arreglo ud. vez que se ~
dotos.
~
,. Oo1tOS en el1nPlpC
. d 04d8&DOd 000l
-e
-----<3
~
!:p"" .
que .. m>pO~wo
'"
con el VlO&91O estl:
USBTuk
1.- YlD&PID
1.- IMbncio (O ................0)
3.- EncIpoIn' n ~te)
. ,- outPtpe (Se deja en cero)
S.-lnptpe (Se: df';ll en CHO)
m
rrr/I]
m
•
!
enum~.do.
---Q.
[!JjJ
•
82
•
¡ 0..1 •
lniCltlhu ¡rrtglo
~,.
gu.rd.r d.tos
endlnpopc.
~
De: 5. nunen no ~ mi <Iundo
un anegfo ud. YU que se ~
lUtoS.
Iñ\. ...c;¡¡¡
Dltos. en ti fnPlpe •
~l
1-
fb«
I QQQl
~
•
~
t
usa T.""
un OutP .... y un Inl"l'< P'" l.
comunlCICIÓn. los eoho en dust~
L
I
USSTuk:.
L-..¡;
. s..P_
~
~
· s..Poont
L · yll)&PID
2.· \ft<bftcio \O _ _ 'e]
3.· ENIpoInt [1 ~te]
~ ., OutPlpe
d~. a'\ erro}
5.· In",... (So dt¡t en u ro)
~
UD
•
m
¡ 0..1 •
•
no.ltLI .trtglo pat. gUlrd., d.tos
~
lnptpe.
·0
De esb m'.ne'1 no se HU Cfu ndo
er.oon·
un ....,eglo ud. wu que se 1ftn
d U OL
'--------í: :"llr-----·~~~---~-----~!----~
o
US8 Tlu
l .· YlD&PID
2.· 1 _ 1 0 _ _ .<1
3.- Endpoint C1 NornwlmenteJ
." OutPlpe (Se dq. en Crto)
• \npop< (So dej. en e )
•
m
83
•
1 0 ..1 •
1nici, 1in arreglo Pl"rl gUl rd. , datos
en ellnplpe:.
De &a
m ln~1
:CJ
no s.t: Htí cru ndo
un . " ~Io ud. vez que 5t' lHn
dMtos..
~
"'" I
I~ Cierran t'I OutPl~ :r: t'llnelE!e.. 1
I 000l
4
.•••••..• -Q
f
~
~
usa r..k
1.· V1D&I'ID
2.· JMIM>cio (O _ _ _ t.)
l.· ENIpoinI (1 No.............t.,
~ .. Out9lpe
deja en (eto)
s.. lnp<p. (So do;. en coro)
~
lE]
.
m
Apéndice 8.1
•
Subprograma modo Automático.
1
1 "
~
l.
I
~
rua¡
~ 'M
_oocttat .. •
~
~ -'
~~
.
ru-=~
- :..
re:
ID
•
IIJ
84
, ,.
·1 0 ....... .
J-l-.===-
--- - _. __....
'"'""'
•
~~
•••••••••••••• oo •••••_
~~J
0 . 0.
11oL!.,...RlD~
•• o . o • • ••
-_
.
~_
......._-
lIlI
•
•
85
I
o-mxn~ I ~IQI
00"".·
~
iiIiiEi}-iI-
..!.
_ .~
~~~&======================================~ f~
~~.
1:::,;- ¡;.
1
•
l '
,
WCt . ..... ""-.
J
1f¡fj fi3
omxn~r n lt;il
ooc._'"
~
Eacoo ... .
~~
·~I
~
1
....,
~
~~
•
llJI
ID
Il
86
1
1 -
ou '
••
•
t
t
J
m-- ¡¡.
553--41
9-
10
--
- - ,- <'-
rn
liI
I
I
•
tU '"'
....
15ckc.1· ..... ...u1
I
" " ,-
f4~,,~t...lPk'!l.~s..Jf"'IW.~'l.r.U...""'1-
[}j~I~
¡
1\al
.....
~
8--'iQOIIQ6I09
¡..
f
>--- .
;;:;
(]- !I""""-
"
........
.
~-~
¡,. .... ._~
..;
8>
~,
.ill'lh'
fo---
t
,
~
~
1'-
~ ~U
I
[!lJ
~Cffllft ·
ID
~
&-
íI
@
..!!u
-
-----.!....
._-
f--....-...-
....¡¡
• .... M
~
~
-9
[l]
•
r.J
9
rn
~
87
1
.
~
:ti"
_I\M~ r '"
SoHect.4lUfiIot Wltltt
- 1 '.
~bLOI(;i
-~
~Of ( _ '"
~
.J<M1I:.""~
~
ññi.
---:.
[;>!!>
r
m-- ~
I:!'m-F'
I~
~
~
···r· F-'
~
T
-..eD01.·
-B
~
.!!J
---!..
~
>
&-
r -r"-"-
te~
" "'''-
..::::
~
en
J!
IJII
~
ID
•
1
.
~
-•
J '
.....
w.a.~"WfU
1
.
-- r
H~b
l...rJ 1f«L
I
t:.~ efC -'·
~ I
~
-~E!r f
........
~
•
lmrEl
I ~ " '~~
-
..
-
-le.
-
en
..&
CII
en
..!.
88
Apéndice 8.2
Subprograma modo Válvulas .
20.2 •
T,meout
¡o
'%6%6lUf%6lUf%6lUf%6lUf'" lUf"''JUf%6'JUf%6
Q !I C"",
o o QQ
o 0.1 •
"'~ l",,,.-..-__
L..::: ",
!! ,,,,,. H " " " ,
•
ITlI
!!J-lI]
ro ~===============================~
,
Apéndice 8.3
Subprograma modo Manual.
u.!..d...:....
1.....'
.. .¡. ..
''''''Ut ..".m.''''''',.,....~''"'''''..1
I
llQ
~
[ilitJOO
t
t-
~~
... cn8Ce
rr.;J.~
~
1'=
rJ
~
,h l
o-llD..fd"D [
.
J_
~
lOO
.
.~ l
..
~
~
.M
S}
1
1
~
~
.
CD
mi
"""
..B> ~
~
.
"- - - E> ~
11- -
~
Dil
01
[D
I!
89
Apéndice B.4
Subprograma modo Bloques.
, ., -~
.... ...-
1
._._.-
-
o-ml.p'b f n l(.!!
.
..-
lcrLM
~~
~~
Em---
II!)
a. -- - - _..._ --- -_._---
.....
...
~
•-
------_.
.._-
1f<'" ::-.-1.•
--
DI
Cl
[!J
,
l
-
Ll~w~~==========~===============~= ill~
D ~ld'b [ [I(.!!
-1
~
•
~
-~~
. -'r------------------------
[-Q
DI
[!J
90
~
il..Y..!:ii"Pr.. 1 1·
-W-
.....
~
o-illml ~
I1IG1
=
-1
~
u
Jm.~
i
."'..l
~
~
-E!l--
---'
.
...
E§"-'
É:!"J
,,-1
...
=--
-1l!!II
11\-
.
...¡~ ,
~
Ci-
---,
11
--~-~.
rr==
~
~
ro
11
----
--
_
. ..
_------_._.~~~~--._._
.....
-~~
91
92
,
~
I
"''''''--=-
r
D,j(DJ[n ~ l l~r
I
F§jj"l
.
-'
,,~~t..Jn4~,...
} .
r
......
II!IW
tt-:
....
~ It-
'"
~
-
......
~ -e
B
I
j;:> .
rn--~
J;
üJ-B>-l
I~
lO
~
E>
~
-~
--<
~
11Jl-1.¡¡
[D
- ' ..
..!.
'~!,_tSe,
e>
D~
~
i
[iJ
CD
IC!
[iJ
BIBLIOGRAFíA
•
LabVIEW 6i Programación Gráfica para el Control de Instrumentación ,
Antonio Manuel Lázaro, Paraninfo .
•
Applying PIC18 Microcontrollers Architecture , Programming , And Interfacing
Using C And Assembly , Barry B. Brey, Prentice Hall.
•
C/C++ y Java Cómo Programar, Deitel Deitel , Prentice Hall.
•
The Art of Electronics, Paul Horowitz, Cambridge University Press .
•
Tecnologías epitaxiales de crecimiento de cristales semiconductores , V. A ,
Mishournyi , 1. C Hernández del Castillo , A Yu . Gorvatchev y A Lastras
Martínez, Avance y Perspectiva volumen 21 .
•
Fabricación y Caracterización Óptica de Materialles Semiconductores Para
Aplicaciones en Optoelectrónica , Hernández Ariza Calderón , Rev. Acad .
Colomb. Cienc. Volumen XXVII , Número 104 Septiembre de 2003.
•
Crecimiento y caracterización de capas epitaxiales para aplicaciones láser,
Ana Aznar Ecija , Departament de Química Física i Inorgánica Universitat
Rovira i Virgili.
93
Descargar