Anda di halaman 1dari 0

S.E.P. S.E.S. D.G.E.S.T.

CENTRO NACIONAL DE INVESTIGACIN


Y DESARROLLO TECNOLGICO

cenidet

DISEO Y CONSTRUCCIN DE UNA TARJETA
PROGRAMABLE DE ADQUISICIN,
PROCESAMIENTO DE DATOS Y CONTROL


T E S I S
PARA OBTENER EL GRADO DE
MAESTRO EN CIENCIAS EN
M E C A T R N I C A


PRESENTAN:

FLIX VICENTE JMENEZ ROS
JOAQUN RIVERO JUREZ


DIRECTORES DE TESIS:

M.C. JOS LUIS GONZLEZ RUBIO SANDOVAL
DR. RAL PINTO ELAS




CUERNAVACA, MORELOS, MXICO FEBRERO DE 2006


RESUMEN

La automatizacin industrial se divide en 3 fases: adquisicin de datos, procesamiento o
tratamiento de la informacin y control de elementos actuadores. Existen alternativas
comerciales que permiten realizar una o todas las fases de automatizacin en un solo
componente como tarjetas de adquisicin de datos o controladores lgicos programables
(PLCs).

En este trabajo se presenta el diseo, construccin y prueba de una tarjeta programable
capaz de realizar las 3 funciones de automatizacin de un proceso con la capacidad de
trabajar de forma autnoma. Se dise y fabric una tarjeta de aplicacin para la
realizacin de las pruebas de los mdulos de: entradas/salidas digitales, entradas
analgicas, potencia para motores, comunicacin con la computadora y memorias
EEPROM.

Adems de las pruebas funcionales, se disearon, construyeron y probaron 3 plantas
mecatrnicas con la tarjeta programable. Las 3 plantas son: un robot mvil seguidor de
lnea, un modelo a escala de una plataforma de seguimiento solar y una cmara trmica con
temperatura controlada.



ABSTRACT

The industrial automation is divided in 3 phases: acquisition of data, processing or
treatment of information and control of actuator elements. There exist commercial
alternatives to carry out one or all the automation phases in a single component such as
cards of data acquisition or programmable logic controllers (PLCs).

This work shows up the design, construction and test of a programmable card able to carry
out the 3 automation functions of a process with the capacity to work in an autonomous
way. An application card was designed for testing the modules of: digital inputs/outputs,
analog inputs, power for motors, communication between the computer and EEPROM
memories.

Besides the functional tests, there were designed, built and tested 3 mechatronic plants with
the programmable card. The 3 plants are: a line follower mobile robot, a scale model of a
solar tracer platform and a thermal camera with controlled temperature.

i
CONTENIDO

LISTA DE FIGURAS ...........................................................................................................iv
LISTA DE TABLAS.............................................................................................................vi
ACRONIMOS Y SIGLAS ...................................................................................................vii
NOMENCLATURA............................................................................................................... x

Captulo 1. Introduccin....................................................................................................... 1

1.1. Antecedentes...................................................................................................... 2
1.2. Descripcin del problema.................................................................................. 2
1.3. Estado del arte de sistemas de adquisicin, procesamiento de datos y control
de procesos ........................................................................................................ 3
1.3.1. Transductores y sensores................................................................................... 3
1.3.2. Acondicionadores de seales............................................................................. 4
1.3.3. Mdulos de adquisicin de datos ...................................................................... 4
1.3.4. Controladores .................................................................................................... 7
1.4. Propuesta de solucin........................................................................................ 9
1.4.1. Objetivos............................................................................................................ 9
1.4.2. Metodologa de solucin ................................................................................... 9
1.4.3. Aportacin o contribucin............................................................................... 10
1.5. Organizacin de la tesis................................................................................... 10

Captulo 2. Determinacin de las caractersticas funcionales de la tarjeta programable ... 11

2.1. Recursos requeridos por plantas o procesos.................................................... 12
2.2. Microcontroladores y controladores de seal digital....................................... 12
2.2.1. Microcontroladores.......................................................................................... 12
2.2.2. Controladores de seal digital ......................................................................... 18
2.2.3. Herramientas de desarrollo.............................................................................. 21
2.3. Proceso de seleccin del microcontrolador con el que opera la tarjeta
programable..................................................................................................... 22
2.4. Tiempo de procesamiento del microcontrolador del PIC18F452.................... 26
2.4.1. Temporizadores del microcontrolador............................................................. 27
2.4.2. Modulacin de ancho de pulso generada por el microcontrolador.................. 28
2.4.3. Tiempo de conversin del conversor anlogo/digital...................................... 29
2.5. Interfases de comunicacin ............................................................................ 31
2.5.1. Interfaz de comunicacin entre tarjetas........................................................... 32
2.5.2. Interfaz de comunicacin entre la tarjeta y la computadora............................ 32
2.6. Descripcin de la tarjeta programable de adquisicin, procesamiento de datos
y control........................................................................................................... 33

Captulo 3. Diseo electrnico de la tarjeta ....................................................................... 34

3.1. Descripcin a bloques de la tarjeta programable............................................. 35
3.2. Diagramas esquemticos electrnicos de la tarjeta programable .................... 36

ii
3.3. Diagramas esquemticos electrnicos de la tarjeta de aplicacin................... 44
3.4. Diseo de las tarjetas de circuito impreso ....................................................... 45

Captulo 4. Construccin y pruebas de las tarjetas electrnicas......................................... 47

4.1. Construccin de las tarjetas electrnicas......................................................... 48
4.2. Emulacin funcional de los mdulos de la tarjeta programable...................... 50
4.2.1. Prueba de E/S digitales.................................................................................... 51
4.2.2. Prueba de entradas analgicas ......................................................................... 51
4.2.3. Prueba de potencia para motores..................................................................... 52
4.2.4. Prueba de la pantalla de cristal lquido (LCD) ................................................ 53
4.2.5. Prueba de comunicacin con la PC................................................................. 53
4.2.6. Prueba de memorias EEPROM....................................................................... 54
4.2.7. Prueba de E/S de 4-20 mA .............................................................................. 55

Captulo 5. Diseo y construccin de plantas .................................................................... 58

5.1. Descripcin de plantas a controlar................................................................... 59
5.2. Robot mvil seguidor de lnea......................................................................... 60
5.2.1. Objetivo ........................................................................................................... 60
5.2.2. Requerimientos de la planta ............................................................................ 60
5.2.3. Diseo mecnico ............................................................................................. 60
5.2.4. Diseo elctrico del robot mvil ..................................................................... 61
5.2.5. Algoritmo de control ....................................................................................... 62
5.3. Modelo a escala de una plataforma de seguimiento solar ............................... 63
5.3.1. Objetivo ........................................................................................................... 63
5.3.2. Requerimientos de la planta ............................................................................ 63
5.3.3. Diseo mecnico ............................................................................................. 65
5.3.4. Diseo elctrico del modelo a escala de la plataforma de seguimiento solar.. 66
5.3.5. Algoritmo de control ....................................................................................... 68
5.4. Cmara trmica con temperatura controlada................................................... 70
5.4.1. Objetivo ........................................................................................................... 70
5.4.2. Diseo mecnico ............................................................................................. 70
5.4.3. Diseo elctrico de la cmara trmica............................................................. 71
5.4.4. Requerimientos de la planta ............................................................................ 72
5.4.5. Algoritmo de control ....................................................................................... 73

Captulo 6. Experimentacin y anlisis de resultados........................................................ 76

6.1. Pruebas y resultados de la tarjeta programable con el robot mvil seguidor de
lnea ................................................................................................................. 77
6.2. Pruebas y resultados de la tarjeta programable con el modelo a escala de la
plataforma de seguimiento solar...................................................................... 78
6.3. Pruebas y resultados de la tarjeta programable con la cmara trmica con
temperatura controlada .................................................................................... 79

Captulo 7. Conclusiones.................................................................................................... 83

iii

7.1. Conclusiones.................................................................................................... 84
7.2. Trabajos futuros............................................................................................... 85

REFERENCIAS ................................................................................................................... 86

Anexo A. Circuitos esquemticos de la tarjeta programable ........................................... 88
Anexo B. Diseos de placas de circuito impreso............................................................. 92
Anexo C. Programas de prueba de la tarjeta programable............................................. 104
Anexo D. Documentacin de los programas de control de las plantas.......................... 113
Anexo E. Lista de componentes .................................................................................... 146



iv
LISTA DE FIGURAS

Figura 1.1 Mdulo de adquisicin de datos............................................................................ 4
Figura 1.2 Diagrama a bloques de un sistema de adquisicin, procesamiento de datos y
control. .................................................................................................................................... 5

Figura 2.1 Comparacin de microcontroladores en cuanto a frecuencia de operacin. ....... 23
Figura 2.2 Comparacin de microcontroladores en cuanto a nmero de terminales de E/S.24
Figura 2.3 Comparacin de microcontroladores en cuanto a memoria de programa........... 24
Figura 2.4 Circuito oscilador del microcontrolador ............................................................. 26
Figura 2.5 Flujo de ejecucin de instrucciones. ................................................................... 27
Figura 2.6 Flujo paralelo de bsqueda/ejecucin (pipelining). ............................................ 27
Figura 2.7 Salida PWM. ....................................................................................................... 28
Figura 2.8 Modelo de la entrada analgica........................................................................... 30

Figura 3.1 Mdulos que conforman la tarjeta programable. ................................................ 35
Figura 3.2 Circuito electrnico del mdulo de entradas/salidas digitales. ........................... 36
Figura 3.3 Circuito electrnico del mdulo de entradas analgicas..................................... 38
Figura 3.4 Circuito electrnico del mdulo de alimentacin. .............................................. 38
Figura 3.5 Circuito electrnico del mdulo de memoria EEPROM..................................... 39
Figura 3.6 Circuito electrnico del mdulo de comunicacin con la PC. ............................ 40
Figura 3.7 Circuito electrnico del mdulo de comunicacin I
2
C. ...................................... 41
Figura 3.8 Circuito electrnico del mdulo de potencia para motores................................. 42
Figura 3.9 Circuito electrnico del conector para pantalla de cristal lquido....................... 42
Figura 3.10 Circuito electrnico del mdulo de procesamiento........................................... 43
Figura 3.11 Circuito electrnico del mdulo de E/S de 4-20 mA. ....................................... 44
Figura 3.12 Circuito electrnico de la tarjeta de aplicacin................................................. 45

Figura 4.1 Tarjeta principal. ................................................................................................. 48
Figura 4.2 Tarjeta de procesamiento. ................................................................................... 49
Figura 4.3 Tarjeta de entrada/salida de 4-20 mA. ................................................................ 49
Figura 4.4 Tarjeta de aplicacin. .......................................................................................... 50
Figura 4.5 Grfica de respuesta del receptor de 4-20 mA. ................................................... 56

Figura 5.1 Robot mvil seguidor de lnea ............................................................................ 60
Figura 5.2 Robot mvil seguidor de lnea ........................................................................... 61
Figura 5.3 Circuito electrnico del robot mvil seguidor de lnea...................................... 62
Figura 5.4 Diferentes acciones del robot de acuerdo al estado de sus sensores. .................. 63
Figura 5.5 Circuito de potencia (puente H) para alimentar dos motores de 24 VCD. ......... 64
Figura 5.6 Circuito de operacin simplificado del puente H................................................ 64
Figura 5.7 Diseo mecnico del modelo a escala de la plataforma de seguimiento solar.... 66
Figura 5.8 Vista superior del modelo a escala de la plataforma de seguimiento solar......... 67
Figura 5.9 Fotografa del modelo a escala de la plataforma de seguimiento solar............... 67
Figura 5.10 Circuito elctrico del modelo a escala de la plataforma de seguimiento solar. 68
Figura 5.11 Referencia de giros e identificacin de sensores............................................... 69
Figura 5.12 Cmara trmica con temperatura controlada..................................................... 70

v
Figura 5.13 Circuito generador de seal de referencia. ........................................................ 71
Figura 5.14 Seal de referencia. ........................................................................................... 71
Figura 5.15 Circuito de control de CA. ................................................................................ 72
Figura 5.16 Diagrama elctrico de la cmara trmica y la tarjeta programable. .................. 72
Figura 5.17 Instrumento virtual de configuracin y visualizacin de la cmara trmica..... 74

Figura 6.1 Pista de prueba del robot mvil seguidor de lnea. ............................................. 77
Figura 6.2 Prueba de controlador proporcional. ................................................................... 82
Figura 6.3 Prueba de controlador proporcional-integral. ..................................................... 82

Figura A.1 Circuito esquemtico de tarjeta principal.......................................................... 88
Figura A.2 Circuito esquemtico de tarjeta de procesamiento. ........................................... 89
Figura A.3 Circuito esquemtico de la tarjeta de 4-20 mA. ................................................ 90
Figura A.4 Circuito esquemtico de tarjeta de aplicacin................................................... 91

Figura B.1 Diseo de la cara superior de la tarjeta principal. ............................................. 92
Figura B.2 Diseo de la cara inferior de la tarjeta principal. .............................................. 93
Figura B.3 Capa de leyenda de componentes de la tarjeta principal................................... 94
Figura B.4 Diseo de la cara superior de la tarjeta de procesamiento................................. 96
Figura B.5 Diseo de la cara inferior de la tarjeta de procesamiento.................................. 97
Figura B.6 Capa de leyenda de componentes de la tarjeta de procesamiento. .................... 98
Figura B.7 Diseo de la cara inferior de la tarjeta de E/S de 4-20 mA. .............................. 99
Figura B.8 Capa de leyenda de componentes de la tarjeta de E/S de 4-20 mA. ............... 100
Figura B.9 Diseo de la cara superior de la tarjeta de aplicacin. .................................... 101
Figura B.10 Diseo de la cara inferior de la tarjeta de aplicacin..................................... 102
Figura B.11 Capa de leyenda de componentes de la tarjeta de aplicacin. ....................... 103

Figura D.1 Panel frontal. ................................................................................................... 143
Figura D.2 Bloque 1 de 4 del programa de monitoreo y control....................................... 144
Figura D.3 Bloque 2 de 4 del programa de monitoreo y control....................................... 144
Figura D.4 Bloque 3 de 4 y sub-bloque 1 de 3 del programa de monitoreo y control. .... 144
Figura D.5 Sub-bloque 2 de 3 del programa de monitoreo y control. ............................... 145
Figura D.6 Sub-bloque 3 de 3 del programa de monitoreo y control. ............................... 145
Figura D.7 Bloque 4 de 4 del programa de monitoreo y control....................................... 145


vi
LISTA DE TABLAS

Tabla 1.1 Caractersticas ms importantes de las tarjetas de adquisicin de datos. .............. 5
Tabla 1.2 Sistemas comerciales de adquisicin de datos. ..................................................... 6
Tabla 1.3 Comparacin de puertos de comunicacin............................................................ 8

Tabla 2.1 Recursos requeridos por plantas o procesos. ....................................................... 12
Tabla 2.2 Caractersticas tcnicas de los microcontroladores. ............................................ 14
Tabla 2.3 Comparacin de familia de controladores C2000. .............................................. 19
Tabla 2.4 Comparacin entre el PIC18F452 y el dsPIC30F. .............................................. 25
Tabla 2.5 Seleccin de capacitores...................................................................................... 26
Tabla 2.6 Especificacin de la tarjeta programable............................................................. 33

Tabla 3.1 Dimensiones fsicas de las tarjetas electrnicas. ................................................. 46

Tabla 4.1 Pruebas de la tarjeta programable....................................................................... 50
Tabla 4.2 Caracterizacin del receptor de 4-20 mA. ........................................................... 55
Tabla 4.3 Caracterizacin del transmisor de 4-20 mA. ....................................................... 56

Tabla 5.1 Descripcin de plantas fabricadas ....................................................................... 59

Tabla 6.1 Experimentacin de voltaje eficaz y tiempo de recorte....................................... 80

Tabla B.1Ubicacin de componentes en la tarjeta principal. ............................................... 95

Tabla C.1 Programas de las pruebas de la tarjeta programable.......................................... 104

Tabla D.1 Variables del programa de configuracin y monitoreo. .................................... 143

Tabla E.1 Lista de componentes de la tarjeta principal...................................................... 146
Tabla E.2 Lista de componentes de la tarjeta de procesamiento........................................ 148
Tabla E.3 Lista de componentes de la tarjeta de E/S de 4-20 mA ..................................... 148
Tabla E.4 Lista de componentes de la tarjeta de aplicacin............................................... 149
Tabla E.5 Costo total de la tarjeta programable ................................................................. 149


vii
ACRONIMOS Y SIGLAS

A/D Analgico/digital
ADC Analog-digital converter (Convertidor analgico-digital)
ADCON0 Registro 0 de control del convertidor analgico-digital
ADCON1 Registro 1 de control del convertidor analgico-digital
ADFM Bit selector de formato de resultado del convertidor analgico-digital
ADRESH Byte alto del registro de resultado del convertidor analgico- digital
ADRESL Byte bajo del registro de resultado del convertidor analgico- digital
bms Bit menos significativo
CA Corriente alterna
CAN Controller Area Network (Red de rea de controlador)
CCP1 Terminal del mdulo 1 de captura, comparacin y modulacin por ancho
de pulsos
CCP1CON Registro de control del mdulo 1 de captura, comparacin y modulacin
por ancho de pulso
CCPR1L Byte bajo del registro 1 de captura, comparacin y modulacin por ancho
de pulso
CD Corriente directa
CMOS Complementary Metal-Oxide Semiconductor (Semiconductor de oxido
de metal complementario)
COP8 Control Oriented Processor (Procesador orientado a control)
CP Contador de programa
CPU Central processing unit (Unidad central de procesamiento)
D/A Digital/analgico
DAC Digital-analog converter (Convertidor digital-analgico)
DIP Dual Inline Package (Encapsulado doble en lnea)
DSC Digital signal controller (Controlador digital de seales)
DSP Digital signal processor (Procesador digital de seales)
E/S Entradas y salidas
EEPROM Electrically erasable programmable read-only memory (Memoria de solo
lectura programable elctricamente borrable)
EIA Electronic Industries Association (Asociacin de industrias de
electrnica)
FFT Fast Fourier Transform (Transformada rpida de Fourier)
gcc Gnu c compiler (Compilador C de gnu)
GNU GNU is not Unix (GNU no es Unix)
GPIB General purpose input board (Placa de entrada de propsito general)
HCMOS High-density Complementary Metal-Oxide Semiconductor
(Semiconductor de oxido de metal complementario de alta densidad)
ICD In-Circuit Debugger (Depurador en circuito)
ICE In-Circuit Emulator (Emulador en circuito)
IDE Integrated development environment (Ambiente integrado de desarrollo)
IEEE Institute for Electrical and Electronics Engineers (Instituto para
ingenieros elctricos y electrnicos)
IIC o I
2
C Inter Integrated Circuit (Interconexin de circuitos integrados)

viii
IrDA Infrared Data Association
ISA Industry Standard Architecture (Arquitectura de estndar industrial)
ISP In System Programming (Programacin en sistema)
kHz KiloHertz
LCD Liquid Crystal Display (Pantalla de cristal lquido)
LED Light-Emitting Diode (Diodo emisor de luz)
LPT Line Print Terminal (Terminal de lnea de impresora)
mA MiliAmpere
MHz MegaHertz
MIDI Musical instrument digital interface (Interfaz digital de instrumento
musical)
MIMO Multiple Input, Multiple Output (Mltiples entradas, mltiples salidas)
MIPS Millions of Instructions per second (Millones de instrucciones por
segundo)
MN Moneda nacional
MOSFET Metal-Oxide Semiconductor field effect transistor (Transistor de efecto
de campo de semiconductor de oxido de metal)
nF Nanofaradio
PC Personal Computer (Computadora personal)
PCI Peripheral Component Interconnect (Interconexin perifrica de
componentes)
PCMCIA Personal Computer Memory Card Internacional Association (Asociacin
internacional de tarjetas de memoria de computadora personal)
PDA personal digital assistant (Asistente digital personal)
pF Picofaradio
PI Proporcional integral
PIC programmable integrated circuit (Circuito integrado programable)
PLC Programmable logic controller (Controlador lgico programable)
PLCC Plastic-Leaded Chip Carrier (Encapsulado de montaje superficial para
circuito integrado)
PR2 Registro de perodo del temporizador 2
PWM Pulse Width Modulation (Modulacin por ancho de pulso)
RAM Random access memory (Memoria de acceso aleatorio
RC Resistencia-capacitor
RISC Reduced Instruction Set Computer (Computadora con conjunto reducido
de instrucciones)
ROM Read-only memory (Memoria de solo lectura)
SCI Serial communications Interface (Interfaz de comunicacin serial)
SCL Serial clock (Reloj serial)
SD Secure digital
SDA Serial data (Dato serial)
SISO Single Input, Single Output (Una entrada, una salida)
spbrg Registro generador de baudios
SPI Serial Peripheral Interface (Interfaz perifrica serial)
T2CON Registro de control del temporizador TMR2
TI Texas Instruments
TIA Thanks In Advance

ix
TOSC Tiempo de oscilacin
TTL Transistor-transistor logic (Lgica transistor-transistor)
C Microcontrolador
F Microfaradio
UPS Uninterruptible power supply (Fuente de poder ininterrrumpible)
s Microsegundo
USART Universal synchronous/asynchronous receiver transmitter (Transmisor-
receptor universal sncrono/asncrono)
USB Universal Serial Bus (Bus serie universal)
VCD Volts corriente directa
Wi-Fi Wireless Fidelity (Fidelidad inalmbrica)



x
NOMENCLATURA

C Capacitor
C
PIN
Capacitancia de entrada
C
RETEN
Capacitancia de muestreo y retencin del DAC
E(n) Error en tiempo discreto
E(t) Error en tiempo continuo
F Frecuencia
f
c
Frecuencia de corte
F
OSC
Frecuencia de oscilador
h
FE
Ganancia de corriente
I
B
Corriente de base
I
B(max)
Corriente mxima de base
I
B(sat)
Corriente de base cuando el transistor esta en saturacin
I
C(max)
Corriente mxima de colector
I
C(sat)
Corriente de colector cuando el transistor esta en saturacin
I
f
Corriente del fotodiodo en polarizacin directa
I
FUGA
Corriente de fuga en la terminal debido a varias conexiones
I
max
Corriente mxima
K
I
Ganancia integral
K
P
Ganancia proporcional
R
IC
Resistencia de interconexin
R Resistencia
R
s
Impedancia de la fuente
R
ss
Impedancia del interruptor interno de muestreo
S
S
Interruptor de muestreo
T
ACQ
Tiempo mnimo de adquisicin
T
AMP
Tiempo de establecimiento del amplificador
T
C
Tiempo de carga del capacitor de retencin
T
COFF
Coeficiente de temperatura
T
I

VAIN Voltaje analgico de entrada
V
BE(on)
Voltaje entre base y emisor cuando el transistor esta en funcionamiento
V
CC
Voltaje de alimentacin
V
CE(on)
Voltaje entre colector y emisor cuando el transistor esta en funcionamiento
V
CE(sat)
Voltaje entre colector y emisor cuando el transistor esta en saturacin
V
DD
Voltaje del dispositivo
V
ef
Voltaje eficaz
V
f
Voltaje de diodo en polarizacin directa
V
inst
Voltaje instantaneo
V
p
Voltaje pico
V
T
Voltaje de umbral
t
max
Aumento mximo de temperatura

c
Frecuencia de corte


Diseo y construccin de una tarjeta programable Captulo 1. Introduccin
de adquisicin, procesamiento de datos y control
1

















CAPTULO 1. INTRODUCCIN

Diseo y construccin de una tarjeta programable Captulo 1. Introduccin
de adquisicin, procesamiento de datos y control
2
1.1. Antecedentes

Los sistemas de adquisicin de datos se utilizan cada vez ms en laboratorios, industria y
educacin. Puede ser slo para la lectura de las variables fsicas (presin, nivel, temperatura
y flujo por ejemplo), para visualizar el estado de un proceso o bien, para el procesamiento
de estas variables con la finalidad de controlar un proceso. Con un sistema de adquisicin
de datos se puede obtener el valor de las variables fsicas. Tambin es posible llevar un
registro de los valores de las variables del proceso. Muchos procesos industriales se
monitorean y/o controlan con tarjetas de adquisicin de datos y una computadora, adems
de graficadores y de registradores.

La mayora de estas aplicaciones usan mdulos de adquisicin de datos compatibles con la
computadora para adquirir datos y transferirlos directamente a la memoria de la
computadora. Estos mdulos de adquisicin de datos pueden conectarse de forma interna
(PCI, PXI) o externa (PCMCIA, USB, IEEE 1394 o RS232) a la computadora por alguno
de los puertos disponibles, por ejemplo los que se describen en la seccin 1.3.3 de Mdulos
de adquisicin de datos.


1.2. Descripcin del problema

La mayora de las tarjetas de adquisicin de datos comerciales son de aplicacin especfica,
esto es, operan adquiriendo y enviando informacin por medio del puerto serie, paralelo,
USB o por los puertos ISA y PCI, etc., a una computadora, pero no pueden operar de forma
autnoma. El trmino tarjeta autnoma se refiere a que la tarjeta puede por s misma (sin
necesidad de la computadora), adquirir, procesar, calcular y enviar los valores de las
acciones de control para la operacin de algn mecanismo o proceso. El trmino
programable a que permite que el programa de control de la tarjeta pueda ser modificado
para la aplicacin que se dese monitorear y/o controlar.

En el Departamento de Ciencias Computacionales del cenidet se requiere del uso de tarjetas
de adquisicin de datos que sean capaces de trabajar de forma autnoma para pruebas de
interaccin con el entorno empleando visin elemental, esto es, empleando sensores
digitales; de proximidad, infrarrojos, de color, etctera. De igual manera en algunos cursos
de la Maestra en Mecatrnica se requiere de este tipo de tarjetas para la realizacin de
prcticas.

El grupo de visin artificial del cenidet est en condiciones de modelar y solucionar
problemas de inspeccin elemental, pero no ha encontrado una tarjeta comercial de
adquisicin de datos econmica que trabaje de forma autnoma y satisfaga las condiciones
necesarias para poder aplicar los algoritmos de control e interactuar con un proceso.
Diseo y construccin de una tarjeta programable Captulo 1. Introduccin
de adquisicin, procesamiento de datos y control
3
1.3. Estado del arte de sistemas de adquisicin, procesamiento de datos y control
de procesos

En esta seccin se describen los diferentes sistemas empleados slo para adquisicin de
datos o bien, para la adquisicin, procesamiento de datos y control, as como las partes que
los conforman.

Se denomina sistema de adquisicin de datos al conjunto de elementos empleados para
medir una o varias seales analgicas o digitales.

Las etapas de un sistema de adquisicin, procesamiento de datos y control son:

Transductores y sensores
Acondicionadores de seal
Mdulo de adquisicin de datos
Controlador (controlador lgico programable o PLC, computadora, asistente digital
personal, microcontrolador)

1.3.1. Transductores y sensores

La adquisicin de datos comienza con el fenmeno fsico a ser medido. Este fenmeno
fsico podra ser la temperatura de un recinto, la intensidad de una fuente luminosa, la
presin dentro de una cmara, la fuerza aplicada a un objeto, etctera. Un sistema de
adquisicin de datos efectivo puede medir todos estos diferentes fenmenos.

Un transductor es un dispositivo que convierte de un tipo de energa a otro. El sensor es un
transductor que convierte una magnitud fsica a otra para facilitar su medicin,
especficamente a una seal elctrica para mdulos de adquisicin de datos. La capacidad
de un sistema de adquisicin de datos para medir diferentes fenmenos depende de los
sensores. Los sensores se clasifican de acuerdo al tipo de seal de salida en dos grupos:

Sensores digitales
Sensores analgicos

Un sensor digital es aquel que entrega una salida del tipo discreta. Los sensores digitales
entregan una salida de tipo binaria las cuales poseen dos estados posibles (0 y 1). Los
sensores digitales ms comunes son:

Interruptor, botn o pulsador.
Microinterruptor.
Sensores infrarrojos optoacoplados.
o De reflexin. (utilizados para detectar la presencia de objetos)
o De ranura. (utilizado en encoders)

Diseo y construccin de una tarjeta programable Captulo 1. Introduccin
de adquisicin, procesamiento de datos y control
4
Un sensor analgico es aquel que puede entregar una salida variable dentro de un
determinado intervalo; por ejemplo, entre 0 y 5 Volts. Los sensores analgicos ms
comunes son:

Resistencia variable.
Sensor de temperatura.
Fotorresistencia. (Mide la intensidad de la luz)

1.3.2. Acondicionadores de seales

El problema de varios transductores es que generan seales demasiado difciles o peligrosas
de medir directamente con un mdulo de adquisicin de datos. Por ejemplo, cuando se
trabaja con alto voltaje, en ambiente con ruido elctrico, con seales extremadamente altas
o bajas o para la medicin simultnea de varias seales. Es por esto que es necesario
acondicionarlas para que el mdulo de adquisicin de datos pueda medirlas con mayor
precisin. Este proceso es conocido como acondicionamiento de seales e incluye
funciones como amplificacin, atenuacin, filtrado, aislamiento elctrico y multiplexeo.

1.3.3. Mdulos de adquisicin de datos

La mayora de los mdulos de adquisicin de datos tienen entradas, tanto analgicas como
digitales y funcionan solamente con conexin a la computadora. Estos mdulos operan
nicamente en lazo abierto para el monitoreo de variables. Otros mdulos con conexin a la
computadora tienen tanto entradas como salidas (analgicas y digitales). stas no pueden
ser programadas para calcular una accin de control. La activacin de las salidas depende
de las acciones de control provenientes de la computadora. Ver figura 1.1.
Figura 1.1 Mdulo de adquisicin de datos.

Algunos equipos pueden estar monitoreando las variables de un proceso y guardar los datos
en una memoria de tipo Flash, poder sustituir esta memoria y conectarla en una
computadora para descargar los datos almacenados.


Seales
enviadas a
la
PC

Seales
recibidas
desde la
PC


Seales de
entrada




Seales de
salida



Acondicionamiento
de seales
Diseo y construccin de una tarjeta programable Captulo 1. Introduccin
de adquisicin, procesamiento de datos y control
5
Otros equipos de adquisicin de datos pueden aplicar un procesamiento matemtico a una
seal de entrada (por ejemplo la transformada rpida de Fourier) pero esta caracterstica es
programada de fbrica y slo puede ser configurada.

Un sistema de adquisicin, procesamiento de datos y control tiene: entradas y salidas (tanto
analgicas como digitales), conexin opcional a un controlador y esencialmente cuenta con
un controlador interno que permite el procesamiento de los datos de entrada y tomar
decisiones sin la necesidad de un controlador externo. Ver figura 1.2.

Figura 1.2 Diagrama a bloques de un sistema de adquisicin, procesamiento de datos y control.

Respecto a los mdulos de adquisicin de datos, stos pueden clasificarse en dos grandes
grupos: las tarjetas internas, conectadas internamente a un bus de una computadora como el
bus PCI; y los mdulos externos, que se conectan a la computadora por medio de un puerto
de comunicacin como el puerto paralelo, el puerto serie RS232, el puerto Firewire y el
puerto USB, el cual es el ms usado actualmente.

Actualmente, las tarjetas de adquisicin de datos se aplican en la industria, existen varias
empresas que se dedican a la fabricacin de dichas tarjetas en una amplia variedad de
caractersticas y precios.

Las caractersticas ms importantes de las tarjetas de adquisicin de datos son:
Tabla 1.1 Caractersticas ms importantes de las tarjetas de adquisicin de datos.
Nmero de entradas/salidas Cantidad de entradas/salidas disponibles.
Tipo de entradas/salidas La seal que procesa puede ser analgica o digital.
Resolucin Valor mnimo que puede identificarse de una seal
analgica.
Intervalo Los niveles de voltaje o corriente permitidos en la
entrada/salida.
Frecuencia de muestreo La cantidad de muestras adquiridas en un segundo.
Puerto de conexin El puerto por el que la tarjeta se conecta a la PC o a otra
tarjeta.





Opto
acopla
dores


Controlador
interno

Seales
enviadas a
la
PC

Seales
recibidas
desde la
PC




Opto
acopla
dores
Acondicio
namiento
de
seales de
entrada


Seales de
salida
Diseo y construccin de una tarjeta programable Captulo 1. Introduccin
de adquisicin, procesamiento de datos y control
6
En la tabla 1.2 se muestran algunas tarjetas comerciales de adquisicin de datos.
Tabla 1.2 Sistemas comerciales de adquisicin de datos.
D
I
7
1
0

9
-
3
6

-
-

T
a
r
j
e
t
a

S
D

r
e
m
o
v
i
b
l
e

1
M
B


1
G
B

1
6

1
4

4
,
8
0
0


1
0

-
-

-
-

8

0

a

5

U
S
B
/
E

T
H
E
R
N
E
T

$
5
4
0
0

a

$
8
7
0
0

D
A
T
A
Q

I
n
s
t
r
u
m
e
n
t
s

D
I
-
1
4
8
U

U
S
B

-
-

-
-

8

1
0

1
4
,
4
0
0


1
0

-
-

-
-

6

0

a

5

U
S
B

$
5
5
0

D
A
T
A
Q

I
n
s
t
r
u
m
e
n
t
s

D
I
-
1
5
8

U
S
B

-
-

-
-

4

1
2

1
4
,
4
0
0


1
0

2

1
2

4

0

a

5

U
S
B

$
1
,
1
0
0

D
A
T
A
Q

I
n
s
t
r
u
m
e
n
t
s

D
I
-
1
5
4
R
S

R
S
2
3
2

-
-

-
-

4

1
2

2
4
0


1
0

-
-

-
-

-
-

-
-

R
S
2
3
2

$
1
,
6
5
0

D
A
T
A
Q

I
n
s
t
r
u
m
e
n
t
s

D
I
-
1
9
4
R
S

R
S
2
3
2

-
-

-
-

4

1
0

2
4
0


1
0

-
-

-
-

-
-

-
-

R
S
2
3
2

$
3
0
0

D
A
T
A
Q

I
n
s
t
r
u
m
e
n
t
s

D
T
9
8
1
0

U
S
B

-
-

-
-

8

1
0

2
5
,
0
0
0

0

a

2
.
4
4

-
-

-
-

2
0

0

a

5

U
S
B

$
1
,
6
0
0

D
a
t
a

T
r
a
n
s
l
a
t
i
o
n

U
S
B
-
6
0
0
9

U
S
B

-
-

-
-

8

1
4

4
8
,
0
0
0

1

a

2
0

2

1
2

1
2

0

a

5

U
S
B

$
2
,
7
0
0

N
a
t
i
o
n
a
l

I
n
s
t
r
u
m
e
n
t
s

U
S
B
-
6
0
0
8

U
S
B

-
-

-
-

8

1
2

1
0
,
0
0
0

1

a

2
0

2

1
2

1
2

0

a

5

U
S
B

$
1
,
6
0
0

N
a
t
i
o
n
a
l

I
n
s
t
r
u
m
e
n
t
s


V
o
l
t
a
j
e

d
e

a
l
i
m
e
n
t
a
c
i

n

(
V
)

M
e
m
o
r
i
a

d
e

p
r
o
g
r
a
m
a


(
K
B
y
t
e
s
)

M
e
m
o
r
i
a

d
e

d
a
t
o
s

E
n
t
r
a
d
a
s

a
n
a
l

g
i
c
a
s

R
e
s
o
l
u
c
i

n

d
e

e
n
t
r
a
d
a

(
b
i
t
s
)

F
r
e
c
u
e
n
c
i
a

d
e

m
u
e
s
t
r
e
o

(
m
u
e
s
t
r
a
s

/
s
e
g
u
n
d
o
)

I
n
t
e
r
v
a
l
o

d
e

e
n
t
r
a
d
a

(
V
)

S
a
l
i
d
a
s

a
n
a
l

g
i
c
a
s

R
e
s
o
l
u
c
i

n

d
e

s
a
l
i
d
a

(
b
i
t
s
)

E
/
S

d
i
g
i
t
a
l
e
s

I
n
t
e
r
v
a
l
o

d
e

s
a
l
i
d
a

(
V
)

P
u
e
r
t
o

d
e

c
o
m
u
n
i
c
a
c
i

n

c
o
n

P
C

P
r
e
c
i
o

(
p
e
s
o
s

m
e
x
i
c
a
n
o
s
)

F
a
b
r
i
c
a
n
t
e

T
.
P
.

T
a
r
j
e
t
a

p
r
o
g
r
a
m
a
b
l
e

-
-

N
o

t
i
e
n
e


Diseo y construccin de una tarjeta programable Captulo 1. Introduccin
de adquisicin, procesamiento de datos y control
7

1.3.4. Controladores

Las funciones del controlador de un sistema de adquisicin de datos son:

Visualizar las variables provenientes de los sensores.
Procesar las seales de entrada.
Calcular una accin de control.
Registrar y/o graficar las seales de entrada.

Los principales controladores para sistemas de adquisicin de datos son:

Controlador lgico programable (PLC)
Computadora
Asistente digital personal (PDA)
Microcontroladores

1.3.4.1. Puertos para los mdulos de adquisicin de datos

Los mdulos de adquisicin de datos pueden utilizar uno o varios puertos para comunicarse
con un controlador o con otros dispositivos.

En trminos de computacin, un puerto es una forma genrica de denominar a una interfaz
por la cual diferentes tipos de datos pueden ser enviados y recibidos. La interfaz puede ser
fsica o a nivel software (por ejemplo, los puertos que permiten la transmisin de datos
entre diferentes computadoras).

En la tabla 1.3 se muestran los puertos disponibles ordenados por medio de transmisin
(almbrico o inalmbrico), tipo de transmisin (paralelo o serie) y velocidad de
transmisin.
Diseo y construccin de una tarjeta programable Captulo 1. Introduccin
de adquisicin, procesamiento de datos y control
8
Tabla 1.3 Comparacin de puertos de comunicacin. [1]
Puerto Formato
Nmero
mximo de
dispositivos
Longitud
mxima
(m)
Velocidad
mxima
(bits/s)
Aplicacin tpica
LPT Paralelo 2 3-9 8M
Impresoras,
escaners, unidades
de disco
IEEE-488
(GPIB)
Paralelo 15 18 8M Instrumentacin
RS-232
(EIA/TIA-
232
Serial
asncrono
2 15-30
20k (115k con
hardware
extra)
Modem, ratn,
instrumentacin
MIDI
Lazo de
corriente serial
2 15 31.5k
Msica, control de
espectculos
Microwire Serial sncrono 8 3 2M
Comunicacin
entre
microcontroladores
SPI Serial sncrono 8 3 2.1M
Comunicacin
entre
microcontroladores
I
2
C Serial sncrono 40 5.5 3.4M
Comunicacin
entre
microcontroladores
USB
Serial
asncrono
127 5
1.5M, 12M,
480M
Ratn, unidad de
disco, modem,
audio
RS485
(TIA/EIA-
485)
Serial
asncrono
32 cargas
unitarias
1220 10M
Sistemas de
adquisicin de
datos y de control
Ethernet Serial 1024 490 10M/100M/1G PC en red
IEEE-
1394
(FireWire)
Serial 64 4.5 400M
Video,
almacenamiento
masivo
IrDA
Serial
asncrono
infrarrojo
2 1.8 115k
Impresoras,
asistente digital
personal (PDA)
Bluetooth
Serial
radiofrecuencia
32 10 723k
Telfonos
celulares, PDAs,
videocmara
Wi-Fi
(IEEE
802.11x)
Serial
radiofrecuencia
60 11M, 54M PC en red

Diseo y construccin de una tarjeta programable Captulo 1. Introduccin
de adquisicin, procesamiento de datos y control
9

1.4. Propuesta de solucin

Con la finalidad de resolver problemas tanto de adquisicin de datos y para controlar
diversos procesos con un solo mdulo se plante:

Disear y construir una tarjeta programable de adquisicin, procesamiento de datos
y control que funcione de manera autnoma con base en un programa contenido en
un microcontrolador, y que pueda controlar una amplia variedad de procesos.
Gracias a las caractersticas propias del microcontrolador, los puertos digitales de la
tarjeta podrn configurarse por software de acuerdo a las necesidades de un proceso
determinado.

Desarrollar los programas necesarios para la interaccin del microcontrolador con
los dems componentes de la tarjeta, la adquisicin, procesamiento de los datos, el
clculo de los valores de la accin de control y el envo de estos valores para el
control de procesos especficos.

1.4.1. Objetivos

1.4.1.1. Objetivo general
Disear y construir una tarjeta programable y autnoma de adquisicin,
procesamiento de datos y control, con opcin de conexin a la computadora o a otra
tarjeta similar.

1.4.1.2. Objetivos especficos
Revisar y seleccionar el microcontrolador a utilizar.
Revisar y seleccionar el protocolo de comunicacin con la PC de acuerdo a los
requerimientos de la tarjeta.
Disear los diagramas electrnicos de la tarjeta programable de adquisicin,
procesamiento de datos y control.
Realizar el programa de monitoreo y control de la tarjeta programable de
adquisicin, procesamiento de datos y control.
Construir la tarjeta programable de adquisicin, procesamiento de datos y control.
Verificar el funcionamiento y la versatilidad de la tarjeta controlando tres procesos
diferentes.

1.4.2. Metodologa de solucin

1. Revisar, estudiar y analizar el estado del arte y de la prctica en torno a la
adquisicin y control A/D. As como de los protocolos estndar de comunicacin a
la PC.
2. Estudiar y conocer los diferentes tipos de microcontroladores existentes en el
mercado, su uso, funcionalidad y aplicabilidad en el desarrollo del proyecto.
3. Disear e implementar los circuitos electrnicos para la tarjeta, y de ser necesario,
tambin de los dispositivos sensores.
Diseo y construccin de una tarjeta programable Captulo 1. Introduccin
de adquisicin, procesamiento de datos y control
10
4. Disear e implementar el software para el control y monitoreo de las entradas y
salidas de la tarjeta.
5. Disear un plan de pruebas y realizar las pruebas con diferentes configuraciones de
la tarjeta (conectado a la PC y en forma autnoma).
6. Evaluar el funcionamiento global de la herramienta.
7. Aplicar ajustes a la herramienta en caso de que los resultados no sean los esperados.

1.4.3. Aportacin o contribucin

Se empezar en la Coordinacin de Mecatrnica del cenidet a desarrollar una tecnologa
propia de tarjetas programables.

Se contar con una tarjeta programable de adquisicin, procesamiento de datos y control,
econmica (no ms de $ 1,200 de costo de componentes), fcil de programar (en lenguaje
C) y documentada, para aplicaciones a nivel laboratorio, para la realizacin de prcticas en
los Departamentos de Electrnica y ciencias computacionales y la Coordinacin de
Mecatrnica.

Se usar como base para el desarrollo de trabajos de la coordinacin de Mecatrnica y con
el grupo de visin artificial del Departamento de Ciencias Computacionales del cenidet.


1.5. Organizacin de la tesis

La tesis se encuentra dividida en 7 captulos distribuidos de la siguiente manera:

En el captulo 1 se encuentran los antecedentes, la descripcin del problema, el estado del
arte de sistemas de adquisicin de datos y control, la propuesta de solucin con los
objetivos y la metodologa de trabajo.

El captulo 2 describe las necesidades de las plantas de muestra consideradas para el
desarrollo de la tarjeta programable, adems de la descripcin funcional de mdulos
deseables en la tarjeta.

El captulo 3 abarca el diseo electrnico de la tarjeta donde se describen los circuitos
electrnicos que conforman la tarjeta programable.

El captulo 4 consta de la construccin, ensamble y pruebas de las tarjetas de circuito
impreso.

En el captulo 5 se describe el diseo mecnico y elctrico, construccin y algoritmo de
control de cada una de las plantas a controlar.

El captulo 6 muestra la experimentacin y los resultados obtenidos de la aplicacin de la
tarjeta programable controlando 3 plantas.

El captulo 7 presenta las conclusiones de la elaboracin del presente proyecto de tesis.
Diseo y construccin de una tarjeta programable Captulo 2. Determinacin de las caractersticas
de adquisicin, procesamiento de datos y control funcionales de la tarjeta programable
11
















CAPTULO 2. DETERMINACIN DE LAS
CARACTERSTICAS FUNCIONALES DE
LA TARJETA PROGRAMABLE

Diseo y construccin de una tarjeta programable Captulo 2. Determinacin de las caractersticas
de adquisicin, procesamiento de datos y control funcionales de la tarjeta programable
12
2.1. Recursos requeridos por plantas o procesos

La especificacin de la tarjeta programable y la seleccin del microcontrolador se
definieron de acuerdo a los requerimientos de cinco plantas o procesos tpicos a controlar.
Las plantas que se consideraron son: una incubadora, una banda transportadora, un
microbot seguidor de lnea, una plataforma de paneles solares y un brazo robtico. Los
recursos requeridos por las plantas se indican en la tabla 2.1.
Tabla 2.1 Recursos requeridos por plantas o procesos.
Planta o proceso

Recursos
Incubadora
Banda
transportadora
Microbot
Plataforma de
paneles solares
Brazo
robtico
Tipo de proceso SISO MIMO MIMO MIMO MIMO
Valor
mximo
+ 10%
Analgicas 1 - 3 - - 4
Entradas
Digitales - 2 3 13 8 14
Digitales 1 - - - - 1
Motor paso
a paso
- - 2 - - 3
Salidas
Motor CD
(PWM)
- 2 - 2 4 5
Tiempo de respuesta
requerido (segundos)
2 0.5 0.5 1 1E-05 1E-06
Precisin en entradas
analgicas
1 % - - - - 0.5 %
Memoria de programa

(Bytes)
90 150 300 1500 6000 8000

Al valor mximo de cada requerimiento se le agreg aproximadamente un 10 % adicional
para tener un margen de seguridad y obtener las caractersticas preliminares de la tarjeta
programable.

2.2. Microcontroladores y controladores de seal digital

En la presente seccin se describen los principales microcontroladores utilizados en
Mxico, adems de los nuevos controladores con caractersticas tanto de
microcontroladores como de procesadores de seal digital (DSP). Estos dispositivos se
consideran ms aptos para la solucin del problema por sus destacables caractersticas de
funcionamiento adems de pertenecer a los principales distribuidores de componentes
electrnicos en Mxico.

2.2.1. Microcontroladores

Los sistemas de control embebidos ms pequeos usan microcontroladores como su
procesador, con la ventaja de que stos incorporan componentes que tienen la funcionalidad
de una computadora en un circuito integrado.

Un microcontrolador est constituido por una Unidad Central de Procesamiento (CPU), una
pequea cantidad de memoria interna (ROM y/o RAM), y una forma de entradas y salidas
(E/S), las cuales estn implementadas como subsistemas. Estos subsistemas proporcionan la
funcionalidad adicional para el procesador y son comunes entre varios procesadores.
Diseo y construccin de una tarjeta programable Captulo 2. Determinacin de las caractersticas
de adquisicin, procesamiento de datos y control funcionales de la tarjeta programable
13

Las E/S ms comunes son de tipo digital. Estas se agrupan en puertos y pueden ser
configuradas por software como entrada o salida. Las terminales configuradas como
entradas pueden ser usadas para leer el estado de interruptores, botones pulsadores o de otro
dispositivo. Las terminales configuradas como salidas pueden ser utilizadas para encender o
apagar dispositivos externos o transmitir estados a otro dispositivo.

Varios microcontroladores tienen otros subsistemas adems de las E/S digitales, pero si no
se requiere la funcionalidad de dichos subsistemas se proporciona la capacidad de convertir
las terminales de stos a E/S digitales. Para un diseador de sistemas, esto da gran
versatilidad en como usar un microcontrolador dentro de una aplicacin.

Varios microcontroladores tienen adems entradas analgicas, lo que permite muestrear
sensores para propsitos de monitoreo o registro. Algunos tienen puertos seriales que les
permiten ser comunicados con una computadora u otro microcontrolador. Las formas
estandarizadas de interfaz serial, como la Interfaz Perifrica Serial (Serial Peripheral
Interface o SPI) y la Interconexin de Circuitos Integrados (Inter-Integrated Circuit o I
2
C),
proporcionan una manera sencilla de expandir la funcionalidad del microcontrolador.

La mayora de microcontroladores tienen temporizadores y contadores. stos pueden ser
usados para generar interrupciones internas a intervalos regulares, para generar disparos a
dispositivos externos al microcontrolador o para proporcionar pulsos de control para
motores. Alternativamente pueden ser usados para contar disparos externos (pulsos) de otro
dispositivo.

La mezcla de subsistemas de E/S que tienen los microcontroladores puede variar
considerablemente. Algunos microcontroladores estn dirigidos para control digital simple
y pueden tener solamente E/S digitales. Otros pueden estar dirigidos a aplicaciones
industriales y pueden tener E/S digitales, entradas analgicas, control de motores y
comunicacin con otros dispositivos de control. La seleccin de un microcontrolador (ya
que hay literalmente miles de familias disponibles de varios fabricantes) depende de las
necesidades de procesamiento y los requerimientos de comunicacin.

Los microcontroladores ms comunes en Mxico son los PIC de Microchip, los 68HCxx de
Motorola, los COP8 de National y los AVR de Atmel, que son los que se presentan en la
tabla 2.2.


Diseo y construccin de una tarjeta programable Captulo 2. Determinacin de las caractersticas
de adquisicin, procesamiento de datos y control funcionales de la tarjeta programable
14
Tabla 2.2 Caractersticas tcnicas de los microcontroladores.
T
I

(
D
S
P
)

T
M
S
3
2
0
L
F
2
4
0
7

4
0

M
H
z

3
2

K

2
.
5

K

X

4
1

X

X

2

d
e

1
6

b
i
t
s

3
.
3

V

1
6

c
a
n
a
l
e
s

d
e

1
0

b
i
t
s

P
G
E

1
4
4

t
e
r
m
i
n
a
l
e
s

2
5

n
s

C

C
o
d
e

C
o
m
p
o
s
e
r

S
t
u
d
i
o

$

2
6
7
.
0
0

A
G

e
l
e
c
t
r

n
i
c
a

-
-

-
-


M
o
t
o
r
o
l
a

M
C
6
8
H
C
1
2

8

M
H
z

3
2

K

1

K

7
6
8

1
1
0

6
3

X

X

-
0
.
3


6
.
5

V

8

c
a
n
a
l
e
s

d
e

1
0

b
i
t
s

Q
F
P

8
0

t
e
r
m
i
n
a
l
e
s

E
n
s
a
m
b
l
a
d
o
r

M
C
U
e
z

$

2
8
7
.
0
0

A
G

e
l
e
c
t
r

n
i
c
a

-
-

-
-


M
o
t
o
r
o
l
a

M
C
6
8
H
C
1
1
A
8

3

M
H
z

2
5
6

8

K

5
1
2

1
4
5

3
8

X

X

1

d
e

8

b
i
t
s

-
0
.
3


7

V

8

c
a
n
a
l
e
s

d
e

8

b
i
t
s

Q
F
P

6
4

t
e
r
m
i
n
a
l
e
s

E
n
s
a
m
b
l
a
d
o
r

M
C
U
e
z

$

1
3
6
.
0
0

A
G

e
l
e
c
t
r

n
i
c
a

-
-

-
-


M
i
c
r
o
c
h
i
p

d
s
P
I
C
3
0
F

2
0
-
3
0

M
H
z

1
2

K

-

4
8

K

1

K


2

K

1

K

8
4

2
0

-

3
0

X

X

3

d
e

1
6

b
i
t
s

4
.
5


5
.
5

V

8

c
a
n
a
l
e
s

d
e

1
2

b
i
t
s

D
I
P

1
8


2
8


4
0


3
3
.
3


5
0

n
s

C

M
P
L
A
B

$

1
4
2
.
0
0

M
i
c
r
o
c
h
i
p

.
c
o
m


-
-


M
i
c
r
o
c
h
i
p

P
I
C
1
6
C
7
6
5

2
4

M
H
z

8

K

2
5
6

X

3
5

3
3

X

X

2

d
e

8

b
i
t
s

1

d
e

1
6

b
i
t
s

4
.
3
5


5
.
2
5

V

8

c
a
n
a
l
e
s

d
e

8

b
i
t
s

T
Q
F
P

4
4

t
e
r
m
i
n
a
l
e
s

C

M
P
L
A
B

$

2
5
1
.
0
0

A
G

e
l
e
c
t
r

n
i
c
a

-
-

-
-


A
t
m
e
l

A
T
m
e
g
a
1
0
3

6
M
H
z

1
2
8

K

4

K

4

K

1
2
1

3
2

8

8

2

d
e

8

b
i
t
s

1

d
e

1
6

b
i
t
s

4
.
0


5
.
5

V

8

c
a
n
a
l
e
s

d
e

1
0

b
i
t
s

T
Q
F
P

6
4

t
e
r
m
i
n
a
l
e
s

1
6
0

n
s

C

A
V
R
S
t
u
d
i
o

M
o
u
s
e
r
.
c
o
m

-
-

-
-


M
i
c
r
o
c
h
i
p

P
I
C
1
6
F
8
7
7

2
0

M
H
z

8

K

3
6
8

2
5
6

3
5

3
3

X

X

2

d
e

8

b
i
t
s

1

d
e

1
6

b
i
t
s

2
.
0


5
.
5

V

8

c
a
n
a
l
e
s

d
e

1
0

b
i
t
s

P
D
I
P

4
0

t
e
r
m
i
n
a
l
e
s

2
0
0

n
s

C

M
P
L
A
B

$

7
8
.
0
0

A
G

e
l
e
c
t
r

n
i
c
a



S
T

S
T
7
L
i
t
e

0

1
6

M
H
z

1

K

1
2
8

1
2
8

6
3

1
3

5

d
e

1
3

X

1

d
e

8

b
i
t
s

1

d
e

1
2

b
i
t
s

2
.
4


5
.
5

V

5

c
a
n
a
l
e
s

d
e

8

b
i
t
s

D
I
P

1
6

t
e
r
m
i
n
a
l
e
s

E
n
s
a
m
b
l
a
d
o
r

$

2
3
.
5
0

M
o
u
s
e
r

.
c
o
m

-
-

-
-


A
t
m
e
l

A
T
t
i
n
y
2
8

4

M
H
z

2

K

X

X

9
0

1
1

8

1

1

d
e

8

b
i
t
s

2
.
7


5
.
5

V

X

P
D
I
P

2
8

t
e
r
m
i
n
a
l
e
s

2
5
0

n
s

C

A
V
R
S
t
u
d
i
o

$

1
6
.
5
0

M
o
u
s
e
r

.
c
o
m

-
-

-
-


M
i
c
r
o
c
h
i
p

P
I
C
1
6
F
8
4

1
0

M
H
z

1

K

6
8

6
4

3
5

1
3

X

X


1

d
e

8

b
i
t
s

2
.
0


6
.
0

V

X

P
D
I
P

1
8

t
e
r
m
i
n
a
l
e
s

4
0
0

n
s

C

M
P
L
A
B

$

6
3
.
0
0

A
G

e
l
e
c
t
r

n
i
c
a



C
a
r
a
c
t
e
r

s
t
i
c
a
s

M

x
i
m
a


f
r
e
c
u
e
n
c
i
a

d
e

o
p
e
r
a
c
i

n

M
e
m
o
r
i
a

d
e

p
r
o
g
r
a
m
a

M
e
m
o
r
i
a

d
e

d
a
t
o
s

M
e
m
o
r
i
a

E
E
P
R
O
M

J
u
e
g
o

d
e

i
n
s
t
r
u
c
c
i
o
n
e
s

T
e
r
m
i
n
a
l
e
s

E
S

p
r
o
g
r
a
m
a
b
l
e
s

T
e
r
m
i
n
a
l
e
s

E

T
e
r
m
i
n
a
l
e
s

S

C
o
n
t
a
d
o
r
/

t
e
m
p
o
r
i
z
a
d
o
r

V
o
l
t
a
j
e

d
e

o
p
e
r
a
c
i

n

A
D
C


b
i
t
s


E
n
c
a
p
s
u
l
a
d
o

T
i
e
m
p
o

d
e

c
i
c
l
o

d
e

i
n
s
t
r
u
c
c
i

n

C
o
m
p
i
l
a
d
o
r
e
s

H
e
r
r
a
m
i
e
n
t
a

d
e

p
r
o
g
r
a
m
a
c
i

n

C
o
s
t
o

C

P
r
o
v
e
e
d
o
r

I
n
f
o
r
m
a
c
i

n

E
x
p
e
r
i
e
n
c
i
a

d
e

l
o
s

t
e
s
i
s
t
a
s


N
i
v
e
l
e
s
:



-
-

N
i
n
g
u
n
a


B
a
j
o


R
e
g
u
l
a
r


A
l
t
o

C
a
m
b
i
o

d
e

d

l
a
r

=

$

1
0
.
3
0
.

P
r
e
c
i
o
s

s
i
n

I
V
A

Diseo y construccin de una tarjeta programable Captulo 2. Determinacin de las caractersticas
de adquisicin, procesamiento de datos y control funcionales de la tarjeta programable
15

2.2.1.1. National COP8
El microcontrolador COP8 es un circuito integrado fabricado por National Semiconductor.
Las siglas COP8 se refieren a un Procesador Orientado al Control de 8 bits. La familia del
COP8 se divide en cuatro grandes grupos que son:

Familia Bsica en Mscara ROM
Familia Caracterstica en Mscara ROM
Familia OTP
Familia S

La familia que interesa es la familia S subfamilia SB/CB porque es la nica que posee
memoria de programa tipo Flash. Hasta el momento slo hay versiones de 32 kbytes en
Flash y con conversor analgico a digital (ADC) (COP8CB) y sin ADC (COP8SB). Los
encapsulados son de tipo PLCC (Plastic-Leaded Chip Carrier, encapsulado de montaje
superficial para circuito integrado) de 44 y 68 terminales.

Esta familia del COP8 pertenece al ncleo de la familia caracterstica de alta escala de
integracin. La caracterstica particular del COP8CB es el comportamiento de la memoria
FLASH, ya que puede actuar como memoria virtual EEPROM (es decir, desde el programa
de usuario puede grabar datos en la misma memoria). Aunado a esta caracterstica se tiene
una unidad de conversin analgica-digital (COP8CB), temporizadores de alta velocidad,
ocho puertos, unidad de comunicacin serial USART (transmisin y recepcin sncrona y
asncrona universal) y reinicio por bajo voltaje de alimentacin. Se temporiza con cristales
de hasta 20MHz y es ISP (In System Programming, se puede programar el
microcontrolador en circuito). [2]



2.2.1.2. Microchip PIC

A finales de los 70s, General Instruments tena un procesador de 16 bits conocido como
CP1600. ste era grande y pas al olvido perdiendo terreno frente al 8086 de Intel y el
68000 de Motorola. El problema con el CP1600 fue que tena capacidad de E/S limitada, y
entonces General Instruments dise un procesador ms pequeo para actuar como un
controlador de E/S. La idea era que este controlador poda proporcionar no solamente las
E/S para el CP1600, sino que adems ser un procesador permitiendo proporcionar algn
grado de control inteligente. Este procesador fue llamado Controlador de Interfaz Perifrica
(Peripheral Interface Controller) o PIC. El CP1600 desapareci pero la pequea compaa
existe. A mediados de los 80s, la divisin de microelectrnica de General Instruments se
convirti en Microchip y el procesador PIC fue su producto central. Los PICs son
ampliamente usados en los controles de la consola de juegos Playstation de Sony, juguetes
infantiles, aparatos domsticos y sistemas industriales.

La arquitectura original del PIC tiene solamente un acumulador (conocido como registro de
trabajo o registro w) y de 25 a 368 bytes de RAM en los procesadores originales. El byte
Diseo y construccin de una tarjeta programable Captulo 2. Determinacin de las caractersticas
de adquisicin, procesamiento de datos y control funcionales de la tarjeta programable
16
menos significativo del contador de programa, el registro de estado y varios registros de
control estn ubicados en la parte baja del espacio RAM y pueden ser accesados por
operaciones de movimiento de memoria. La parte superior de la memoria RAM es para
datos. Microchip se refiere al espacio RAM como registros aunque tienen funcionalidad
limitada como registros reales. Son principalmente para almacenamiento de datos.

Aparte de algunas excepciones, el PIC no tiene buses externos y es una computadora
contenida dentro de un circuito integrado. La expansin es posible usando las interfases
perifricas del microcontrolador (SPI e I
2
C) o los puertos digitales de E/S. El PIC se
destaca de otros microcontroladores para aplicaciones en las que el tamao y el consumo de
potencia son crticos.

El PIC es de tipo RISC, es decir, est basado en un conjunto reducido de instrucciones. La
arquitectura es Harvard, en la cual el programa y los datos se encuentran en memorias
independientes. La memoria de datos es de 8 bits, mientras que la memoria de cdigo es de
12 o 16 bits dependiendo de la familia de PIC. [3]


El conjunto de microcontroladores PIC se distribuye en cuatro familias [4]:

Bsica (PIC12C5xx y PIC16C5x)
Media (PIC12C6xx y PIC16Cxx)
Alta (PIC17Cxxx)
Mejorada (PIC18Cxxx)

El ambiente de desarrollo de software de Microchip (MPLAB) proporciona un
ensamblador, un simulador y software para grabar el cdigo en los microcontroladores.
MPLAB puede descargarse gratuitamente del sitio Web de Microchip
(http://www.microchip.com). Existen varios compiladores del lenguaje C comerciales
(CCS, PICC, C18) para los PIC de los que pueden encontrarse versiones de demostracin
en la pgina oficial de cada compilador.

2.2.1.3. Atmel AVR

El AVR fue desarrollado en Noruega y es producido por ATMEL. Es un microcontrolador
RISC con arquitectura Harvard diseado para una rpida ejecucin y un bajo consumo de
potencia. Tiene 32 registros de 8 bits de propsito general y con 118 instrucciones provee
un ambiente de programacin verstil.

En muchos AVRs, la pila se encuentra en la memoria general. Puede entonces ser
manipulada por instrucciones y no tiene lmite de tamao. El AVR tiene los espacios de
memoria de programa y datos separados y soporta un espacio de direccin de hasta 8M. [3]


Diseo y construccin de una tarjeta programable Captulo 2. Determinacin de las caractersticas
de adquisicin, procesamiento de datos y control funcionales de la tarjeta programable
17
Hay tres familias bsicas dentro de la arquitectura AVR:

ATtiny, para aplicaciones de pequea escala.
AT90xxxx, que es la familia original.
ATmega, para aplicaciones complejas.

Para el desarrollo de software, se dispone de un puerto de gcc (compilador de C
desarrollado en el proyecto GNU) para el AVR. ATMEL proporciona un ensamblador, un
simulador y software para grabar los programas en los microcontroladores. El software de
ATMEL se puede descargar gratuitamente en su sitio Web (http://www.atmel.com).


2.2.1.4. Motorola HC11 / HC912

El HCMOS MC68HC11A8 es un microcontrolador de 8 bits con capacidades perifricas
integradas altamente sofisticadas. Un diseo completamente esttico y un proceso de
fabricacin de semiconductor oxido-metal complementario de alta densidad (High-density
Complementary Metal-Oxide Semiconductor o HCMOS) permiten dispositivos de serie E
para operar en frecuencias de 3 MHz a corriente directa, con bajo consumo de potencia. La
tecnologa CMOS de alta densidad utilizada en el MC68HC11A8 combina el menor
tamao y mayores velocidades con baja potencia y alta inmunidad al ruido de CMOS. Los
sistemas de memoria integrados incluyen 8 Kbytes de ROM, 512 bytes de EEPROM y 256
bytes de RAM esttica.

Ms funciones perifricas estn dentro del chip. Se incluye un conversor analgico a digital
de 8 canales con resolucin de 8 bits, adems de una interfaz de comunicacin serial
asncrona (SCI) y una interfaz perifrica serial sncrona (SPI). El sistema temporizador
principal de 16 bits tiene tres lneas de entrada de captura, cinco lneas de salida de
comparacin y una funcin de interrupcin de tiempo real. Un subsistema acumulador de
pulsos de 8 bits puede contar eventos externos o medir periodos externos.

La circuitera de auto monitoreo est incluida en el circuito integrado para proteger contra
errores del sistema. Un sistema de perro guardin (watchdog) de operacin apropiada
protege contra fallas por software. Un sistema de monitoreo de reloj genera un reinicio al
sistema en caso de que se pierda la seal de reloj o se ejecute demasiado lento. Se dispone
de dos modos de operacin controlados por software, WAIT y STOP, para ahorrar energa.
[5]

El MC68HC912 es un microcontrolador de 16 bits compuesto de perifricos estndares
dentro del chip. El bus externo multiplexado puede operar en modo reducido de 8 bits para
interconectar con una memoria de 8 bits en sistemas de menor costo. [6]


Diseo y construccin de una tarjeta programable Captulo 2. Determinacin de las caractersticas
de adquisicin, procesamiento de datos y control funcionales de la tarjeta programable
18
2.2.2. Controladores de seal digital

En la actualidad cada vez ms se empieza a desarrollar la tecnologa mezclada entre
microprocesadores y DSP's. Diversas son las razones para que se produzca esta integracin,
sin embargo, es posible identificar una en particular: los requerimientos de control en
tiempo real bajo condiciones cada vez ms exigentes en cuanto a necesidad de clculo han
llevado a los fabricantes de microcontroladores (Microchip, ST, etc.) a integrar a sus
microprocesadores caractersticas de DSP (unidades de clculo paralelas, ejecucin paralela
de instrucciones o pipeline, etc.) y por el otro lado los fabricantes de DSP's (Texas
Instruments, Motorola, etc.) empiezan a utilizar las caractersticas de microcontroladores
(conversores A/D, puertos digitales E/S, bloques de modulacin por ancho de pulso o
PWM) integrndolas dentro del DSP. Estos nuevos dispositivos son nombrados
controladores de seal digital.

Un controlador de seal digital (Digital Signal Controller o DSC) es un controlador
incrustado en un solo chip que integra los atributos de control de un microcontrolador con
la eficiencia y rendimiento computacional de un procesador de seal digital.

2.2.2.1. Texas Instruments C2000
La plataforma TMS320C2000 de controladores de seal digital establece el estndar de
desempeo e integracin perifrica ofreciendo una combinacin nica de tecnologa lder
en DSPs de Texas Instruments con la integracin de perifricos y facilidad de uso de
microcontroladores.

La familia TMS320C24x de controladores de seal digital ofrece de 20 a 40 MIPS de
desempeo DSP junto con el control y facilidad de uso de un microcontrolador con
memoria Flash o ROM integrada y son ideales para implementar algoritmos de control
sofisticados en aplicaciones sensibles de costo y limitados de espacio como productos de
lnea blanca. Al igual que el C28x, el C24x ofrece seguridad total de cdigo para su
propiedad de cdigo intelectual.

El conjunto de instrucciones de un ciclo permite calcular funciones matemticas complejas
en tiempo real mientras que la arquitectura Harvard optimiza la matemtica vectorial, ideal
para aplicaciones de control embebido. La arquitectura avanzada tipo Harvard del
controlador C24x maximiza la potencia de procesamiento manteniendo dos estructuras de
bus de memoria separadas, programa y datos, para ejecucin a velocidad completa. Esta
mltiple estructura de bus permite la lectura de datos e instrucciones simultneamente. Las
instrucciones soportan transferencia de datos entre los dos espacios.

La familia TMS320C28x de controladores de seal digital son los primeros controladores
de 32 bits basados en DSP de la industria con memoria Flash o ROM en tarjeta y
desempeo hasta de 150 millones de instrucciones por segundo (MIPS). Centrados a
motores y controles industriales y aplicaciones automotrices. El ncleo C28x es el ncleo
de mayor desempeo de control optimizado y ofrece hasta 150 MIPS de ancho de banda
computacional para manejar numerosos algoritmos de control sofisticado en tiempo real
como control de velocidad sin sensores, PWM aleatorio y correccin del factor de potencia.
Diseo y construccin de una tarjeta programable Captulo 2. Determinacin de las caractersticas
de adquisicin, procesamiento de datos y control funcionales de la tarjeta programable
19
El C28x es adems el ncleo ms eficiente de cdigo en la industria y su cdigo es
completamente compatible con dispositivos actuales de la familia C2000. [7]

Varias caractersticas nicas disponibles en el ncleo del controlador C28x fueron
desarrolladas junto con el compilador C para ofrecer una excelente relacin de C a
ensamblador de 1.1. El ncleo del controlador C28x fue diseado nicamente para soportar
la librera IQ-math dando al diseador la comodidad del desarrollo de algoritmos de
punto flotante a la perfeccin combinado con la efectividad de costos de una mquina de
punto fijo. En la tabla 2.3 se comparan las dos familias de controladores C2000.

Tabla 2.3 Comparacin de familia de controladores C2000.
Parmetro Controladores de
punto fijo C24x
Controladores de
punto fijo C28x
Unidades
Frecuencia de trabajo 20 40 150 MHz
Velocidad de
procesamientos
20 40 150 MIPS
Arquitectura Punto fijo de 16 bits Punto fijo de 32 bits
Memoria Flash / ROM 8 32 mil / 4 32 mil Hasta 128 mil / 4 mil Palabra
RAM Hasta 2.5 mil 18 mil Palabra
ADC 10 bit, 500 ns 12 bit, 80 ns
Perifricos SCI, SPI, CAN SCI, SPI, CAN,
McBSP

Administrador de
eventos
Hasta 16 PWM, E/S
de propsito general, 4
temporizadores,
CAP/QEP
16 PWM, E/S de
propsito general, 7
temporizadores,
CAP/QEP

Precio (por unidad en
la compra de mil
unidades)
22.00 180.00 64.00 182.00 Pesos
mexicanos


2.2.2.2. Microchip dsPIC

Los controladores de seal digital dsPIC abarcan un amplio campo de requerimientos de
desempeo, hacindolo una arquitectura ideal para cualquier consideracin de un
microcontrolador de 16 bits, DSP o incluso un microcontrolador de 32 bits.

Los dispositivos fueron diseados para proporcionar un aspecto familiar a los usuarios de
microcontroladores, especialmente a los usuarios de microcontroladores PIC. Las
caractersticas de DSP fueron integradas para facilitar la adopcin por los nuevos usuarios
de tecnologa DSP. Adems, la estructura de precio de los dispositivos dsPIC los hace
aceptables para aplicaciones de control embebido.

Los controladores de seal digital dsPIC fueron planeados desde las bases para
proporcionar todas las caractersticas que un usuario esperara de un microcontrolador de
16 bits. Un conjunto rico de instrucciones asociado con amplios modos de
Diseo y construccin de una tarjeta programable Captulo 2. Determinacin de las caractersticas
de adquisicin, procesamiento de datos y control funcionales de la tarjeta programable
20
direccionamiento opera sobre un conjunto de registros de trabajo de propsito general y una
pila de software. El resultado es una muy buena eficiencia de compilacin en C.

Todos los dispositivos usan tecnologa de memoria Flash para la memoria de programa y la
EEPROM de datos, para ofrecer la mxima flexibilidad en tiempos de ciclos de
manufactura. La tecnologa de autoprogramacin en circuito permite la actualizacin
remota de la memoria de programa y la EEPROM de datos. La alta confiabilidad de la
memoria Flash permite una retencin de datos por 40 aos y hasta un milln de ciclos de
grabado y borrado a 85 grados centgrados.

Un poderoso conjunto de caractersticas DSP permiten un desempeo competitivo. Un
multiplicador de 17x17 bits en un solo ciclo, dos acumuladores de 40 bits y un registro de
corrimiento cclico de 40 bits; ciclos de Do y Repeat; redondeo y truncamiento de
resultados y soporte de un modo de direccionamiento especial para buffers circulares y
transformadas rpidas de Fourier (FFTs).

Adems, la arquitectura dsPIC soporta una estructura flexible de procesamiento de
interrupciones.

Cada dispositivo incluye un extenso conjunto de mdulos perifricos, incluyendo
temporizadores, subsistemas seriales y canales de convertidor analgico a digital. Algunos
dispositivos contienen perifricos avanzados orientados para aplicaciones especficas como
control de motores, audio o conectividad a Internet.

Por ltimo pero no menos importante, los dispositivos contienen lgica hardware que
permite depuracin y programacin Flash en circuito sin remover el dispositivo de la tarjeta
de aplicacin.

Los dsPICs estn disponibles en dos categoras de velocidad: una versin de 20 MIPS y una
versin de 30 MIPS. [8]

Las familias en las que se dividen los dsPICs son:

Familia de propsito general. Esta familia es ideal para una amplia variedad de
aplicaciones embebidas para microcontroladores de 16 bits. Adems, existen
variantes con interfases codificadores-decodificadores (codecs) que se ajustan para
aplicaciones de audio.
Familia de control de motores y conversin de potencia. Esta familia soporta
aplicaciones de control de motores, como motores de CD sin escobillas, motores de
induccin de una y tres fases y motores de reluctancia conmutativa. Son ideales para
fuentes ininterrumpidas de poder (UPS), inversores, fuentes de poder conmutativos
y correccin del factor de potencia.
Familia de sensores. Los productos de esta familia tienen opciones diseadas para
soportar aplicaciones de control embebido de bajo costo y alto desempeo. Los
encapsulados de 18 y 28 pines son diseados para ajustarse a aplicaciones de
espacio crtico.
Diseo y construccin de una tarjeta programable Captulo 2. Determinacin de las caractersticas
de adquisicin, procesamiento de datos y control funcionales de la tarjeta programable
21
2.2.3. Herramientas de desarrollo

Las herramientas de desarrollo son los programadores, emuladores y tarjetas de evaluacin
para cada microcontrolador. Los programadores son los dispositivos con los que se puede
programar el microcontrolador. Los emuladores son herramientas que permiten probar el
circuito de control y en donde se puede visualizar la ejecucin del programa, detenerlo en
alguna lnea del cdigo de programa, as como modificar el contenido de memoria de datos.
Las tarjetas de evaluacin son tarjetas con los circuitos necesarios para que el
microcontrolador y sus perifricos funcionen.

En cuanto a software, algunos fabricantes proporcionan de forma gratuita un entorno
integrado de desarrollo (IDE) el cual consta bsicamente de un editor, un compilador y un
simulador. El simulador tiene implementadas las funciones que realizara el
microcontrolador de acuerdo al programa y a las condiciones establecidas como son el
estado de las terminales del microcontrolador. Algunos fabricantes independientes de los
microcontroladores desarrollan programas compiladores de un lenguaje de alto nivel al
lenguaje ensamblador del microcontrolador.

Buscando mantener la sencillez y economa para la programacin de los
microcontroladores, se muestran las herramientas de desarrollo disponibles para cada
microcontrolador desde algunos que puede armar el usuario hasta los comerciales.

Para el microcontrolador COP8 de National Semiconductor, el ambiente de desarrollo es el
WCOP8 IDE, y el programador es una interfaz sencilla que se conecta al puerto paralelo de
la computadora y utiliza el programa FLASHWIN para cargar el programa al
microcontrolador. Este programador utiliza la caracterstica ISP (In System Programming)
en donde puede programarse el microcontrolador cuando se encuentra conectado en el
circuito de trabajo. La emulacin se puede realizar con algunas herramientas comerciales
del fabricante como son la unidad de emulador y programacin (Emulator and
Programming Unit), el mdulo de depuracin (Debug Module) y el depurador ICE
Master. Algunas herramientas pueden emular en tiempo real y pueden tanto emular como
programar o emular solamente.

El ambiente de trabajo utilizado para los microcontroladores PIC de Microchip es el
MPLAB IDE, tambin puede comunicarse y trabajar con los programadores PICStart Plus,
MPLAB PM3, PRO MATE II y los emuladores ICD 2, ICE 4000 y ICE 2000; todos estos
productos comerciales de Microchip. Tambin existe una diversidad de programadores
fciles de armar que se conectan al puerto paralelo o serie de la computadora. Algunos de
estos programadores son el NOPP, el JDM, el PIPO 2, el PP2 y el GTP. Algunos pueden
grabar el PIC estando conectado en el circuito de trabajo. Algunos programas que se
utilizan con estos programadores son IC PROG, PONY PROG y WinPic 800.

Los programas para los microcontroladores AVR de Atmel pueden ser desarrollados en
AVRStudio o WinAVR. El programador ms sencillo es una interfaz con un buffer de
proteccin conectado al puerto paralelo, este programador es utilizado junto con el
AVRStudio. Algunas de las herramientas para emular los AVRs son ICE 40, ICE 50 y
JTAG ICE 2.
Diseo y construccin de una tarjeta programable Captulo 2. Determinacin de las caractersticas
de adquisicin, procesamiento de datos y control funcionales de la tarjeta programable
22
Para realizar la compilacin de los programas para el MC68HC11 se utiliza el IASM11, los
programas disponibles para simulacin son SIM68 para DOS y WOOKIE para Windows.
El ambiente de desarrollo MCUeZ sirve para editar y compilar los programas para el
MC68HC12. Las tarjetas de evaluacin del MC68HC11 y MC68HC12 son sistemas
mnimos y pueden conectarse a la computadora para programar dichos microcontroladores
por medio del MCUeZ. Existen emuladores comerciales para estos microcontroladores
como son BDM Multilink y Ciclone Pro.

El Code Composer Studio es el ambiente de desarrollo utilizado para los controladores de
seal digital C2000 de Texas Instruments. Utiliza el lenguaje C para la programacin de los
dispositivos. Estos controladores ya vienen ensamblados en tarjetas de desarrollo o
mdulos de evaluacin donde se pueden conectar a la computadora y programarse
directamente. El fabricante vende distintos emuladores que pueden estar conectados en el
bus PCI o en el puerto paralelo o USB.

Los programas para el controlador dsPIC30F pueden ser editados, ensamblados y
simulados en MPLAB IDE de la misma forma que para un PIC. Algunos de los
programadores de Microchip pueden grabar los programas a los dsPIC como son MPLAB
PM3 y MPLAB ICD 2. Los emuladores para los controladores dsPIC30F son MPLAB ICE
4000 y MPLAB ICD 2. Tambin el fabricante provee un software compilador de lenguaje
C para los dsPIC30F que es el C30.

Existen otros programas y herramientas de desarrollo fabricadas por empresas distintas a
los fabricantes de los microcontroladores. Los productos pueden ser compiladores de
lenguaje C o Pascal, simuladores, tarjetas de evaluacin, tarjetas de desarrollo,
programadores y emuladores especficos para una familia de microcontroladores o
solamente para un microcontrolador.

2.3. Proceso de seleccin del microcontrolador con el que opera la tarjeta
programable

La eleccin de un microcontrolador para una aplicacin se dificulta usualmente por la
existencia de una enorme variedad de opciones y caractersticas de los chips y otros
factores de difcil ponderacin como son: existencia en el mercado, documentacin y apoyo
tcnico, disponibilidad y costo de las herramientas de desarrollo, conocimiento de otros
productos del fabricante, seriedad del proveedor y obtencin gratuita de muestras.

Los criterios considerados para determinar el microcontrolador a utilizar en la tarjeta son:

1. Frecuencia de operacin.- Da una idea de la velocidad de procesamiento del
microcontrolador.
2. Nmero de canales analgicos/digitales de entrada/salida.- Es la cantidad de
variables analgicas/digitales de entrada/salida que tiene el microcontrolador.
3. Tamao de memoria de programa.- La capacidad en kilobytes para almacenar el
programa de control.
4. Tamao de memoria de datos.
Diseo y construccin de una tarjeta programable Captulo 2. Determinacin de las caractersticas
de adquisicin, procesamiento de datos y control funcionales de la tarjeta programable
23
La capacidad en bytes para almacenar datos medidos, datos procesados o valores
calculados.
5. Tipo de encapsulado.
Sirve para identificar la dimensin y tambin la disposicin de terminales para la
realizacin en circuito impreso.
6. Nmero de canales analgicos/digitales de entrada/salida.
Es la cantidad de variables analgicas/digitales de entrada/salida que tiene el
microcontrolador.
7. Interfaz de comunicacin.
Los estndares que permiten la comunicacin de la tarjeta programable con otros
dispositivos (como la PC u otra tarjeta similar).
8. Costo.
El precio por unidad de microcontrolador.
9. Lenguaje y/o compilador.
Lenguaje en el que puede programarse y compiladores el microcontrolador
10. Disponibilidad de herramientas de programacin y desarrollo.
Facilidad para conseguir o elaborar las herramientas de programacin y desarrollo.
11. Costo de herramientas de programacin y desarrollo.

En las figuras 2.1, 2.2 y 2.3 se pueden comparar con facilidad los microcontroladores de
acuerdo a la frecuencia de operacin, nmero de terminales de E/S y memoria de programa
que posee cada uno. Se marca con una lnea para diferenciar cules microcontroladores
tienen un valor adecuado para cada parmetro considerado de acuerdo a las necesidades
descritas en la columna de valor mximo de la tabla 2.1.

Las caractersticas principales de los microcontroladores estn concentradas en la tabla 2.2.




















Figura 2.1 Comparacin de microcontroladores en cuanto a frecuencia de operacin.
Frecuencia de operacin (MHz)
24
120
120
40
40
20
16 10
8
6
4
3
0
20
40
60
80
100
120
140
M
C
6
8
H
C
1
1
A
T
t
i
n
y
2
8
A
T
m
e
g
a
1
0
3
M
C
6
8
H
C
1
2
P
I
C
1
6
F
8
4
S
T
7
L
i
t
e
0
P
I
C
1
6
F
8
7
7
P
I
C
1
6
C
7
6
5
P
I
C
1
8
F
4
5
2
T
M
S
3
2
0
L
F
2
4
0
7
A
d
s
P
I
C
3
0
F
d
s
P
I
C
3
0
F
-
B
Frecuencia de operacin (MHz)
Requerimiento mnimo
Diseo y construccin de una tarjeta programable Captulo 2. Determinacin de las caractersticas
de adquisicin, procesamiento de datos y control funcionales de la tarjeta programable
24

Figura 2.2 Comparacin de microcontroladores en cuanto a nmero de terminales de E/S.

Figura 2.3 Comparacin de microcontroladores en cuanto a memoria de programa.
Numero de E/S
13
38
63
68
41
33
33 33
32
30
13
11
0
10
20
30
40
50
60
70
80
A
T
t
i
n
y
2
8
P
I
C
1
6
F
8
4
S
T
7
L
i
t
e
0
d
s
P
I
C
3
0
F
A
T
m
e
g
a
1
0
3
P
I
C
1
6
F
8
7
7
P
I
C
1
6
C
7
6
5
P
I
C
1
8
F
4
5
2
M
C
6
8
H
C
1
1
T
M
S
3
2
0
L
F
2
4
0
7
A
M
C
6
8
H
C
1
2
d
s
P
I
C
3
0
F
-
B
Numero de E/S

Requerimiento mnimo
Memoria de programa (KB)
8
32 32
128
144
1 1
2
8
16
24
1
0
20
40
60
80
100
120
140
160
P
I
C
1
6
F
8
4
S
T
7
L
i
t
e
0
M
C
6
8
H
C
1
1
A
T
t
i
n
y
2
8
P
I
C
1
6
F
8
7
7
P
I
C
1
6
C
7
6
5
P
I
C
1
8
F
4
5
2
d
s
P
I
C
3
0
F
M
C
6
8
H
C
1
2
T
M
S
3
2
0
L
F
2
4
0
7
A
A
T
m
e
g
a
1
0
3
d
s
P
I
C
3
0
F
-
B
Memoria de programa (KB)
Requerimiento mnimo
Diseo y construccin de una tarjeta programable Captulo 2. Determinacin de las caractersticas
de adquisicin, procesamiento de datos y control funcionales de la tarjeta programable
25
Para obtener el intervalo de la familia dsPIC30F, se graficaron dos elementos de esta
familia, el ms austero y el ms completo.

Los microcontroladores tiles para la mayora de las plantas o procesos son los que se
encuentran en la parte superior de la lnea interrumpida de cada una de las tres grficas
anteriores; dichos microcontroladores tienen un costo ligeramente menor al de algunos
otros que cuentan con mejores caractersticas, por lo que se opt por seleccionar un
microcontrolador que ofrezca mayores prestaciones a la tarjeta y con disponibilidad de
informacin y apoyo tcnico sin que el costo del microcontrolador vare significativamente.
Tambin se consider la utilizacin de nuevas tecnologas para tener referencias de
consulta en el CENIDET.

Con base en los valores de los criterios anteriormente mencionados, el microcontrolador
que se considera idneo para el desarrollo de este proyecto es de la familia dsPIC30F, ya
que proporciona mejores caractersticas a la tarjeta sin que la variacin del precio sea muy
significativo y es una nueva tendencia en cuanto a microcontroladores que estn
adquiriendo caractersticas de procesadores de seal digital (DSP).

Se adquirieron los dsPIC30F pero no se consigui el programador de dsPICs y stos no se
pueden programar con los programadores PICSTART Plus, TE-20 y EPIC. Por
consecuencia se seleccion al PIC18F452 que tiene caractersticas cercanas al dsPIC30F
como una velocidad de procesamiento de 10 MIPS comparado con 30 MIPS del dsPIC30F
adems de que se puede adquirir fcilmente al contrario de los dsPIC que no haba venta al
menudeo en Mxico. En la tabla 2.4 se muestra la comparacin del PIC18F452 y la familia
dsPIC30F.

Tabla 2.4 Comparacin entre el PIC18F452 y el dsPIC30F.
Caractersticas PIC18F452 dsPIC30F
Memoria de programa Flash 32 KBytes 12 144 KBytes
Velocidad de procesamiento 10 MIPS 20 o 30 MIPS
Nmero de terminales de
entradas/salidas digitales
24 13
Nmero de terminales de
entradas analgicas
5 13
Conjunto de instrucciones
optimizado para compilador
C
Si Si
Memoria de datos EEPROM 256 Bytes 1 4 KBytes
Nmero de instrucciones 75 84


Diseo y construccin de una tarjeta programable Captulo 2. Determinacin de las caractersticas
de adquisicin, procesamiento de datos y control funcionales de la tarjeta programable
26
2.4. Tiempo de procesamiento del microcontrolador del PIC18F452

El microcontrolador PIC18F452 puede funcionar dentro de un intervalo de velocidad el
cual depende del circuito oscilador. El tiempo de procesamiento depende de la velocidad de
operacin. El PIC18F452 puede utilizar un cristal oscilador desde 38 kHZ hasta 25 MHz.
El circuito oscilador se muestra en la figura 2.4.
Figura 2.4 Circuito oscilador del microcontrolador

La tabla 2.5 indica el valor de los capacitores cermicos que se deben emplear de acuerdo
al valor de frecuencia del cristal oscilador. El cristal empleado en la tarjeta programable es
de 12 MHz, por lo que se emplearon dos capacitores de 22 nF.

Tabla 2.5 Seleccin de capacitores
MODO
FRECUENCIA
DEL CRISTAL
(MHz)
C1
(pF)
C2
(pF)
0.032 33 33 LP
(Cristal de baja potencia) 0.200 15 15
0.200 22-68 22-68
1 15 15
XT
(Cristal)
4 15 15
4 15 15
8 15-33 15-33
20 15-33 15-33
HS
(Cristal de alta velocidad)
25 15-33 15-33

Esquema de tiempo de ejecucin de instrucciones

La entrada de la seal de reloj por OSC1 es internamente dividido en cuatro relojes de
cuadratura no traslapados, llamados Q1, Q2, Q3 y Q4. Internamente el contador de
programa (CP) es incrementado cada pulso de reloj de Q1, la instruccin es buscada en la
memoria de programa y almacenada en el registro de instruccin en Q4. La instruccin es
codificada y ejecutada en el siguiente ciclo de Q1 a Q4. El flujo de bsqueda y ejecucin de
la instruccin es mostrado en la figura 2.5.

XTAL
C1
RF
C2
REPOSO
A
l gi ca
i nt er na
OSC2
OSC1
PIC18FXXX
<
>
Diseo y construccin de una tarjeta programable Captulo 2. Determinacin de las caractersticas
de adquisicin, procesamiento de datos y control funcionales de la tarjeta programable
27
Figura 2.5 Flujo de ejecucin de instrucciones.

Flujo simultneo de bsqueda y ejecucin de instrucciones (pipelining)

Un ciclo de instruccin es el tiempo en el que se ejecuta una instruccin y consta de cuatro
ciclos de reloj (Q1, Q2, Q3 Y Q4). Las instrucciones de bsqueda y ejecucin son
realizadas de tal forma que la bsqueda requiere de un ciclo de instruccin mientras que la
decodificacin y ejecucin requiere de otro. Sin embargo debido a la bsqueda y ejecucin
simultnea (pipelining), cada instruccin se ejecuta efectivamente en un solo ciclo.
Excepcionalmente si una instruccin produce una alteracin del incremento normal del
contador de programa (por ejemplo GOTO) entonces se requieren dos ciclos para completar
la instruccin. Ver figura 2.6.

Figura 2.6 Flujo paralelo de bsqueda/ejecucin (pipelining).

2.4.1. Temporizadores del microcontrolador

Los temporizadores internos del microcontrolador tienen varias funciones. Pueden ser
usados como contadores o como una base de tiempo para otros mdulos dentro del
microcontrolador.

En el caso del microcontrolador PIC18F452, se tienen 4 temporizadores que son:

Tcy0

Tcy1

Tcy3

Tcy2

Tcy4

Tcy5

Buscar inst.1 Ejecutar inst.1
1 MOVLW 55h
2 MOVWF PORTB
3 GOTO 5
4 BSF PORTA,BIT3 (NOP forzado)
5 BCF PORTB,6
Buscar inst.2 Ejecutar inst.2
Buscar inst.3 Ejecutar inst.3
Buscar inst.4 NOP
buscar inst.5 Ejecutar inst.5
CP CP+2 CP+4
OSC1

Q1

Q2

Q3

Q4

CP
Ejecuta instruccin (CP-2) y
Busca instruccin (CP)
Ejecuta instruccin (CP) y
Busca instruccin (CP+2)
Ejecuta instruccin (CP+2) y
Busca instruccin (CP+4)
Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4
Diseo y construccin de una tarjeta programable Captulo 2. Determinacin de las caractersticas
de adquisicin, procesamiento de datos y control funcionales de la tarjeta programable
28
El TMR0 es un temporizador/contador de 8/16 bits con preescala programable.
Puede configurarse para trabajar con 8 bits o con 16 bits, y seleccionar el flanco
ascendente o descendente para aplicaciones como contador de eventos externos.

El TMR1 es un temporizador/contador de 16 bits. Puede ser utilizado como
contador de eventos externos cada flanco ascendente.


El TMR2 es un temporizador/contador de 8 bits con un registro de periodo de 8 bits
que se utiliza como base de tiempo para la generacin de seales de control por
modulacin de ancho de pulso.


El TMR3 es un temporizador/contador de 16 bits. Tambin funciona como contador
de eventos en el flanco ascendente despus del primer flanco descendente.


Todos los temporizadores pueden ser ledos y se puede escribir un nuevo valor en ellos sin
importar el valor que tengan previamente.

2.4.2. Modulacin de ancho de pulso generada por el microcontrolador

La salida del microcontrolador que se utiliza para modulacin por ancho de pulso (PWM,
Pulse Width Modulation) que es utilizado para control de velocidad de motores de CD. Esta
seal esta formada con una base de tiempo (perodo) y un tiempo en el que la salida
permanece en nivel alto (ciclo til). La salida PWM puede mostrarse en la figura 2.7.
Figura 2.7 Salida PWM.

La seal PWM generada por el microcontrolador PIC18F452 depende principalmente del
valor del periodo que se encuentra en el registro PR2, y del valor de ciclo til que se
encuentra en el registro CCPR1L (byte bajo del registro 1 del mdulo de
captura/comparacin/PWM) y los bits 5 y 4 del registro CCP1CON (registro de control del
mdulo 1 de captura/comparacin/PWM). El periodo PWM para el microcontrolador se
puede calcular usando la ecuacin 2.1:

Periodo PWM = [(PR2)+1] 4 T
OSC
(Valor de preescala TMR2) (2.1)

La ecuacin 2.2 sirve para calcular el ciclo til de la seal PWM en tiempo:
Ciclo til PWM = (CCPR1L:CCP1CON<5:4>) T
OSC
(Valor de prescala TMR2) (2.2)
Periodo
Ciclo til
Diseo y construccin de una tarjeta programable Captulo 2. Determinacin de las caractersticas
de adquisicin, procesamiento de datos y control funcionales de la tarjeta programable
29
Para ambas ecuaciones, el valor de prescala de TMR2 se configura en el registro T2CON
(registro de control de TMR2).

Para configurar y usar el microcontrolador para las seales de PWM deben de seguirse los
siguientes pasos:

1. Establecer el periodo PWM escribindolo en el registro PR2.
2. Establecer el ciclo til del PWM escribiendo el dato correspondiente en el registro
CCPR1L y en los bits 4 y 5 de CCP1CON.
3. Configurar la terminal CCP1 como salida en el bit 2 del registro TRISC.
4. Establecer el valor de prescala del temporizador TMR2 y habilitarlo en el registro
T2CON.
5. Configurar el mdulo CCP1 para operar en PWM.


2.4.3. Tiempo de conversin del conversor anlogo/digital

La precisin de la lectura de sensores de variables analgicas (por ejemplo, sensores de
temperatura) est en funcin de la resolucin del convertidor analgico/digital y del tiempo
de adquisicin. Para que el convertidor A/D alcance su precisin especificada, se debe
esperar el tiempo necesario para que se cargue completamente al nivel de voltaje del canal
de entrada. El modelo de entrada analgica se muestra en la figura 2.8. La impedancia de la
fuente (R
S
) y la impedancia del interruptor interno de muestreo (R
SS
) varan de acuerdo al
voltaje del dispositivo (V
DD
). La impedancia de la fuente afecta el voltaje de
desplazamiento en la entrada analgica (debido a la corriente de fuga del terminal). La
impedancia mxima recomendada para fuentes analgicas es de 2.5 k. Despus de
seleccionar el canal de entrada analgica, debe realizarse la adquisicin antes de que
empiece la conversin (debido a que el capacitor de retencin es desconectado de la
terminal de entrada cuando empieza la conversin).
Diseo y construccin de una tarjeta programable Captulo 2. Determinacin de las caractersticas
de adquisicin, procesamiento de datos y control funcionales de la tarjeta programable
30

Figura 2.8 Modelo de la entrada analgica.

Se puede utilizar la ecuacin 2.3 para calcular el tiempo mnimo de adquisicin. Esta
ecuacin supone que se utiliza el error de bit menos significativo o bms (1024 pasos para
el conversor A/D). El error de bms es el mximo error permitido por el conversor A/D
para alcanzar su resolucin especfica.

T
ACQ
= T
AMP
+ T
C
+ T
COFF
(2.3)
Donde:
T
ACQ
= Tiempo mnimo de adquisicin.
T
AMP
= Tiempo de establecimiento del amplificador.
T
C
= Tiempo de carga del capacitor de retencin.
T
COFF
= Coeficiente de temperatura.

Con la ecuacin 2.4 se calcula el tiempo de carga del capacitor de retencin para el clculo
del tiempo mnimo de adquisicin.

T
C
= -(120 pF)(1 k + RSS + RS) ln(1/2048) (2.4)

El tiempo de conversin A/D por bit se denomina T
AD
. La conversin A/D requiere 12
veces el tiempo T
AD
por cada conversin de 10 bits. Para una correcta conversin A/D, se
debe seleccionar el reloj de conversin para asegurar un tiempo mnimo de 1.6 s.
6
5
4
3
2
5 6 7 8 9 10 11
V
DD
[Volts]
Interruptor de muestreo [k]
donde: VAIN = Voltaje analgico de entrada
R
S
= Impedancia de la fuente
C
PIN
= Capacitancia de entrada.
V
T
= Voltaje de umbral.
I
FUGA
= Corriente de fuga en la terminal
debido a varias conexiones.
R
IC
= Resistencia de interconexin.
S
S
= Interruptor de muestreo.
C
RETEN
= Capacitancia de muestreo y retencin
(del DAC).
DD
Rs
PIN
FUGA
V = 0.6V
V = 0.6V
R < 1k SS
Rss
RETEN
VAI N
500 mA
ANx
5 pF
SS
Interruptor de muestreo
V
V
T
T
IC
C
I
C = 120 pF
Diseo y construccin de una tarjeta programable Captulo 2. Determinacin de las caractersticas
de adquisicin, procesamiento de datos y control funcionales de la tarjeta programable
31

El resultado de la conversin se guarda en dos registros por ser un dato de 10 bits. Puede
configurarse si el resultado guardado se justifica a la izquierda o a la derecha segn el
estado del bit ADFM.

Para iniciar la conversin A/D se deben seguir los siguientes pasos:

1. Configurar el mdulo A/D:
Configurar los pines analgicos, las referencias de voltaje y las E/S digitales
(ADCON1).
Seleccionar el canal de entrada analgica (ADCON0).
Seleccionar el reloj de conversin A/D (ADCON0).
Encender el mdulo A/D (ADCON0).
2. Configurar la interrupcin del conversor A/D (si se desea).
3. Esperar el tiempo requerido de adquisicin.
4. Iniciar la conversin:
Poner a uno el bit GO/DONE del registro (ADCON0).
5. Esperar que se complete la conversin, ya sea por:
Verificando que el bit GO/DONE se ponga a cero.
Esperar la interrupcin del conversor A/D.
6. Leer los registros de resultado del conversor A/D (ADRESH/ADRESL).
7. Para otra conversin, ir al paso 1 o 2 si se requiere cambiar o no el canal del
conversor A/D. Se requiere una espera mnima de 2 T
AD
antes de iniciar otra
conversin.


2.5. Interfases de comunicacin

La transferencia de informacin puede realizarse bsicamente de dos formas: en serie o en
paralelo. En la comunicacin serie la informacin digital viaja por una lnea de bit en bit.
Esta transmisin puede ser sncrona o asncrona, es decir, si utiliza una seal de reloj o no
durante la transmisin de la informacin. La gran ventaja de la comunicacin serie es su
simplicidad y economa al estar implementada por un par de lneas.

En la comunicacin paralela el transmisor y el receptor estn conectados por un bus de
datos compuesto por tantas lneas como bits tiene la palabra de trabajo. Tpicamente la
palabra de trabajo es de 8 bits. La comunicacin paralela es ms rpida que la serie, sin
embargo es compleja y cara debido a que el enlace fsico necesita muchas lneas. Adems
la proximidad entre las lneas la hace muy sensible a la captacin y generacin de ruidos e
interferencias, lo que reduce la distancia entre los dispositivos y la seguridad en el
intercambio de datos.

Aunque la comunicacin serie es bsicamente enviar datos digitales sobre una lnea de bit
en bit, existen varias maneras de hacerlo y el proceso de comprensin entre el transmisor y
el receptor puede variar. Esto da lugar a diversas normas y mtodos de comunicacin serie
que son conocidos como protocolos.
Diseo y construccin de una tarjeta programable Captulo 2. Determinacin de las caractersticas
de adquisicin, procesamiento de datos y control funcionales de la tarjeta programable
32

2.5.1. Interfaz de comunicacin entre tarjetas

El bus IIC (Inter Integrated Circuit) es una red muy barata y efectiva utilizada para
interconectar dispositivos perifricos en sistemas embebidos de pequea escala. Tambin se
conoce como I
2
C y ha existido por ms de 20 aos. Es equivalente al SPI (Serial Peripheral
Interface), pero su operacin es un poco diferente.

El I
2
C es un bus de dos lneas en el que se pueden conectar varios dispositivos. El bus es
bidireccional, de baja velocidad y sincronizado a un reloj comn. Un dispositivo puede ser
agregado o retirado del bus I
2
C en operacin sin afectar otros dispositivos. Varios
fabricantes como Microchip, Philips e Intel producen microcontroladores con una interfaz
I
2
C integrada. La tasa de datos del bus I
2
C es 100 kbps en modo estndar y 400 kbps en
modo rpido.

Las dos lneas usadas para interconectar con el bus I
2
C son SDA (dato serial) y SCL (reloj
serial). Ambas lneas estn a drenaje abierto (la terminal de drenaje del MOSFET del
dispositivo no esta conectado internamente) por lo que necesitan estar conectadas a una
fuente de voltaje positivo por medio de una resistencia (resistencia de pull-up) y entonces
permanece en nivel alto cuando no se utiliza. Cada dispositivo conectado al bus I
2
C tiene
una direccin nica y puede operar como transmisor (maestro del bus), como receptor
(esclavo del bus) o ambos. El bus I
2
C es de tipo multimaestro, es decir, ms de un
dispositivo puede asumir el rol de maestro del bus.

2.5.2. Interfaz de comunicacin entre la tarjeta y la computadora

La interfaz de comunicacin seleccionada para comunicar la tarjeta con la computadora es
la RS-232C. Esta interfaz serial se ha usado desde los 60s. El RS-232C se utiliza para
intercomunicar dispositivos seriales con cables de longitud de hasta 25 metros.
Anteriormente varios perifricos de computadoras tenan interfaz RS-232C. Con la
necesidad de transferir grandes cantidades de datos rpidamente, el RS-232C est siendo
sustituido como la conexin estndar por el USB o el IEEE 1394. Sin embargo, todava es
un puerto de comunicacin til y sencillo para sistemas embebidos.

La mayora de los microcontroladores poseen una unidad USART en su arquitectura, ste
es un circuito que se encarga de convertir la informacin paralela del microcontrolador a
informacin serie para el perifrico o dispositivo con el que se est comunicando y
viceversa. La pieza faltante para la interfaz RS-232C es un circuito que convierta la
transmisin serial de y hacia los niveles RS-232C, ya que esta interfaz trabaja con niveles
de 5 a 15 VCD. El circuito integrado MAX232 es el encargado de adaptar los niveles
lgicos a RS-232C.
Diseo y construccin de una tarjeta programable Captulo 2. Determinacin de las caractersticas
de adquisicin, procesamiento de datos y control funcionales de la tarjeta programable
33

2.6. Descripcin de la tarjeta programable de adquisicin, procesamiento de datos
y control

Las caractersticas de la tarjeta programable se muestran en la tabla 2.6.
Tabla 2.6 Especificacin de la tarjeta programable
Caracterstica Cantidad Tipo Intervalo Unidad
De programa 32 Kbytes
Memoria
De datos 1 MBytes
4 Analgicas 0-5 V
16
(1)
Digitales 0,5 V Entradas
1 Corriente 4-20 mA
16
(1)
Digitales 0,5 V
8 Potencia 0-20
(2)
V Salidas
1 Corriente 4-20 mA
Frecuencia de muestreo 13800
Muestreos/
segundo
Resolucin AD 10 Bits
Precisin mxima AD 0.1 %
Tiempo de ciclo
de instruccin
100
(3)
ns
Alimentacin 15 V
Consumo mximo 150 mA
Compilador
-Ensamblador
-C

Puerto de comunicacin
con PC

RS232


Puerto de comunicacin
(tarjeta/perifricos)
I
2
C
Perifricos 1 Pantalla LCD
Intervalo de temperatura
de operacin
0-50
(4)
C
Nota: (1) Fsicamente son las mismas terminales, pero se pueden configurar mediante
programacin para que sean entradas salidas.
(2) El voltaje de la salida de potencia depende de la fuente de alimentacin
conectada en el conector de voltaje externo de la tarjeta programable.
(3) Depende de la frecuencia de operacin del microcontrolador.
(4) Estimacin con base en las especificaciones del componente ms sensible a la
temperatura.


Diseo y construccin de una tarjeta programable Captulo 3. Diseo electrnico de la tarjeta
de adquisicin, procesamiento de datos y control
34

















CAPTULO 3. DISEO ELECTRNICO DE LA
TARJETA

Diseo y construccin de una tarjeta programable Captulo 3. Diseo electrnico de la tarjeta
de adquisicin, procesamiento de datos y control
35
3.1. Descripcin a bloques de la tarjeta programable

La tarjeta programable se encuentra dividida en mdulos de acuerdo a la funcin que
realizan, adems que permite un mejor anlisis y verificacin de operacin. Los mdulos de
la tarjeta programable se muestran en la figura 3.1.


Figura 3.1 Mdulos que conforman la tarjeta programable.

Dentro de la tarjeta principal se encuentran la mayora de los mdulos, dejando en otras
tarjetas los mdulos de procesamiento y de E/S de 4-20 mA.

El mdulo de E/S de 4-20 mA se coloc en una tarjeta externa debido a que no es comn
aplicarla en varios procesos, pero se realiz para poder utilizar un sensor y un actuador que
trabajen con el estndar industrial de 4-20 mA.

Mdulo de E/S
de 4-20 mA
Mdulo
de
procesamiento
dsPIC30F4013
Mdulo
de
procesamiento
PIC18F452
Mdulo de
comunicacin
con la PC
(RS232)
Mdulo de
entradas
analgicas Mdulo de
potencia
para motores
Mdulo de
memoria
EEPROM
Mdulo de
comunicacin
entre tarjetas
(I
2
C)
Mdulo de
E/S digitales
Mdulo de
alimentacin
(5 y 15 VCD)
Pantalla de
cristal lquido
1 - Tarjeta principal
2 - Tarjeta de
procesamiento
3 - Tarjeta de E/S
de 4-20 mA
Diseo y construccin de una tarjeta programable Captulo 3. Diseo electrnico de la tarjeta
de adquisicin, procesamiento de datos y control
36
El mdulo de procesamiento se coloc en una tarjeta externa para poder utilizar cualquier
microcontrolador. De esta forma slo tendr que fabricarse la tarjeta de procesamiento para
utilizar otro microcontrolador, en vez de construir la tarjeta programable completa.

3.2. Diagramas esquemticos electrnicos de la tarjeta programable

Los diagramas esquemticos de la tarjeta se realizaron en OrCAD para generar las tarjetas
de circuito impreso. OrCAD permite modificar automticamente el diseo de la tarjeta de
circuito impreso cuando se realizan modificaciones en el diagrama esquemtico.

Mdulo de entradas y salidas digitales

En esta etapa se podrn conectar a travs de compuertas lgicas (buffers) diversos sensores
digitales como son microinterruptores y foto sensores, as como elementos de salida digital.
Utiliza un buffer CMOS bidireccional (74HC245) en el puerto B del microcontrolador para
reforzar las seales provenientes de los sensores. El conector de configuracin (jumper) J25
permite configurar la direccin de las seales (entradas o salidas) y debe ser igual a la
configuracin del puerto B por software. Los conectores tienen seales de voltaje de 5
Volts, tierra y de voltaje de 5 Volts con una resistencia limitadora. Ver figura 3.2.

Figura 3.2 Circuito electrnico del mdulo de entradas/salidas digitales.

Las terminales de E/S digitales tienen conectores de configuracin para poner la terminal a
pull-up o pull-down y evitar que se dae debido a que el PIC es de tecnologa CMOS. La
mxima capacidad de corriente de cada una de las terminales de los puertos en modo
sumidero (sink) y en modo fuente (source) es de 25 mA. El clculo del valor mnimo para
las resistencias de pull-up y pull-down es:

VCC
VCC
B2
B5
B3
B4
B1
B0
B6
B7
B
5
B
1
B
4
B
6
B
2
B
0
B
7
B
3
RB0
R
2
1
1
0
K
U2
74HC245
2
3
4
5
6
7
8
9
18
17
16
15
14
13
12
11
1
19
A1
A2
A3
A4
A5
A6
A7
A8
B1
B2
B3
B4
B5
B6
B7
B8
DIR
OE
R
4
2
4
7
K
J26
1
2
C28
100 nF
J42
1 2 3 4
C
R47
220
1
2 3 4 5 6 7 8 9
J43
1 2 3 4
J39
1 2 3 4
J41
1 2 3 4
J45
1 2 3 4
J40
1 2 3 4
J44
1 2 3 4
J38
1 2 3 4
R1
470
R4
R5
R6
R2
R3
A

l
a

t
a
r
j
e
t
a

d
e

p
r
o
c
e
s
a
m
i
e
n
t
o
Diseo y construccin de una tarjeta programable Captulo 3. Diseo electrnico de la tarjeta
de adquisicin, procesamiento de datos y control
37
5 V
25 mA
200
R
R
=
=


Las resistencias de pull-up son de 330 y las resistencias de pull-down son de 560 .
Ambos valores aseguran un valor menor de 25 mA a cada terminal de puerto del
microcontrolador.

Mdulo de entradas analgicas
En este mdulo las seales analgicas (figura 3.3) provienen de sensores que pueden ser de
temperatura, fotorresistencias o cualquier otra seal de 0-5 Volts, se acondicionan por
medio de seguidores de tensin con amplificadores operacionales y filtro pasabajas de 5
KHz para eliminar ruido en la seal. El amplificador operacional es de baja potencia para
que pueda funcionar este mdulo cuando la tarjeta este alimentada con pilas. Las
ecuaciones 3.1, 3.2 y 3.3 se utilizan para el clculo del filtro pasabajas:


5
c
f KHz =
2 31, 400
c c
f = = (3.1)

1
10 nF C =

2 1
2 20 nF 22 nF C C = = (3.2)

1
0.707
R=
c
C
(3.3)

-9
0.707
R= 2, 251.6 2.2 K
(31,400)(10x10 )
=

Donde R son las dos resistencias de entrada, C
1
es el capacitor de entrada conectado a
tierra y C
2
es el capacitor de retroalimentacin. [9]


Diseo y construccin de una tarjeta programable Captulo 3. Diseo electrnico de la tarjeta
de adquisicin, procesamiento de datos y control
38
Figura 3.3 Circuito electrnico del mdulo de entradas analgicas.

Los conectores de entrada disponen de conexin a 5 Volts y a tierra para conectar el sensor
directamente.

Mdulo de alimentacin

El mdulo de alimentacin (figura 3.4) proporciona los niveles de voltajes necesarios para
la operacin del PIC y de los circuitos adicionales. El componente principal es el regulador
7805 que regula el voltaje a 5 Volts debido a que la mayora de los circuitos integrados
funcionan con este voltaje. Los otros reguladores son utilizados para mdulos externos
como el mdulo de 4-20 mA.


Figura 3.4 Circuito electrnico del mdulo de alimentacin.

VAN
C26
+
-
U7A
MCP6044
3
2
1
+
-
U7B
5
6
7
+
-
U7C
10
9
8
+
-
U7D
12
13
14
R40
470
R39
470
C21
10nF
C25
C22
22nF
R29
2K2
R31
2K2
R35
470
R36
R37
R38
470
C
R41
47K
J22
1
2
3
J23
1
2
3
J25
1
2
3
J24
1
2
3
AN1
AN3
AN2
AN0
VCC
VCC1
VAN
VCC
D0
D1
D2
D7
D6
D5
D4
D3
R46
470
D8
JP4
CONECTOR A TARJETA 4-20 mA
1 2
3 4
5 6
7 8
9 10
11 12
13 14
L1
0.5mH
L2
0.5mH
D7
U9
LM7805C/TO220
1 3
2
IN OUT
G
N
D
J27
CON3
1
2
3
U6
LM7815C/TO220
1 3
2
IN OUT
G
N
D
C44
0
.
1
u
F
C43
0
.
1
u
F
U1
LM7915C/TO220
2 3
1
IN OUT
G
N
D
C30
0
.
1
u
F
C29
0
.
1
u
F
F1
1 A C31
0
.
1
u
F
C32
0
.
1
u
F
C33
1
0
0
0
u
F
/
5
0
v
D4
1N4148
C37
1
0
0
u
F
/
5
0
v
C38
1
0
0
u
F
/
5
0
v
C34
1
0
0
u
F
/
5
0
v
C40
1
0
0
u
F
/
5
0
v
C36
1
0
0
u
F
/
1
0
0
v
C39
1
0
0
u
F
/
5
0
v
C35
1
0
0
0
u
f
/
5
0
v
C41
1
0
0
u
F
/
5
0
v
D6
C42
0
.
1
u
F
R43
470
R44
470
RA5
Diseo y construccin de una tarjeta programable Captulo 3. Diseo electrnico de la tarjeta
de adquisicin, procesamiento de datos y control
39
Los reguladores LM7815, LM7915 y LM7805 son utilizados debido a que permiten una
corriente mxima de salida de 1 Ampere, cuentan con proteccin trmica y tienen un
voltaje de cada de 3 Volts. Los capacitores a la entrada del regulador cancelan inductancias
presentes y los capacitores a la salida del regulador mejoran la respuesta transitoria. [10]

Los diodos emisores de luz (LEDs) D6, D7 y D8 indican que los reguladores estn
funcionando. A la salida del regulador LM7805 se encuentran dos filtros para reducir el
ruido separando el voltaje para el mdulo de entradas analgicas del voltaje de
alimentacin general.

El diodo D4 protege el circuito de alimentacin contra inversiones de polaridad.

Mdulo de memoria EEPROM

En esta etapa se tienen dos memorias EEPROM de 512 Kbytes cada una, que se conectan al
microcontrolador por medio del bus I
2
C. Los microinterruptores (DIPswitchs) permiten
configurar por hardware los ltimos tres bits de la direccin de la memoria EEPROM. La
tarjeta programable podr almacenar datos de mediciones en aplicaciones de adquisicin de
datos. Las memorias EEPROM 24FC512 pueden reemplazarse por otras memorias de
distinta capacidad que tengan la misma disposicin de terminales. La figura 3.5 muestra el
circuito esquemtico del mdulo de memoria EEPROM.

Las resistencias de pull-up para las seales de I
2
C pueden ser de 2 k a 10 k. [11] Se
defini un valor de 4.7 K para estas resistencias.

Figura 3.5 Circuito electrnico del mdulo de memoria EEPROM.


Mdulo de comunicacin con la PC

Esta etapa consta del circuito MAX232 que junto con los capacitores forma una interfaz de
comunicacin serial entre los niveles TTL (0 - 5 Volts) con los que trabaja el
VCC
R48
4K7
SW5
SW DIP-3
123
654
U10
24FC512
A0
A1
SDA
SCL A2
C50
100nF
C3
C4
Diseo y construccin de una tarjeta programable Captulo 3. Diseo electrnico de la tarjeta
de adquisicin, procesamiento de datos y control
40
microcontrolador y los niveles RS232 de la computadora. Se utiliz la configuracin tpica
de conexin mostrada en la hoja de datos del MAX232. Ver figura 3.6.

Figura 3.6 Circuito electrnico del mdulo de comunicacin con la PC.

Los diodos D2 y D3 con la resistencia R28 permiten reiniciar el microcontrolador desde la
computadora poniendo en estado alto la lnea RTS del puerto serie desde la computadora.
Esta opcin puede habilitarse o deshabilitarse con el jumper S1de la tarjeta de
procesamiento.


Mdulo de comunicacin I
2
C

Emplea los puertos RC3/SCK/SCL y RC4/SDI/SDA, cada una de ellas conectadas por
medio de resistencias a 5 Volts. Todos los perifricos que empleen esta interfaz de
comunicacin debern conectarse a estas lneas (SCL Y SDA). En la figura 3.7 se muestra
la conexin de una memoria EEPROM sobre el bus I
2
C. En el conector J47 se puede
conectar una tarjeta o circuito que trabaje con el protocolo I
2
C. Se consideran los valores de
resistencia del mdulo de memoria EEPROM.
RESET POR PC VCC
RC6
RC7
D3
5V1
C3
C2
C1
10uF/25V
C6
10uF/25V
C4
10uF/25V
R33
4.7
P1
5
9
4
8
3
7
2
6
1
C7
100uF/25V
D2
1N4148
U3
MAX232
13
8
11
10
1
3
4
5
2
6
12
9
14
7
R1IN
R2IN
T1IN
T2IN
C+
C1-
C2+
C2-
V+
V-
R1OUT
R2OUT
T1OUT
T2OUT
R28
330
R32
330
A la tarjeta de procesamiento
Diseo y construccin de una tarjeta programable Captulo 3. Diseo electrnico de la tarjeta
de adquisicin, procesamiento de datos y control
41

Figura 3.7 Circuito electrnico del mdulo de comunicacin I
2
C.
Mdulo de potencia para motores (drivers)

Permite manejar motores de CD y motores de pasos de hasta 1 ampere, basado en el
circuito L293D que son dos puentes H en un circuito integrado y puede controlar los
motores con un nivel de voltaje distinto al de alimentacin (5 VCD). Con los jumpers 35 y
36 se puede configurar si la alimentacin para los motores proviene del mdulo de
alimentacin de la tarjeta principal o de una fuente externa de voltaje que est en el
conector J32. Cada interruptor de SW4 habilita o deshabilita un par de las salidas de
potencia para motores. Los capacitores cermicos de 100 nF conectados a las salidas para
los motores mejoran el filtrado de la seal de voltaje. Ver figura 3.8.

VCC
J47
I2C
1
2
R45
4K7
U8
24FC512
A0
A1
SDA
SCL A2
C27
100nF
SW3
123
654
C3
C4
Diseo y construccin de una tarjeta programable Captulo 3. Diseo electrnico de la tarjeta
de adquisicin, procesamiento de datos y control
42
Figura 3.8 Circuito electrnico del mdulo de potencia para motores

Conector para pantalla de cristal lquido

Adicionalmente en caso de que se quiera visualizar algunos de los parmetros que estn
variando en la planta o proceso, est disponible un conector (figura 3.9) en la tarjeta
principal para una pantalla de cristal lquido (LCD). El LCD esta integrado a la tarjeta
programable y es de 2 lneas y 16 caracteres por lnea. El puerto B es utilizado como bus de
datos y el puerto E como bus de control para configurar el LCD. Las resistencias R19 y
R20 configuran la intensidad de iluminacin del LCD.
Figura 3.9 Circuito electrnico del conector para pantalla de cristal lquido.


VCC
B0
B1
B2
B3
B7
B5
B4
B6
R19
10K
R20
820
JP5
HEADER 7X2
1 2
3 4
5 6
7 8
9 10
11 12
13 14
RE1
RE2
RE0
VCC2
VCC
VCC1 VCC2
VCC
VCC1
B7
RB0
C0
C1
C5
B6
C2
A4
C20 C45
100nF
C46 C47
U4
L293
2
7
10
15
1
9
3
6
11
14
8
1A
2A
3A
4A
1,2EN
3,4EN
1Y
2Y
3Y
4Y
V
C
C
2
U5
L293
2
7
10
15
1
9
3
6
11
14
8
1A
2A
3A
4A
1,2EN
3,4EN
1Y
2Y
3Y
4Y
V
C
C
2
C12 C13
C10
100nF C14 C11
C9
C8
100nF
C16 C18
C15
C19
100nF
C17
C
R34
10K
J35
123
J36
123
C24
100uF/25V
C23
J33
C
O
N
5
1
2
3
4
5
J34
C
O
N
5
1
2
3
4
5
SW4
1234
8765
Diseo y construccin de una tarjeta programable Captulo 3. Diseo electrnico de la tarjeta
de adquisicin, procesamiento de datos y control
43
Mdulo de procesamiento.

Este mdulo (figura 3.10) est compuesto esencialmente por el microcontrolador que es la
parte central que va a procesar y controlar la tarjeta; adems de los circuitos oscilador y de
reinicio (reset) necesarios para que funcione el microcontrolador. Este mdulo se conecta
por medio de un conector de cable plano a la tarjeta principal para as poder conectar una
tarjeta con un PIC, un dsPIC o un microcontrolador de otro fabricante.

Figura 3.10 Circuito electrnico del mdulo de procesamiento.

El circuito oscilador consiste del cristal de cuarzo de 12 MHz y los capacitores con el valor
adecuado segn la tabla 2.3. El capacitor C3 es el elemento principal del circuito de reinicio
al encendido as como el reinicio manual presionando el botn SW1. El diodo D1 ayuda a
que el capacitor se descargue en la resistencia R21 cuando se presiona el botn SW1.


Mdulo de E/S de 4-20 mA

Este mdulo externo est basado en los circuitos integrados XTR110 y RCV420 los cuales
son un transmisor y un receptor de seales de 4-20 mA. Estos circuitos junto con otros
componentes permiten convertir una seal de corriente de 4-20 mA a una seal de voltaje
de 0-5 Volts y viceversa, es decir, que se pueden usar tanto para seales de entrada como
de salida de corriente. Se utiliza el DAC0808 junto con el amplificador operacional LF351
para generar la seal de voltaje analgico para el transmisor de 4-20 mA. Con la resistencia
variable R4 se ajusta la ganancia para que la salida del amplificador operacional sea 5 Volts
VCC
R23
10K
C3
10uF
D1
1N4148
12MHz
C1
100 nF
C2
100 nF
SW1
1
2
S1
C5
22pF
R21
100
C6
10 uF / 16V
C4
22pF
U1
PIC18F452
1
2
3
4
5
6
7
8
9
10
11
13
14
19
20
21
22
32
27
28
29
30
33
34
35
36
37
38
39
40
26
25
24
23
18
17
16
15
MCLR/Vpp
RA0/AN0
RA1/AN1
RA2/AN2/VREF-
RA3/AN3/VREF+
RA4/TOCKI
RA5/AN4/SS#
RE0/RD#/AN5
RE1/WR#/AN6
RE2/CS#/AN7
VCC
OSC1/CLKIN
OSC2/CLKOUT
RD0/PSP0
RD1/PSP1
RD2/PSP2
RD3/PSP3
VCC
RD4/PSP4
RD5/PSP5
RD6/PSP6
RD7/PSP7
RB0/INT
RB1
RB2
RB3PGM
RB4
RB5
RB6/PGC
RB7/PGD
RC7/RX/DT
RC6/TX/CK
RC5/SDO
RC4/SDI/SDA
RC3/SCK/SCL
RC2/CCP1
RC1/T1OSO/CCP2
RC0/T1OSI/T1CKI
A

l
a

t
a
r
j
e
t
a

p
r
i
n
c
i
p
a
l
Diseo y construccin de una tarjeta programable Captulo 3. Diseo electrnico de la tarjeta
de adquisicin, procesamiento de datos y control
44
cuando todas las entradas del conversor analgico/digital estan a nivel alto. La
alimentacin de esta tarjeta se obtiene del mdulo de alimentacin de la tarjeta principal. El
transistor MOSFET Q1 le da potencia a la salida de corriente del transmisor XTR110. Ver
figura 3.11.


-15VCC +15VCC
+5VCC +15VCC -15VCC
-15VCC
+15VCC
+15VCC
+5VCC
U3
XTR110
16
8
5
3 14
12
6
2 15
11
7
9
4
1
13
10
+ Vcc
Zero Adj3
Vin2(5V)
Vref In Gate Drive
Vref Sense
Zero Adj1
Comm Vref Force
Vref Adj
Zero Adj2
16mA Span
Vin1(10V)
Source Res
SourceSense
4mA Span
U1
DAC0808
12
11
10
9
8
7
6
5
14
15
4
2
16
1
3
3
A8
A7
A6
A5
A4
A3
A2
A1
VR+
VR-
IOUT
IOUT
COMP
V
+
V
-
U2
RCV420
16
8
5
3 14
12
6
2 15
11
7
9
4
1
13
10
V +
Ref Trim
Ref Com
+ In Rcv Out
Ref In
NC1
CT Rcv f B
Ref Out
Ref Noise Red
NC2
V -
- In
Rcv Com
Ref f B
JP1
HEADER 7X2
1 2
3 4
5 6
7 8
9 10
11 12
13 14
+
-U4
LF351
3
2
6
71
45
R1
3K3
R2
3K3
R3 1K R4
10K
C1
33pF
J1
ENTRADA 4-20 mA
1
2
J2
SALIDA 4-20 mA
1
2
Q1
MOSFET MTP2955
1
2
3
+ C2
1 uF

Figura 3.11 Circuito electrnico del mdulo de E/S de 4-20 mA.

Cada uno de los circuitos integrados tiene un capacitor cermico de desacoplamiento de
100 nF en sus terminales de alimentacin.

Los circuitos electrnicos se simularon en el programa Proteus para verificar su
funcionamiento, debido a que permite programar virtualmente el microcontrolador y
realizar simulaciones paso a paso o en forma animada de los circuitos.

3.3. Diagramas esquemticos electrnicos de la tarjeta de aplicacin

Adems de los circuitos anteriores, con el propsito de realizar fcil y rpidamente las
pruebas simuladas de la tarjeta programable, se dise y construy una tarjeta de
aplicacin. Esta tarjeta consta de:

Un mdulo para generar entradas digitales (botones pulsadores) y/o visualizar
salidas digitales (LEDs) de la tarjeta programable.
Un mdulo que genera seales analgicas provenientes de distintos elementos (un
sensor de temperatura LM35, una fotorresistencia y dos potencimetros).
Un mdulo de indicadores de 7 segmentos de ctodo comn (1 indicador conectado
directamente o 4 indicadores multiplexados).
Un mdulo de conversin A/D o D/A en base al integrado PCF8591, que funciona
con el protocolo I
2
C.
Diseo y construccin de una tarjeta programable Captulo 3. Diseo electrnico de la tarjeta
de adquisicin, procesamiento de datos y control
45
Generador de pulsos al temporizador/contador TMR0 (RA4/T0CKI) por medio de
un botn pulsador.
Botn pulsador que sirve para generar una peticin de interrupcin externa
(RB0/INT).

El circuito electrnico de la tarjeta de aplicacin se muestra en la figura 3.12.
VCC
VAN
VCC1
VAN
VCC1
VCC1
VCC
VCC
VCC
VCC
VCC
A2
S3
S0
S1
D1
A4
S3
S5
S6
S1
S4
S3
S0
D6
S1
S4
B5
D3
D5
D7
D4
D5
S3
S5
C3
D3
S2
S3
S5
S2
S7
D7
S1
S0
S5
C5
A5
S7
S6
S5
S0
S2
S6
RB0
D2
S7
B4
D6
S4
S2
S4
S0
D1
D2
D4
S4
C4
S6
S2
S1
S7
B5
B4
S6
D0
D0
B3
B1
B1
B3 B2
B7
B2
B0
B6
B0
B6 B7
R2
10K 1 3
2
R1
10K 1 3
2
U1
LM35/TO
1 2
VS+ VOUT
R4
4K7
R3
R5
LDR
J4
123
J1
123
J2
123
C4
47uF/16v
J3
123
S
W
2
0
R15
1k
R13
1k
R12
220
JP2
1
2
4
5
6
7
9
10
e
d
3
c
dp
b
a
8
f
g
JP3
1
2
4
5
6
7
9
10
e
d
3
c
dp
b
a
8
f
g
S
W
1
8
JP5
1
2
4
5
6
7
9
10
e
d
3
c
dp
b
a
8
f
g
JP4
1
2
4
5
6
7
9
10
e
d
3
c
dp
b
a
8
f
g
U2
74LS48
7
1
2
6
4
5
3
13
12
11
10
9
15
14
A
B
C
D
BI
RBI
LT
OA
OB
OC
OD
OE
OF
OG
U3
PCF8591
15
14
13
12
11 10
9
3
2
5
6
7
4
1
AOUT
VREF
AGND
EXT
OSC SCL
SDA
AIN2
AIN1
A0
A1
A2
AIN3
AIN0
S
W
3
S
W
4
S
W
1
1
S
W
9
S
W
5
S
W
8
S
W
6
S
W
1
0
S
W
7
S
W
1
7
S
W
1
2
S
W
1
4
S
W
1
5
S
W
1
6
S
W
1
3
C
R10
1 2
3
4
5
6
7
8
9
C
R11
1 2
3
4
5
6
7
8
9
Q3
2N3904
3
2
1
Q2
2N3904
3
2
1
Q4
2N3904
3
2
1
Q1
2N3904
3
2
1
R7
220
R6
220
R8
10K
Q5
2N3904
3
2
1
J5
1
2
D1
C1
100n
R9
10K
1
3
2
S
W
1
9
C5
R14
470
D27
LED
JP6
1 2
3 4
5 6
7 8
9 10
11 12
13 14
15 16
17 18
19 20
21 22
23 24
25 26
27 28
29 30
31 32
33 34
35 36
JP1
1
2
4
5
6
7
9
10
e
d
3
c
dp
b
a
8
f
g
D
1
0
D
1
2
D
1
3
D
1
1
D
2
0
D
1
9
D
2
1
D
1
8
D
1
4
D
1
6
D
1
5
D
1
7
D
2
5
D
2
3
D
2
2
D
2
4
D26
D3 D2 D5 D7 D6 D8 D4 D9
J6
1
2
J7
CON2
1
2
B4 B5
A5
B7
B4
B1
C3
R
B
0
AN3
B5
B2
C4
B3
AN3
A
4
B0
B6
C5
B7 B6

Figura 3.12 Circuito electrnico de la tarjeta de aplicacin

3.4. Diseo de las tarjetas de circuito impreso

Despus de verificar el funcionamiento de los circuitos electrnicos por medio de
simulaciones en el programa Proteus, se realizaron los diseos de las placas de circuito
impreso en OrCAD. Debido a la complejidad de algunos circuitos, las placas de la tarjeta
principal, de la tarjeta de procesamiento y de la tarjeta de aplicacin se disearon para
placas de doble cara. La tarjeta del mdulo de E/S de 4-20 mA se dise para realizarse en
placa de una cara.

El proceso de realizacin del diseo de la placa de circuito impreso es el traslado del
diagrama esquemtico del circuito electrnico al mdulo de Layout de OrCAD. En este
mdulo se realiza la disposicin de los componentes sobre la placa. Los componentes
fueron organizados de acuerdo a los mdulos descritos en la seccin 3.2.

Diseo y construccin de una tarjeta programable Captulo 3. Diseo electrnico de la tarjeta
de adquisicin, procesamiento de datos y control
46
Despus de distribuir los componentes para minimizar la densidad de las pistas, se realiz
la operacin de AutoRoute para que OrCAD genere automticamente la colocacin de las
pistas de acuerdo al dibujo esquemtico. A pesar de utilizar la funcin automtica de
enrutado, fue necesario reubicar algunas pistas para que no hubiera cortocircuitos.

El ancho mnimo de las pistas fue determinado con una calculadora [12] basada en la curva
de ajuste de la norma IPC-D-275 para placas de circuitos impresos. Los datos utilizados
son:
max
max
2
I = 1 A
t = 10 C
Grosor de conductor = 35 m = 1 oz./ft


Donde I
max
es la corriente mxima que circular en la pista y se consider la corriente
mxima de salida de los reguladores de voltaje; t
max
es el aumento mximo de temperatura
de la pista de circuito impreso con respecto a la temperatura ambiente cuando circule la
corriente mxima; y el grosor del conductor es el espesor del cobre de la placa fenlica.

Despus de introducir los datos, el resultado fue un ancho de pista requerido de 9.8
milsimas de pulgada o 0.248 mm. Esto significa que una corriente de 1 Ampere circulando
a travs de una pista de 0.248 mm de ancho, producir un aumento de 10 C. Si el ancho de
la pista es mayor, el aumento de temperatura es menor que 10 C.

El ancho de pista utilizado para la realizacin de las tarjetas es de 0.381 mm y la corriente
que circula por las pistas cuando la tarjeta est en funcionamiento es menor de 1 Ampere,
por lo tanto el aumento de temperatura es menor de 5 C.

En el anexo D se muestran los diseos de las placas de circuito impreso.

Las medidas de las tarjetas electrnicas pueden consultarse en la tabla 3.1:

Tabla 3.1 Dimensiones fsicas de las tarjetas electrnicas.
Tarjeta Largo (mm) Ancho (mm)
1. Principal 195 120
2. De procesamiento 80 55
3. De E/S de 4 20 mA 65 55
4. De aplicacin 145 95

Diseo y construccin de una tarjeta programable Captulo 4. Construccin y pruebas de las tarjetas
De adquisicin, procesamiento de datos y control electrnicas
47
















CAPTULO 4. CONSTRUCCIN Y PRUEBAS
DE LAS TARJETAS ELECTRNICAS

Diseo y construccin de una tarjeta programable Captulo 4. Construccin y pruebas de las tarjetas
De adquisicin, procesamiento de datos y control electrnicas
48
4.1. Construccin de las tarjetas electrnicas

Las tarjetas se hicieron por mtodo serigrfico debido a que es confiable y econmico para
la elaboracin de tarjetas complejas de circuitos impresos. Las conexiones entre caras de la
tarjeta (conocidas como through holes o vas) se realizaron de manera directa al no
disponer de la mquina que realiza las vas.

Se prob la continuidad de las pistas y de las conexiones entre las caras de las tarjetas a lo
largo del proceso de montaje de los componentes para comprobar las conexiones elctricas
de la tarjeta programable.

Las tarjetas de circuito impreso que se realizaron son:

1. Tarjeta principal. (Ver figura 4.1).
2. Tarjeta de procesamiento. (Ver figura 4.2).
3. Tarjeta de entrada/salida de 4-20 mA. (Ver figura 4.3).
4. Tarjeta de aplicacin. (Ver figura 4.4).


Figura 4.1 Tarjeta principal.

Diseo y construccin de una tarjeta programable Captulo 4. Construccin y pruebas de las tarjetas
De adquisicin, procesamiento de datos y control electrnicas
49

Figura 4.2 Tarjeta de procesamiento.



Figura 4.3 Tarjeta de entrada/salida de 4-20 mA.



Diseo y construccin de una tarjeta programable Captulo 4. Construccin y pruebas de las tarjetas
De adquisicin, procesamiento de datos y control electrnicas
50
Figura 4.4 Tarjeta de aplicacin.

Finalmente se integraron la tarjeta principal, la tarjeta de procesamiento, la tarjeta de 4-20
mA y la pantalla de cristal lquido en una base de acrlico para formar la tarjeta
programable. La conexin de la tarjeta principal con las tarjetas externas se realiza por
medio de cable plano con conectores.

4.2. Emulacin funcional de los mdulos de la tarjeta programable

Despus de que la tarjeta fue ensamblada, se realizaron pruebas de cada uno de los mdulos
de la tarjeta programable, stas se muestran en la tabla 4.1 donde se indican los mdulos
utilizados como entrada y salida de datos.

Tabla 4.1 Pruebas de la tarjeta programable.
N Nombre Mdulo de entrada Mdulo de salida
Puerto B (E/S digitales) Puerto D (E/S digitales)
1 E/S digitales
Puerto D (E/S digitales) Puerto B (E/S digitales)
2 Entradas analgicas Entrada analgica RA0 Puerto B (E/S digitales)
3
Potencia para
motores
* Potencia para motores
4
Pantalla de cristal
lquido (LCD)
* LCD
5
Comunicacin
RS232
Puerto B (E/S digitales) RS232
6 Comunicacin I
2
C * Memoria EEPROM
E/S de 4-20 mA Puerto B (E/S digitales)
7 E/S de 4 - 20 mA
* E/S de 4-20 mA
* En estas pruebas los datos iniciales o de control son generados en el mdulo de procesamiento.

Diseo y construccin de una tarjeta programable Captulo 4. Construccin y pruebas de las tarjetas
De adquisicin, procesamiento de datos y control electrnicas
51
Todos los programas en la parte inicial tienen la funcin de incluir la librera del
PIC18F452, las libreras necesarias de acuerdo a las instrucciones programadas (# include)
y las directivas de configuracin del microcontrolador (# pragma config).

Para la programacin del PIC18F452 durante estas pruebas se deshabilitaron las opciones
del oscilador del perro guardin (watchdog timer) y el reinicio por bajo voltaje para evitar
que se reinicie el programa de prueba en los ciclos infinitos de ejecucin o por cadas en el
voltaje de alimentacin, tambin se deshabilita la programacin en bajo voltaje para que el
pin RB5 pueda funcionar como entrada/salida digital.


4.2.1. Prueba de E/S digitales

Se prueban los mdulos de entrada/salida digitales. Se divide en dos partes, en la primera
parte el estado del puerto B es el complemento a 1 del puerto D.

Primero se configuran los puertos asignando el valor 0xFF al registro TRISB para
configurar el puerto B como entrada y el valor de 0x00 al registro TRISD para configurar el
puerto D como salida. Despus, en un ciclo infinito se le asigna al puerto D el complemento
a 1 del puerto B.

En la segunda parte de esta prueba, el estado del puerto D es el complemento a 1 del puerto
B. Los valores asignados a TRISB y TRISD se intercambian para que el puerto D sea la
entrada y el puerto B sea la salida.

En ambas pruebas, las salidas (LEDs) y las entradas (interruptores) interactuaron
correctamente de acuerdo al programa en el microcontrolador.

4.2.2. Prueba de entradas analgicas

Se muestran los ocho bits ms altos de la conversin A/D de un potencimetro conectado al
canal AN0. Esta prueba permiti probar el funcionamiento del mdulo de entradas
analgicas.

Gracias a la facilidad de programar en lenguaje C, el proceso de configuracin del
conversor analgico a digital descrito en el captulo 2, se simplifica en una sola instruccin
que es:

OpenADC(ADC_FOSC_RC & ADC_LEFT_JUST & ADC_5ANA_0REF,ADC_CH0 &
ADC_INT_OFF);

En esta instruccin se selecciona el oscilador RC interno como el reloj del conversor A/D;
el resultado justificado a la izquierda (los ocho bits ms significativos del resultado de la
conversin estn en el registro ADRESH); configura el microcontrolador para que operen 5
terminales como entradas analgicas y utilizar el voltaje de alimentacin como voltaje de
referencia para el conversor; selecciona el canal 0 como entrada a convertir y deshabilita la
interrupcin generada por el conversor A/D.
Diseo y construccin de una tarjeta programable Captulo 4. Construccin y pruebas de las tarjetas
De adquisicin, procesamiento de datos y control electrnicas
52

La rutina utilizada en un ciclo infinito para leer el valor analgico de entrada y mostrarlo en
el puerto B es realizado cuando se utilizan las subrutinas de la librera del conversor A/D.

ConvertADC(); // Inicia la conversin
while (BusyADC()); // Espera a que la conversin finalice
PIR1bits.ADIF = 0; // Se limpia la bandera de interrupcin del conversor AD
PORTB = ADRESH; // Copia los 8 bits mas significativos al PORTB

Despus de una conversin se necesita un tiempo de espera de 2 veces el tiempo de
adquisicin por bit (T
AD
) antes de iniciar la siguiente conversin. El valor mnimo de T
AD

es de 1.6 s, por lo que se requiere de un retardo de 3.2 s. Para programar los retardos en
el PIC18F452 se utiliza la ecuacin 4.1 para calcular los ciclos de instruccin necesarios
para el retardo.

( ) Ciclos Tiempo de retardo deseado Frecuencia de oscilador 4 = (4.1)

Aplicando la ecuacin 3.2 para un retardo de 3.2 s se obtiene:

( )
-6 6
Ciclos 3.2 10 12 10 4 9.6 10 = = i i

La instruccin para generar el retardo es:

Delay10TCYx(1); //Retardo de 3.2 s para 12 MHz

En la librera delays.h se incluyen varias funciones para generar los retardos en mltiplos
del tiempo de ciclo de instruccin.

Como resultado, la respuesta mostrada en los LEDs fue proporcional a la posicin del
potencimetro.

4.2.3. Prueba de potencia para motores

En esta prueba se verific el funcionamiento del mdulo de potencia de motores. De
acuerdo al estado del puerto D dos motores de corriente directa giran a la izquierda o a la
derecha.

Se asigna el valor de 0xFF al registro TRISD para que el puerto D funcione como entrada,
y se asignan los valores de 0x00 a los registros TRISA, TRISB y TRISC porque las
terminales del mdulo de potencia son RA4, RB0, RB6, RB7, RC0, RC1, RC2 y RC5.

Para el control de los motores se est asignando constantemente el valor de una terminal del
puerto D a un valor de una terminal de salida del mdulo de potencia de motores.

Diseo y construccin de una tarjeta programable Captulo 4. Construccin y pruebas de las tarjetas
De adquisicin, procesamiento de datos y control electrnicas
53
Los motores se accionaron de acuerdo al estado de los pulsadores conectados al puerto D
del microcontrolador.

4.2.4. Prueba de la pantalla de cristal lquido (LCD)

Para esta prueba se envi a la pantalla de cristal lquido (LCD) el mensaje CENIDET
MECATRNICA.

En esta prueba se realiz el protocolo de transmisin para enviar las instrucciones de
configuracin del LCD y del mensaje, y posteriormente se envan los componentes de los
arreglos mensaje y mensaje2 que contienen las palabras a mostrar. Se aplican los
retardos necesarios de acuerdo a la hoja de datos de la pantalla de cristal lquido.

Los retardos utilizados son de 1 milisegundo y de 10 microsegundos. Estos fueron
calculados con la ecuacin 4.1 para obtener los ciclos de instruccin necesarios para
generar el retardo.

Para generar el retardo de 1 ms:
( )
-3 6
Ciclos 110 12 10 4 3000 = = i i

Para generar el retardo de 10 s:
( )
-6 6
Ciclos 10 10 12 10 4 30 = = i i

Por lo que las instrucciones para cada uno de los retardos son:

Delay1KTCYx(3); //Retardo de 1 ms para 12 MHz
Delay10TCYx(3); //Retardo de 10 s para 12 MHz

Se mostr en el LCD el mensaje enviado desde la tarjeta programable.


4.2.5. Prueba de comunicacin con la PC

Esta prueba consisti en enviar el estado del puerto D a la computadora por medio del
puerto RS232. Se verific el funcionamiento del mdulo de comunicacin RS232. Para
verificar los datos enviados a la computadora, se utiliz un programa gratuito de monitoreo
de puerto serie llamado Comunica. [13]

Igual que en pruebas anteriores, se utilizaron las libreras especficas para desarrollar el
programa de prueba. Con una sola instruccin se configura el mdulo de transmisin y
recepcin sncrono/asncrono universal (USART). Para configurar la velocidad de
comunicacin, se requiere calcular el valor de la variable spbrg que se almacena en el
registro del generador de velocidad de transmisin en baudios. Las frmulas del clculo de
la variable spbrg dependen de la velocidad y tipo de transmisin serial de datos. Las
ecuaciones 4.2 y 4.3 se utilizan para modo asncrono a alta velocidad y a baja velocidad
respectivamente, y la ecuacin 4.4 se utiliza para modo sncrono.
Diseo y construccin de una tarjeta programable Captulo 4. Construccin y pruebas de las tarjetas
De adquisicin, procesamiento de datos y control electrnicas
54

( ) ( )
Velocidad deseada 16 1
OSC
spbrg F = (4.2)
( ) ( )
Velocidad deseada 64 1
OSC
spbrg F = (4.3)
( ) ( )
Velocidad deseada 4 1
OSC
spbrg F = (4.4)

Como se defini una velocidad de 19200 baudios en modo asncrono, se utiliza la ecuacin
4.2. Sustituyendo F
OSC
= 12 MHz y Velocidad = 19200 en la ecuacin 4.2 se obtiene:
( ) ( )
6
12 10 19200 16 1 38.06 38 spbrg = = i

El valor de spbrg se coloca al final de la instruccin OpenUSART() para configurar la
velocidad de transmisin de datos (ver programa de prueba 5 en anexo E). Con la
instruccin WriteUSART(x) se enva el valor de la variable x por el puerto serie.

Se mostr correctamente en la pantalla de la computadora los datos enviados por el puerto
D de la tarjeta programable.

4.2.6. Prueba de memorias EEPROM

Esta prueba utiliza dos programas, uno para escribir dos datos en la memoria EEPROM y
otro para leer el primer dato y mostrarlo en el puerto D.

Se configura el mdulo de transmisin I
2
C con la instruccin OpenI2C() para operar en
modo maestro y velocidad estndar de 100 KHz. En este modo de funcionamiento es
necesario calcular el valor del registro SSPADD. Para calcular el valor de SSPADD se
despeja esta variable de la ecuacin 4.5.

( ) ( )
Reloj 4 1
OSC
F SSPADD = + i (4.5)

Para el modo de velocidad estndar de 100 KHz y la frecuencia de oscilacin de 12 MHz,
el valor de SSPADD es:

( )
6
3
12 10
SSPADD 1 29
4 100 10
= =
i
i i


En el primer programa se ejecuta el protocolo de transmisin I
2
C para enviar un dato a una
de las memorias EEPROM. Se enva primero la direccin de la EEPROM con la
instruccin de escritura (0xA0). Como es una memoria de 512 KBytes, utiliza una palabra
(2 bytes) para el direccionamiento interno, se enva el byte inferior de la direccin y luego
el byte superior. Despus se envan los dos datos a almacenar (0xA5 y 0x00) y finaliza el
programa.

Diseo y construccin de una tarjeta programable Captulo 4. Construccin y pruebas de las tarjetas
De adquisicin, procesamiento de datos y control electrnicas
55
En el segundo programa se realiza el protocolo sin utilizar las instrucciones de la librera
i2c.h. Se enva la direccin con la instruccin de lectura y la direccin interna de la
memoria EEPROM. Despus empieza a recibir los datos solicitados y finaliza el programa.

Los datos almacenados en la memoria EEPROM fueron recuperados y el dato mostrado
(0xA5) corresponda con el que fue solicitado.

4.2.7. Prueba de E/S de 4-20 mA

Antes de realizar pruebas a este mdulo, se caracteriz el receptor y el transmisor de
corriente. Para el receptor se enviaron seales de corriente desde 4 hasta 20 mA cada 2 mA,
tanto en forma ascendente como descendente para verificar la linealidad del circuito
integrado. En la tabla 4.2 se muestran los resultados obtenidos de la caracterizacin del
receptor RCV420.

Tabla 4.2 Caracterizacin del receptor de 4-20 mA.
Salida (V) Entrada de
corriente (mA) Prueba 1 (Ascendente) Prueba 2 (Descendente)
4 0.02 0.00
6 0.63 0.64
8 1.27 1.27
10 1.89 1.90
12 2.52 2.52
14 3.16 3.17
16 3.80 3.80
18 4.42 4.43
20 5.05 5.05


La figura 4.5 muestra los datos de la tabla 4.2 y se observa la linealidad del receptor.

Diseo y construccin de una tarjeta programable Captulo 4. Construccin y pruebas de las tarjetas
De adquisicin, procesamiento de datos y control electrnicas
56

Figura 4.5 Grfica de respuesta del receptor de 4-20 mA.

Para la caracterizacin del transmisor, se calcularon los valores digitales necesarios para
que la salida del conversor digital-analgico entregue cada uno de los niveles de corriente
de la tabla 4.2. Se utiliz una resistencia de 250 como resistencia de carga tpica segn la
hoja de datos del transmisor XTR110. Los valores programados para cada una de las
salidas de corriente se muestran en la tabla 4.3 con los valores de corriente medidos a la
salida del transmisor de corriente y el error calculado del transmisor de 4-20 mA.

Tabla 4.3 Caracterizacin del transmisor de 4-20 mA.
Salida (mA) Dato programado
(hexadecimal) Valor ideal Valor real
Error
(%)
0x00 4 4 0.00
0x20 6 6 0.00
0x40 8 8 0.00
0x60 10 10.1 1.00
0x80 12 12.1 0.83
0x9F 14 14.1 0.71
0xBF 16 16.2 1.25
0xDF 18 18.2 1.11
0xFF 20 20.2 1.00

0
1
2
3
4
5
6
2 4 6 8 10 12 14 16 18 20 22
Corriente de entrada (mA)
V
o
l
t
a
j
e

d
e

s
a
l
i
d
a

(
V
o
l
t
s
)
Prueba ascendente Prueba descendente
Diseo y construccin de una tarjeta programable Captulo 4. Construccin y pruebas de las tarjetas
De adquisicin, procesamiento de datos y control electrnicas
57
El error mximo que presenta el transmisor de 4-20 mA es de 1.25 %.

Despus de la caracterizacin del receptor y del transmisor de corriente, se realiz una
prueba para la entrada de 4-20 mA donde se mostr el dato del receptor de corriente en el
puerto B. La salida del receptor RCV420 est conectada a una entrada analgica del
microcontrolador. Se configura el conversor A/D con la instruccin OpenADC(). Este
programa es similar al programa de prueba del mdulo de entradas analgicas.

Se visualiz correctamente en binario el valor de la corriente de entrada a la tarjeta de 4-20
mA.

Para probar el transmisor de corriente, el programa realizado enciende todas las terminales
del puerto B para que el transmisor enve 20 mA, despus de 10 segundos stas se apagan
para que el transmisor enve 4 mA. Esto se realiza infinitamente hasta que se apague la
tarjeta.

En la salida de la tarjeta de 4-20 mA se lean los valores de corriente generados por el
programa de prueba.

Despus de haber realizado estas pruebas, se comprob que los mdulos de la tarjeta
programable funcionan correctamente.

Diseo y construccin de una tarjeta programable Captulo 5. Diseo y construccin de plantas
de adquisicin, procesamiento de datos y control
58

















CAPTULO 5. DISEO Y CONSTRUCCIN DE
PLANTAS

Diseo y construccin de una tarjeta programable Captulo 5. Diseo y construccin de plantas
de adquisicin, procesamiento de datos y control
59
5.1. Descripcin de plantas a controlar

Para demostrar la funcionalidad y versatilidad de la tarjeta programable, se disearon y
construyeron tres prototipos de plantas con los que la tarjeta programable debe interactuar;
Adquiere datos por medio de sensores, los procesa de acuerdo a un logaritmo de control y
enva las seales de salida a las plantas para controlar su proceso. Es importante sealar que
las plantas se construyeron con el objetivo de mostrar la funcionalidad de la tarjeta
programable, por lo que en el proceso de diseo no se consideraron clculos de resistencia
de materiales. Las plantas o procesos se describen a continuacin:

Robot mvil seguidor de lnea.- Robot con dos sensores pticos de reflexin orientados
hacia el piso para detectar una lnea negra sobre fondo blanco y dos motores de corriente
directa con caja reductora para que el robot pueda desplazarse.

Modelo a escala de una plataforma de seguimiento solar.- Tiene dos grados de libertad de
tipo giratorio y utiliza un motor de corriente directa para cada uno de ellos. La luz del sol es
detectada por medio de sensores pticos y el giro en cada eje est limitado mediante
sensores electromecnicos.

Cmara trmica con temperatura controlada.- Consiste en dos cubos de acrlico (uno dentro
de otro). El control de temperatura es en el volumen del cubo interno. Tiene un calefactor,
un agitador de aire para mantener uniforme la temperatura, un sensor de temperatura, un
inyector, un extractor de aire y dos ductos por donde circula el aire que es regulado
mediante compuertas.

En la tabla 5.1 se describen las plantas que se fabricaron, los recursos y el tipo de control
que cada una de ellas utiliza.

Tabla 5.1 Descripcin de plantas fabricadas
Planta
Objetivo de
control
Sensores
No. de
Canales de
entrada
No. de
canales de
salida
Actuadores
Tipo de
control
Robot mvil
seguidor de
lnea
Seguir lnea negra
sobre superficie
blanca
2 sensores
pticos de
reflexin
2 (digitales)
2 (potencia
para
motores)
2 motores
de CD
Enc/apag
Modelo a
escala de
plataforma
de
seguimiento
solar
Orientar la placa
colectora hacia el
sol
5 micro
interruptores
21
fototransistores
1 encoder
13 (digitales)
2 (potencia
para
motores)
2 motores
de CD
Enc/apag
Cmara
trmica con
temperatura
controlada
Controlar la
temperatura de un
ambiente aislado
trmicamente
1 sensor de
temperatura
1 (digital)
1 (analgica)
1 (digital)
5 (potencia
para
motores)
1 calefactor
1 soplador
1 extractor
de aire
2 solenoides
Propor-
cional-
integral


Diseo y construccin de una tarjeta programable Captulo 5. Diseo y construccin de plantas
de adquisicin, procesamiento de datos y control
60
5.2. Robot mvil seguidor de lnea

5.2.1. Objetivo

El robot mvil debe seguir una lnea negra trazada sobre una superficie blanca. Esto se
logra mediante dos sensores pticos de reflexin (cada uno de estos consta de un LED
infrarrojo y un fototransistor). Los sensores son activados por el reflejo sobre el transistor
de la luz infrarroja emitida por el LED. Es por esto que se deben emplear superficies que
contrasten en color; ya sea lnea obscura sobre fondo claro o viceversa. El robot emplea dos
motores de corriente directa (CD) para poderse mover, cada motor se controla de forma
independiente para que el robot pueda girar. Ver figura 5.1
Figura 5.1 Robot mvil seguidor de lnea

5.2.2. Requerimientos de la planta

El robot mvil requiere de la tarjeta programable: dos entradas digitales (RD0 Y RD1), por
donde entran las seales provenientes de los sensores al microcontrolador, y cuatro salidas
del mdulo de potencia L293 (RA4, RB6, RB7 y RC2), por donde la tarjeta enva las
seales para activar/desactivar cada uno de los motores de 12 VCD.

5.2.3. Diseo mecnico

El robot mvil consta de un chasis metlico rectangular de 66 x 79 mm. En la parte
delantera del chasis van montados dos motores elctricos de 12 VCD / 0.5 Amperes. Cada
motor tiene una caja reductora en cuyas salidas se montan las ruedas del robot. En la parte
posterior del chasis se localiza una rueda loca y en la parte frontal la placa porta sensores.
Ver figura 5.2
Giro del motor
izquierdo
Giro del motor
derecho
Rueda loca
Sensores
Chasis
Diseo y construccin de una tarjeta programable Captulo 5. Diseo y construccin de plantas
de adquisicin, procesamiento de datos y control
61












Figura 5.2 Robot mvil seguidor de lnea

5.2.4. Diseo elctrico del robot mvil

Los recursos que la planta requiere de la tarjeta programable son: dos canales digitales de
entrada por medio de los cuales los fototransistores ingresan las seales a la tarjeta, y,
cuatro canales de salida para operar los motores de CD en ambas direcciones. El sensor
empleado en el robot mvil es el fototransistor CNY70 el cual se activa cuando la luz de su
diodo rebota (en una superficie blanca) hacia su fototransistor. Al activarse el sensor
ingresa un 1 lgico (+ 5 VCD) a la tarjeta, en caso contrario ingresa un 0 lgico (0
VCD).
La figura 5.3 muestra el circuito electrnico empleado por el robot mvil. La corriente en el
fotodiodo es limitada por R1, la seal del sensor es el voltaje presente en la resistencia R2.
Estas resistencias son calculadas con la ecuacin 5.1.

1
CC f
f
V V
R
I

= (5.1)
Donde:
V
cc
= Voltaje de alimentacin = 5 Volts
V
f
= Voltaje del diodo en polarizacin directa = 1.25 Volts
I
f
= Corriente del fotodiodo en polarizacin directa = 50 mA
R1 = 75










Chasis
Ruedas
delanteras
Rueda loca
Motores de
12 VCD
Soporte de
sensores
Diseo y construccin de una tarjeta programable Captulo 5. Diseo y construccin de plantas
de adquisicin, procesamiento de datos y control
62

5 VCC
5 VCC
SENSOR IZQ
CNY70
SENSOR DER
CNY70
R2
47 K
R2
47 K
R1
75
R1
75
MOTOR
IZQUIERDO
15 VCD
MOTOR
DERECHO
15 VCD
T
A
R
J
E
T
A
P
R
O
G
R
A
M
A
B
L
E
RD0
RD1
RC2
RB6
RA4
RB7

Figura 5.3 Circuito electrnico del robot mvil seguidor de lnea.

El valor de R2 debe ser lo suficientemente grande para que la mayor parte de voltaje caiga
en sta cuando el fototransistor se sature, y conduzca. Por lo anterior se toma de esta
resistencia la seal que se enva a la tarjeta programable. Con una resistencia de 47 k la
tarjeta detect perfectamente las seales enviadas desde los sensores del robot mvil.

Los motores utilizados son controlados por el driver L293 de la tarjeta programable. Con
ste se controla el encendido y sentido de giro de ambos motores. La velocidad de los
motores depende del voltaje que se les aplique, en este caso es de 12 VCD aplicado desde
una fuente externa.

5.2.5. Algoritmo de control

1. Si ambos sensores estn sobre la lnea oscura, el robot mvil se debe mover en lnea
recta. Posicin 1 del robot en la figura 5.4.
2. Si se activa el sensor izquierdo debido a que sali de la lnea oscura, el robot debe
girar a la derecha hasta que el sensor se vuelva a desactivar. Posicin 2 del robot en
la figura 5.4
3. Si se activa el sensor derecho debido a que sali de la lnea oscura, el robot debe
girar a la izquierda hasta que el sensor se vuelva a desactivar. Posicin 3 del robot
en la figura 5.4
4. Si ambos sensores se activan debido a que salen de la lnea oscura, el robot debe
detenerse. Posicin 4 en la figura 5.4
Diseo y construccin de una tarjeta programable Captulo 5. Diseo y construccin de plantas
de adquisicin, procesamiento de datos y control
63

Figura 5.4 Diferentes acciones del robot de acuerdo al estado de sus sensores.

El algoritmo de control se representa mediante el diagrama de flujo en el anexo D.1. El
programa fuente que controla esta planta se realiz en lenguaje C, utilizando el compilador
C18 especfico para la familia de microcontroladores PIC18. En el anexo D.2 se encuentra
el programa fuente que controla el robot mvil seguidor de lnea.


5.3. Modelo a escala de una plataforma de seguimiento solar

5.3.1. Objetivo

Orientar la placa colectora de la planta a la direccin del sol, con la finalidad de aprovechar
al mximo la energa calorfica de ste. Esta tarea se realiza por medio de 21 sensores y 2
motores de 24 VCD.

5.3.2. Requerimientos de la planta

Los recursos que la planta demanda de la tarjeta programable son: 2 entradas digitales del
puerto A, 8 entradas digitales del puerto B, 4 entradas digitales del puerto D y 4 salidas
digitales del puerto D. No se conectan los motores de la planta a la salida de potencia de la
tarjeta programable debido a que el integrado L293 tiene una capacidad de suministro de
corriente de 1 Ampere, y la corriente que demandan los motores de la planta es de 1.8
Amperes. Debido a lo anterior se implementaron en una tablilla de conexin (protoboard)
dos puentes H, con transistores de 15 Amperes, con los que se controla el giro y el frenado
de cada uno de los motores de la plataforma de seguimiento solar. Ver figura 5.5
Posicin 1
Avanza en lnea recta
Posicin 2
Gira a la derecha
Posicin 3
Gira a la izquierda
Posicin 4
Se detiene el robot
Diseo y construccin de una tarjeta programable Captulo 5. Diseo y construccin de plantas
de adquisicin, procesamiento de datos y control
64
24 VCD
5 VCD
TIP125
TIP120
BC548
R1
3k3
150k
R2
MOTOR
24VCD
Figura 5.5 Circuito de potencia (puente H) para alimentar dos motores de 24 VCD.

Para que los transistores TIP220, TIP225 y BC548 trabajen en la regin de saturacin, se
calcul el valor de las resistencias R1 y R2. Los datos de transistores indicados en la figura
5.6 se tomaron de hojas de datos del fabricante FAIRCHILD SEMICONDUCTOR
TM
. [14]














Figura 5.6 Circuito de operacin simplificado del puente H.

Clculo de la resistencia conectada a la base del transistor TIP 125

I
L(max)
= 2 A
R1 = V
R1
/ I
R1
R1 = V
R1
/ I
B(sat)
V
R1
= 24 (V
BE(on)
del TIP 125) (V
CE(on)
del BC548) (V
BE(on)
del TIP 120)
V
R1
= 24 2 - 0.6 -2.5 = 18.9 V
V
CE(sat)
=2 V, Ic(max)=5 A, h
FE
=1000, V
BE(on)
=2.5 V
V
CE(sat)
=-2 V, Ic(max)=5 A, h
FE
=1000, I
B(max)
=-120 mA, V
BE(on)
=-2 V
V
CE(sat)
=0.6 V, Ic(max)=500 mA, h
FE
=800, I
B
=0.625 mA, V
BE(on)
=0.77 V
24 VCD
24 VCD
TIP120
TIP125
TIP120
TIP125
BC548 BC548
R2
R1
3k3
150k
R1
3k3
150k
TIP125
TIP120
TIP125
TIP120
BC548 BC548
R1
3k3
R1
3k3
150k
R2
150k
R2
R2
MOTOR GIRO
VERTICAL
24 VCD
MOTOR GIRO
HORIZONTAL
24 VCD
RD0 RD1
RD3 RD2
Diseo y construccin de una tarjeta programable Captulo 5. Diseo y construccin de plantas
de adquisicin, procesamiento de datos y control
65
I
Bmin
= I
L(max)
/ h
FE

I
Bmin
= 2 A / 1000 = 2 mA
Considerando I
B
= 5 mA
R1 = 18.9 V / 5 mA = 3.78 k

El valor prximo comercial es de 3.3 k. Siendo R1 = 3.3 k, la corriente de base para
saturacin de los transistores TIP120 y TIP125 es:

I
B(sat)
= 18.9 V / 3300 = 5.72 mA


Clculo de la resistencia conectada a la base del transistor BC548

R2 = V
R2(on)
/ I
R2(max)

V
R2(on)
= 5 - V
BE(on)
BC548 - V
BE(on)
TIP120
V
R2(on)
= 5 - 0.77 2.5 = 1.73 V
I
Bmin
= I
L(max)
/ h
FE
BC548
I
Bmin
= 5.72 mA / 800 = 7.15 A
Considerando I
B
= 10 A
R2 = 1.73 V / 10 A = 173 k

El valor prximo comercial es de 150 k. Siendo R2 = 150 k, la corriente de base para
saturacin de los transistores BC548 es:

I
B(sat)
= 1.73 V / 150 k = 11.53 A


5.3.3. Diseo mecnico

Es una base cuadrada de aluminio de 400 x 400 x 6 mm. Al centro de esta base se mont un
buje para que pueda girar un soporte vertical en conjunto con la placa colectora, el soporte
vertical es un perfil cuadrado de acero de 32.5 x 32.5 x 402 mm, dentro del cual se aloja un
mecanismo de tornillo sin fin que proporciona el giro vertical a la placa colectora. Ver
figura 5.7.
Diseo y construccin de una tarjeta programable Captulo 5. Diseo y construccin de plantas
de adquisicin, procesamiento de datos y control
66























Figura 5.7 Diseo mecnico del modelo a escala de la plataforma de seguimiento solar.

El sistema es de dos grados de libertad; uno de ellos es el giro horizontal que en conjunto
mueve el soporte vertical y la placa colectora por medio de un motor de 24 VCD, el otro
grado de libertad es el giro vertical de la placa colectora por medio de otro motor de 24
VCD

5.3.4. Diseo elctrico del modelo a escala de la plataforma de seguimiento solar

La placa colectora tiene instalada una placa semicircular de acrlico con 21 sensores
fotoelctricos distribuidos de la siguiente manera:

Un sensor colocado en la parte superior de la placa semicircular (sensor principal).
Ver figura 5.8
Dos grupos de ocho sensores cada uno, ubicados en los extremos de la placa
semicircular. Los ocho sensores de cada grupo estn conectados en paralelo La
separacin entre sensores consecutivos es de 10. Ver figura 5.8 y 5.9.
Cuatro sensores (sensor1, sensor2, sensor3, y sensor4) alrededor del sensor
principal con una inclinacin de 20 con respecto a la direccin este. Ver figura 5.8.

En cada uno de los lmites de giros horizontal y vertical, la planta tiene instalado un
interruptor de lmite. Para posicionar horizontalmente la placa colectora en la rutina de
inicio, la planta cuenta con un interruptor de lmite instalado en el centro de la polea de giro
de la placa colectora. Ver figura 5.9.
Varilla
roscada
Polea
roscada
Dados
deslizantes
Poleas de
placa colectora
Bujes de
polea
Motor giro
vertical
Motor giro
horizontal

Buje
Placa
colectora
Mecanismo de giro vertical
Modelo completo del modelo a escala
de plataforma de seguimiento solar
Soporte
vertical

Diseo y construccin de una tarjeta programable Captulo 5. Diseo y construccin de plantas
de adquisicin, procesamiento de datos y control
67














Figura 5.8 Vista superior del modelo a escala de la plataforma de seguimiento solar.



















Figura 5.9 Fotografa del modelo a escala de la plataforma de seguimiento solar.

La figura 5.10 muestra el circuito elctrico del modelo a escala de la plataforma de
seguimiento solar.
Sensor
central
Grupo izquierdo
de 8 sensores
conectados en
paralelo
Grupo derecho
de 8 sensores
conectados en
paralelo
Sensor 4
Sensor 1
Sensor 2
Sensor 3
Interruptor de
lmite inferior
Placa semicircular
de acrlico Placa colectora
Giro
horizontal
10
Sensores
Motor de giro
vertical
Giro
vertical
Motor giro
horizontal
Interruptor de
lmite superior
Interruptor de
lmite central
Soporte vertical
Diseo y construccin de una tarjeta programable Captulo 5. Diseo y construccin de plantas
de adquisicin, procesamiento de datos y control
68























Figura 5.10 Circuito elctrico del modelo a escala de la plataforma de seguimiento solar.

5.3.5. Algoritmo de control

Las vistas de la planta mostradas en la figura 5.11 se toman como referencia para nombrar
los movimientos de la planta, en donde tambin se muestra la distribucin de los sensores
colocados en la parte superior de la placa colectora

1. Al pulsar el botn de arranque la placa colectora gira simultneamente a la
izquierda y hacia arriba/abajo deteniendo cada uno de estos giros hasta que sta se
posicione horizontalmente en el lmite de giro izquierdo.
2. Posterior a la rutina de inicio la placa colectora inicia una rutina de bsqueda la cual
consiste en giros horizontales a la izquierda y a la derecha. Las primeras cuatro
veces que la placa colectora llegue a los lmites de giro, realizar ah un giro vertical
de 2.5 hacia arriba, y las prximas cuatro veces hacia abajo. Si el sol no es
detectado por los sensores montados en la parte superior de la placa colectora en
estos 4 ciclos de bsqueda, la planta se detendr.
3. El giro vertical de la placa colectora es definido por un encoder fotoelctrico
montado en el motor de giro vertical de la planta.
4. Si en la rutina de bsqueda el sol es detectado por uno de los sensores del grupo
izquierdo de la placa de acrlico, entonces la placa colectora primero frenar su giro
horizontal y despus girar verticalmente hacia arriba, frenando este giro hasta que
el sensor principal apunte hacia el sol.
5 VCC 5 VCC
5 VCC
5 VCC
5 VCC
5 VCC 5 VCC
GRUPO IZQUIERDO DE SENSORES
R1
330
R1
330 S6
INT DE ARRANQUE
GRUPO DERECHO DE SENSORES
R1
330
S
E
N
S
O
R
P
R
I
N
C
I
P
A
L
SENSOR 1 SENSOR 4
S
E
N
S
O
R

2
S
E
N
S
O
R

3
I
N
T

L
I
M

I
Z
Q
I
N
T

L
I
M

D
E
R
I
N
T

L
I
M

S
U
P
I
N
T

L
I
M

I
N
F
R1
330
I
N
T

L
I
M
C
E
N
T
R
A
L
R1
330
R1
330
R1
330
R1
330
R1
330
R1
330
R
1
3
3
0
R
1
3
3
0
ENCODER
R1
330
R
1
3
3
0
MOTOR DE 24 VCC
GIRO IZQ/DER
MOTOR DE 24 VCC
GIRO SUB/BAJ
RA4 RB0 RB1 RB2
RB3 RB4 RB5 RB6 RB7
RD0
RD1
RD2
RD3
RD4 RD5 RD6 RD7
TARJETA
PROGRAMABLE
TARJETA DE
POTENCIA
(2 PUENTES H)
RA5
Diseo y construccin de una tarjeta programable Captulo 5. Diseo y construccin de plantas
de adquisicin, procesamiento de datos y control
69
5. Si en la rutina de bsqueda el sol es detectado por uno de los sensores del grupo
derecho de la placa de acrlico, entonces la placa colectora primero frenar su giro
horizontal y despus girar verticalmente hacia abajo, frenando este giro hasta que
el sensor principal apunte hacia el sol.
6. La rutina de bsqueda termina en el momento que el sensor principal es activado
por el sol y entonces inicia la rutina de seguimiento.
7. El sensor principal est rodeado por seis sensores. Ver figuras 5.8 y 5.11.
8. El seguimiento inicia en el momento que el sensor principal pierde la luz del sol por
el movimiento relativo de este. Y entonces se espera a identificar cul de los seis
sensores que rodean al principal se activa para realizar los giros que harn que el
sensor principal apunte nuevamente hacia el sol, y en consecuencia la placa
colectora tambin quedara orientada hacia el sol.
a. Si el sol es detectado por el sensor de la trampa izquierda la placa colectora
girar hacia arriba, frenando hasta que el sensor principal detecte el sol
b. Si el sol es detectado por el sensor de la trampa derecha la placa colectora
girar hacia abajo, frenando hasta que el sensor principal detecte el sol
c. Si el sol es detectado por el sensor No. 1 la placa colectora girar hacia la
derecha y hacia abajo, frenando hasta que el sensor principal detecte la luz
del sol.
d. Si el sol es detectado por el sensor No. 3 la placa colectora girar hacia la
derecha y hacia arriba, frenando hasta que el sensor principal detecte la luz
del sol. La lgica cuando se detecta la luz por los sensores restantes es
similar













Figura 5.11 Referencia de giros e identificacin de sensores.

Cabe aclarar que la precisin de los movimientos est limitada, debido a que se utilizaron
poleas/bandas para la transmisin de movimiento de los motores a la planta (las bandas se
deslizan), adems las piezas que conforman el mecanismo de giro vertical no se fabricaron
con la maquinaria apropiada por lo que vara el grado de rozamiento de las piezas a lo largo
de su carrera de trabajo. Debido a lo anterior es difcil el control de la velocidad rotacional
de la placa colectora.
El diagrama de flujo del algoritmo de control se localiza en el anexo D.3, y el cdigo fuente
en el anexo D.4.
Motor / giro vertical
Grupo izq.
sensores
Detalle A
Lmite giro arriba
Grupo der.
sensores
Sube
Baja
lmite giro abajo
Lmite central
Giro der. Giro izq.
Lmite
giro izquierda
Lmite
giro derecha
Sensor

principal
Sensor 1
Detalle A
Vista superior de la planta
Sensor 2 Sensor 3
Sensor 4
Sensor
grupo der.
Sensor
grupo izq.
Giro der.
Giro izq.
Diseo y construccin de una tarjeta programable Captulo 5. Diseo y construccin de plantas
de adquisicin, procesamiento de datos y control
70
5.4. Cmara trmica con temperatura controlada

5.4.1. Objetivo

Controlar la temperatura dentro de la cmara trmica con un controlador tipo proporcional
o proporcional-integral, configurado por medio de un instrumento virtual de LabVIEW.

5.4.2. Diseo mecnico

Por ser una planta didctica, se hizo de acrlico para poder observar los componentes y su
funcionamiento en el interior de la cmara. El cubo interno es de 305 x 305 x 310 mm. y
est en el centro del cubo externo de 405 x 405 x 410 mm. Con las dimensiones anteriores
se tiene un volumen interno de 300 x 300 x 300 mm. y 400 x 400 x 400 mm. en cada cubo
respectivamente. Los cubos estn ensamblados con tornillos de 1/8 de pulgada. Para
colocar el cubo interno en la parte central del cubo grande se utilizan unos soportes de
acrlico en las esquinas internas de ste ltimo.

Los elementos que se encuentran dentro de la cmara trmica son un calefactor que es el
elemento actuador del sistema, un agitador de aire para mantener uniforme la temperatura
en el volumen interno de la cmara, unos ductos de ventilacin y un sensor de temperatura.
El calefactor se encuentra en una base de porcelana. La base del calefactor y el agitador de
aire estn atornillados a la base del cubo interno. El sensor de temperatura se encuentra a 3
cm. de la parte central de la cara superior del cubo interno. Ver figura 5.12.
Figura 5.12 Cmara trmica con temperatura controlada.
Soplador
de aire
Agitador
de aire
Calefactor
Extractor
de aire
Solenoide de
apertura de
compuerta
Sensor de
temperatura
Cubo externo
Cubo
interno
Diseo y construccin de una tarjeta programable Captulo 5. Diseo y construccin de plantas
de adquisicin, procesamiento de datos y control
71

Los ductos se fabricaron de acuerdo a las dimensiones del soplador y el extractor de aire.
Cada ducto tiene una compuerta que est conectada al ncleo mvil de un solenoide con el
fin de poder abrir la compuerta al energizar el solenoide. Todo este conjunto es utilizado
para que circule aire hacia el interior de la cmara y expulse el aire caliente.

La cmara trmica est sellada con silicn para optimizar el aislamiento trmico.


5.4.3. Diseo elctrico de la cmara trmica

El calefactor es de tipo resistivo. El sensor de temperatura es el LM35 el cual tiene una
salida de 10 mV/C y est conectado directamente al mdulo de entradas analgicas de la
tarjeta programable. Todos los elementos (excepto el calefactor) se conectan al exterior a
travs de un conector DB9 macho. Para controlar adecuadamente el calefactor, se utiliza
una seal de referencia proveniente de un sencillo circuito detector de cruce por cero (ver
figura 5.13) de la seal de corriente alterna. [15]

(2)
- +
(1)
120 VCA
CD4093
REFERENCIA DE
CRUCE POR CERO

Figura 5.13 Circuito generador de seal de referencia.

Las seales de entrada y salida del circuito anterior se muestran en la figura 5.14.

Figura 5.14 Seal de referencia.

El circuito de interfaz para el control de CA (figura 5.15) consiste en un optoacoplador y un
triac. Los valores de las resistencias corresponden para el circuito de control de un
elemento resistivo. [16]


F = 60 Hz
+9V
+5V
t
t
2
1
Diseo y construccin de una tarjeta programable Captulo 5. Diseo y construccin de plantas
de adquisicin, procesamiento de datos y control
72
TIC226D
180
470
MOC3010
CARGA
100
100 nF
120 VCA
SEAL DE
DISPARO

Figura 5.15 Circuito de control de CA.

Los falsos disparos del TRIAC se pueden prevenir con el uso de una red snubber entre las
terminales MT1 y MT2 para limitar la razn de cambio del voltaje. Los valores comunes
de la red snubber son una resistencia de 100 seleccionada para el manejo de corriente y
un capacitor de 100 nF. [17]


El diagrama de conexin de la tarjeta programable con los circuitos electrnicos adicionales
y los elementos de la cmara trmica se muestran en la figura 5.16.

Figura 5.16 Diagrama elctrico de la cmara trmica y la tarjeta programable.


5.4.4. Requerimientos de la planta

Para controlar esta planta la tarjeta programable utiliza un canal de entrada analgica
(sensor de temperatura), un canal de entrada digital (seal de referencia de cruce por cero),
cinco canales de salida de potencia (agitador, soplador, extractor y las compuertas) y un
canal de salida digital para enviar la seal de control del calefactor. Adems de estos
recursos de la tarjeta programable, se utiliza un circuito detector de cruce por cero y un
circuito de interfaz de CA.


CALEFACTOR
1
2
0

V
C
A
120 VCA
- +
LM35
VS+ VOUT
A
-
+
EXTRACTOR
A- +
AGITADOR
A
-
+
SOPLADOR
T
A
R
J
E
T
A

P
R
O
G
R
A
M
A
B
L
E
AN0
RB0
RD0
GND
+5V
RC1
RC0
RA4
RC2
RC5
COMPUERTA
EXTRACTOR
COMPUERTA
SOPLADOR
Diseo y construccin de una tarjeta programable Captulo 5. Diseo y construccin de plantas
de adquisicin, procesamiento de datos y control
73
5.4.5. Algoritmo de control

La parte central del algoritmo de control es el controlador proporcional-integral. Para
deducir la frmula de control PI a programar se realiz el siguiente proceso.

Siendo la ecuacin de un controlador PI el que se muestra en la ecuacin 5.2.


0
( ) ( ) ( )
t
P I
C t K E t K E t dt = +

(5.2)

Considerando la aproximacin 5.3 para la parte integral:


0
0
( ) ( )
N
t
E t dt Ts E n

(5.3)

La ecuacin de control PI aplicado a tiempo discreto puede rescribirse como:

0
( ) ( ) ( )
N
P S I
C n K E n T E n K = +



0
( ) ( ) ( )
N
S I
C n K E n T T E n

+

(5.4)
Donde:
K
P
= K
K
I
= K/T
I


La ecuacin 5.4 puede programarse en el microcontrolador.

El programa del microcontrolador est diseado para trabajar junto con el instrumento
virtual de LabVIEW mostrado en la figura 5.17.

Diseo y construccin de una tarjeta programable Captulo 5. Diseo y construccin de plantas
de adquisicin, procesamiento de datos y control
74
Figura 5.17 Instrumento virtual de configuracin y visualizacin de la cmara trmica.

Este instrumento virtual es utilizado para configurar los valores de las variables requeridas
para que el controlador funcione y opera de la siguiente manera:

1. Presionar el botn RUN para ejecutar el instrumento virtual. Aparece en el monitor
una ventana con instrucciones de:
Encender la tarjeta programable.
Establezca los valores de setpoint, Kp y Ti.
Presiona LISTO para comenzar.
2. Siguiendo las indicaciones mostradas, se asignan los valores a las variables
SETPOINT, Kp y Ti. El valor de la variable SETPOINT est limitada al
intervalo de 30C 70C para evitar altas temperaturas que puedan afectar a la cmara
trmica o a los elementos internos. La variable Kp esta limitada a que sea mayor que
cero para que la accin de control proporcional no se pueda deshabilitar. La variable Ti
puede ser cero para que la tarjeta funcione solamente como controlador proporcional.
3. Presionar el botn de LISTO para que los datos de las variables sean enviados a la
tarjeta programable.
4. El dato de temperatura transmitido desde la tarjeta programable es recibido y graficado,
tambin se enciende el indicador LEYENDO.
5. En caso de error de configuracin o error de acceso del puerto, se encienden unos
indicadores para mostrar el origen de la falla.
6. Presionando el botn de PARO el instrumento virtual detiene su ejecucin.

Al encender la tarjeta programable, el proceso de operacin es:

1. Se inicializan los puertos y se configuran los mdulos de conversor A/D y de USART
del microcontrolador.
Diseo y construccin de una tarjeta programable Captulo 5. Diseo y construccin de plantas
de adquisicin, procesamiento de datos y control
75
2. Se enciende el agitador y espera la recepcin de datos por el puerto serie.
3. Despus de que los 3 datos (setpoint, Kp y Ti) son recibidos, se lee la temperatura de la
cmara trmica por medio del sensor LM35.
4. El dato de temperatura es enviada a la computadora y se escala para las futuras
operaciones. Se tiene aproximadamente un 1 digital del conversor A/D por cada C
de temperatura. En el programa, se manejan los valores de temperatura en dcimas de
grado Celsius para que las variables sean de tipo entero.
5. Se calcula el error y el error acumulado.
6. Si el valor de Ti es diferente de cero, se calcula la parte integral del controlador; en caso
contrario la parte integral se iguala a cero. Se calcula el valor del controlador de
acuerdo a la frmula 5.4.
7. El valor del controlador es adaptado para que controle el voltaje eficaz aplicado al
calefactor.

La tarjeta programable sigue funcionando sin importar que se haya presionado el botn de
PARO en el instrumento virtual.

El diagrama de flujo del programa de control de la cmara trmica puede consultarse en el
anexo D.5 y el cdigo fuente del programa de control en el anexo D.6. El cdigo grfico del
programa de monitoreo y control de la cmara trmica se muestra en el anexo D.7.

Diseo y construccin de una tarjeta programable Captulo 6. Experimentacin y anlisis de resultados
de adquisicin, procesamiento de datos y control
76

















CAPTULO 6. EXPERIMENTACIN Y
ANLISIS DE RESULTADOS


Diseo y construccin de una tarjeta programable Captulo 6. Experimentacin y anlisis de resultados
de adquisicin, procesamiento de datos y control
77
6.1. Pruebas y resultados de la tarjeta programable con el robot mvil seguidor de
lnea

La prueba aplicada al robot mvil seguidor de lnea consiste en que realice el recorrido de
una pista que tiene rectas y curvas hacia la izquierda y hacia la derecha. Con esta pista se
prueba la respuesta de la tarjeta programable a las distintas condiciones presentadas a los
sensores pticos.

La pista de prueba se muestra en la figura 6.1. El punto de partida del robot esta indicado
con la letra P. El robot se coloca en la posicin de partida para recorrer la pista en sentido
contrario a las manecillas del reloj. Los puntos donde el robot mvil reacciona para girar a
la izquierda estn marcados con la letra I, los puntos donde el robot mvil gira hacia la
derecha estn marcados con la letra D. Despus de las curvas, el robot mvil reacciona a
la recta y entonces avanza para continuar la trayectoria. El ancho de la lnea es de 3 cm.


Figura 6.1 Pista de prueba del robot mvil seguidor de lnea.

En las primeras pruebas el robot mvil no siempre realizaba correctamente la vuelta en las
esquinas, esto fue causado por la falta de ajuste en la separacin y en la altura de los
sensores. Los sensores se colocaron con una separacin de tal manera que quedaron
prximos a la orilla de la lnea, y a una altura de 2 mm. Con estos ajustes el robot mvil
hizo el seguimiento de la lnea correctamente durante diez minutos. El robot mvil es capaz
de seguir lneas de diferente ancho ya que la distancia entre sensores se puede ajustar. En el
caso de que la lnea sea blanca sobre superficie negra, se debe cambiar la programacin de
la tarjeta, para que funcione correctamente. [18]

Diseo y construccin de una tarjeta programable Captulo 6. Experimentacin y anlisis de resultados
de adquisicin, procesamiento de datos y control
78
6.2. Pruebas y resultados de la tarjeta programable con el modelo a escala de la
plataforma de seguimiento solar

Las pruebas realizadas al sistema de control de la planta se llevaron a cabo con un foco
incandescente de 100 Watts, el cual simul al sol. En las pruebas se detectaron algunos
problemas mecnicos debido a que las piezas no fueron fabricadas con el equipo apropiado.
Los principales problemas son: el desplazamiento deficiente de los dados del mecanismo de
movimiento vertical dentro del soporte vertical y el deslizamiento de las bandas en las
poleas, los cuales se ve reflejado en la dificultad del control de la velocidad de giro tanto
vertical como horizontal de la placa colectora.

La definicin de la direccin de los sensores fotoelctricos se logr mediante tubo termo
contrctil (thermofit).

Para realizar las pruebas se coloc el foco en una determinada posicin, y entonces se
oprimi el botn de arranque. Inicia la rutina de posicionamiento de inicio y despus la
rutina de bsqueda en donde el foco fue detectado por el grupo derecho de ocho sensores,
por lo que frena horizontalmente y despus gira verticalmente hacia abajo hasta que el
sensor principal apunto hacia el foco. Al momento en que el sensor principal apunto al foco
se produjo un frenado vertical. Se procedi a mover el foco en direccin del sensor nmero
cuatro, para esto el sistema respondi con un giro hacia la izquierda y hacia arriba,
frenando hasta que el sensor principal apunto nuevamente hacia el foco. Despus el foco se
movi hacia el sensor numero 2, para esto el sistema respondi con un giro simultaneo
hacia la izquierda y hacia abajo, frenando hasta que el sensor central apunto hacia el foco.

Se probaron los lmites de giro vertical moviendo el foco a lo largo de la fila del grupo
derecho de ocho sensores, para esto el sistema respondi con un giro vertical hacia abajo.
El foco se sigui moviendo en la misma direccin hasta que se accion el lmite inferior de
giro vertical, provocando que el sistema se reinicie desde la posicin de inicio home. De
manera similar se hizo la prueba para verificar la respuesta al accionamiento del interruptor
de lmite de giro vertical hacia arriba.

Se probaron los lmites de giro horizontal moviendo el foco de tal manera que la planta lo
siguiera hasta que se activ el lmite de giro horizontal derecho. Para esta posicin los
sensores uno y tres se inhabilitan mediante programa, por lo que la planta ya no pudo girar
mas a la derecha, protegindola as del sobregiro a la derecha. De manera similar se realiz
la prueba de proteccin de sobre giro a la izquierda.

Los resultados de las pruebas realizadas se consideran satisfactorios, considerando la falta
de maquinaria y equipo para la fabricacin de los mecanismos de la planta, adems del
mnimo presupuesto empleado para su fabricacin.

El ajuste de la longitud de los tubos que direccionan la luz del foco hacia los sensores
fotoelctricos es diferente a la que deben de tener estos para direccionar la luz del sol,
debido a la diferencia de intensidades luminosas entre ambos. La direccin perpendicular
del sol a la placa colectora se puede optimizar mediante un ajuste fino del tubo colocado en
el sensor principal, que es el que debe apuntar hacia el sol.
Diseo y construccin de una tarjeta programable Captulo 6. Experimentacin y anlisis de resultados
de adquisicin, procesamiento de datos y control
79

La respuesta que dieron las protecciones de sobregiros tanto horizontales como verticales
fue satisfactoria en todas las pruebas que se hicieron. Las diez pruebas que se hicieron,
primero haciendo que el sistema siguiera al foco hasta los lmites verticales. En estos casos
el sistema al sensar los lmites verticales respondi, llevando el sistema a la posicin de
inicio y posteriormente a la etapa de seguimiento. Las otras diez pruebas se hicieron
llevando el sistema en la etapa de seguimiento a los limites horizontales en donde el
sistema respondi de manera tal que se bloquearon los sensores que impiden al sistema
girar mas all de los limites horizontales de la planta.

El encoder empleado para incrementar/decrementar el giro vertical de la placa colectora en
2.5 tenia su disco ligeramente doblado, despus que se le dio mantenimiento al disco, el
encoder funcion correctamente, incrementando o decrementando satisfactoriamente la
altura de la placa colectora al llegar a los extremos de giro horizontal.

Los rebotes producidos por el accionamiento de los sensores electromecnicos, se
resolvieron mediante programacin. Esto consiste bsicamente en llamar una rutina de
retardo una vez que se detecto el primer accionamiento del sensor, esperando un tiempo
para evitar sensar los accionamientos subsecuentes producidos por los rebotes del
interruptor. As se corrigieron movimientos inesperados de la planta debidos precisamente a
los rebotes de los sensores electromecnicos.

No hay que olvidar que la planta tiene una velocidad de respuesta, y que esta en base a la
velocidad de giro de la placa colectora. Entonces en las pruebas con el foco, si este se
mueve muy rpido en la etapa de seguimiento, la planta perder el rastro, por lo que ya no
podr seguirlo. Con una velocidad moderada del movimiento del foco, la planta funciona
satisfactoriamente.


6.3. Pruebas y resultados de la tarjeta programable con la cmara trmica con
temperatura controlada

Se realizaron varias pruebas preliminares para comprobar el funcionamiento de la cmara
trmica. Estas pruebas preliminares estn listadas a continuacin:

Comprobacin de voltaje eficaz. Esta prueba abarc desde el anlisis matemtico para la
obtencin del voltaje eficaz de una onda senoidal recortada hasta la verificacin con el
osciloscopio del corte de la seal de corriente alterna.
Comunicacin serie tarjeta programable PC. Se prob la transmisin del dato adquirido
del sensor LM35 hacia la computadora y visualizarlo grficamente en LabVIEW.

Comunicacin serie PC tarjeta programable. Se realiz un programa de prueba para que
el microcontrolador muestre los 3 datos enviados desde LabVIEW.
Diseo y construccin de una tarjeta programable Captulo 6. Experimentacin y anlisis de resultados
de adquisicin, procesamiento de datos y control
80

a) Comprobacin de voltaje eficaz.
Para esta prueba se requirieron los siguientes datos:

175 Volts
60 Hertz
p
V
F
=
=


para obtener la ecuacin de la seal de corriente alterna:

( ) 175sin(120 ) f t =

La frmula para el voltaje eficaz de cualquier seal es:


0
1
( )
t
ef
V f t dt
T
=

(6.1)

Aplicando la ecuacin 6.1 para el clculo del voltaje eficaz de la onda recortada se obtiene:
( ) ( )
( )
( )
1 1
2
2 2
2
1
175sin(120 ) 175sin(120 )
T T
ef
t T t
V dt dt
T

+
= +


( )
1
1
sin 240
1
175 30 2
120 60
ef
t
V t


= +




Con la ayuda de un programa para graficar y tabular funciones, se buscaron los valores de
t
1
para cada voltaje eficaz de la tabla 6.1.

Tabla 6.1 Experimentacin de voltaje eficaz y tiempo de recorte.
V
ef

deseado
(Volts)
t
1
(obtenido
de grfica)
(ms)
t
1
programado
(ms)
t
1
medido
(ms)
V
inst

grfica
(Volts)
V
inst

medido
(Volts)
10 7.50 7.50 7.40 60.31 55
20 7.00 7.00 6.90 90.00 88
30 6.55 6.57 6.50 111.00 116
40 6.15 6.13 6.00 134.83 136
50 5.70 5.73 5.60 150.00 148
60 5.30 5.33 5.20 161.88 162
70 4.90 4.93 4.80 170.00 170
80 4.50 4.50 4.40 174.00 170
90 4.00 4.03 3.90 174.00 170
100 3.50 3.50 3.40 167.00 165
110 2.80 2.87 2.80 152.00 150
120 1.80 1.80 1.70 104.63 100

Diseo y construccin de una tarjeta programable Captulo 6. Experimentacin y anlisis de resultados
de adquisicin, procesamiento de datos y control
81
Se comprob que el tiempo de retardo programado corresponde al tiempo de retardo real y
por lo tanto, los recortes de seal dan valores de voltaje eficaz cercanos a los que se
deseaban.

Durante esta prueba se elev la temperatura dentro de la cmara trmica a un valor mayor
de 100 C. El agitador de aire se deform por la alta temperatura, por lo que se decidi
limitar la temperatura de operacin de la cmara trmica.


b) Comunicacin serie tarjeta programable PC.
Se program el microcontrolador para estar enviando la seal del dato de temperatura cada
segundo a la computadora por medio del puerto serie. Los datos recibidos eran visualizados
en una grfica del instrumento virtual programado en LabVIEW. Con esto se prob la
transmisin por puerto serie de la tarjeta programable a la computadora.

c) Comunicacin serie PC tarjeta programable.
En esta prueba se enviaban los datos de las variables desde el instrumento virtual de
LabVIEW a la tarjeta programable. En la tarjeta, se almacenaban los datos recibidos en tres
variables y eran mostrados por el puerto D en la tarjeta de aplicacin. Los datos enviados
desde la computadora eran los que se mostraban en la tarjeta de aplicacin de la tarjeta
programable.

Despus de comprobar con estas pruebas las etapas esenciales tanto a nivel fsico como a
nivel de programacin, se procedi a realizar las pruebas de la cmara trmica. Las pruebas
de la cmara trmica consistieron en un controlador proporcional y un controlador
proporcional-integral.

En la primera prueba se inici el instrumento virtual, se encendi la tarjeta programable y
se coloc el valor de setpoint (45 C) y un valor de Kp (3). El valor de Ti se conserva en
cero. Despus se presion el botn de LISTO para que el controlador empezara a
funcionar. La temperatura se estabiliz despus de 2.5 minutos sin llegar a la temperatura
requerida debido a que es un controlador de tipo proporcional. Finalmente se detuvo el
instrumento virtual y se activaron las compuertas, el soplador y el extractor de aire para
sacar el aire caliente de la cmara trmica.
Diseo y construccin de una tarjeta programable Captulo 6. Experimentacin y anlisis de resultados
de adquisicin, procesamiento de datos y control
82

Figura 6.2 Prueba de controlador proporcional.

Para la segunda prueba, los valores fueron los mismos que la prueba anterior, excepto el
valor de Ti (2). Se enviaron los valores de las variables a la tarjeta programable e inici el
proceso de control. El error en estado estable se elimin al incluir el control integral.


Figura 6.3 Prueba de controlador proporcional-integral.

La forma poligonal de la seal en las figuras 6.2 y 6.3 se debe a que el conversor detecta
cada C y la temperatura no est exactamente uniforme en todo el volumen de la cmara
trmica.

Diseo y construccin de una tarjeta programable Captulo 7. Conclusiones
de adquisicin, procesamiento de datos y control
83

















CAPTULO 7. CONCLUSIONES

Diseo y construccin de una tarjeta programable Captulo 7. Conclusiones
de adquisicin, procesamiento de datos y control
84
7.1. Conclusiones

El resultado final del desarrollo de este trabajo de tesis, es una tarjeta programable que
permite controlar una amplia variedad de procesos de acuerdo al algoritmo de control
programado en el microcontrolador. Esta tarjeta puede operar de forma autnoma o con
conexin a la computadora por el puerto serie RS232.

Pueden conectarse a la tarjeta sensores de tipo digital (botones, sensores pticos, sensores
de contacto) y de tipo analgico (resistencias variables, fotorresistencias, sensores de
temperatura). Los actuadores que pueden ser controlados por la tarjeta programable no
deben requerir ms de 1 Ampere, algunos de ellos son: relevadores, LEDs, pantallas de 7
segmentos, motores de corriente directa de baja potencia y cargas de corriente alterna
utilizando una interfaz externa de potencia. Adems puede utilizar un sensor y un actuador
que trabaje con el estndar industrial de 4-20 mA. Tiene una pantalla de cristal lquido para
mostrar resultados, condiciones de operacin o lo que el usuario quiera visualizar.

Existen sistemas comerciales de adquisicin de datos que pueden realizar la lectura de
varios sensores e interactuar con la computadora, pero estn limitadas nicamente a
transmitir los datos hacia sta, no permiten trabajar de forma independiente a la
computadora y tomar decisiones con respecto a los valores de los sensores conectados.

La tarjeta programable puede interactuar con programas comerciales de instrumentacin
como LabVIEW comparado con otros mdulos de adquisicin de datos que funcionan
solamente con el programa del fabricante.

Por su diseo modular, la tarjeta programable puede funcionar con cualquier
microcontrolador solamente sustituyendo la tarjeta de procesamiento, por lo que no se
requiere construir completamente la tarjeta programable para trabajar con otro
microcontrolador. Esto le da una caracterstica de escalabilidad y la posibilidad de ser
actualizable.

Es importante mencionar que en este trabajo se desarroll una tarjeta programable que
cumple con el objetivo principal de la tesis, que fue el disear y construir una tarjeta
programable y autnoma de adquisicin, procesamiento de datos y control con opcin de
conexin a la computadora o a otra tarjeta similar.

Adems de lograr todas las metas planteadas, incluyendo que el costo de los componentes
fue de $1,099.17 MN (ver anexo E), se obtuvieron los siguientes logros:

Tarjeta de procesamiento intercambiable.
Tarjeta de aplicacin para emulacin, pruebas y prcticas con la tarjeta programable.
Plantas para demostrar la funcionalidad de la tarjeta, incluyendo los programas de
control de cada una:
o Robot mvil seguidor de lnea.
o Modelo a escala de plataforma de seguimiento solar.
o Cmara trmica con temperatura controlada.
Diseo y construccin de una tarjeta programable Captulo 7. Conclusiones
de adquisicin, procesamiento de datos y control
85

En el disco compacto de la tesis esta este documento en formato electrnico y
documentacin adicional sobre la fabricacin, operacin y uso de la tarjeta programable,
adems de todos los programas realizados.

7.2. Trabajos futuros

Este trabajo de tesis abre la posibilidad de nuevos de proyectos de tesis para ampliar las
aplicaciones de la tarjeta, facilitar la utilizacin al usuario y facilitar el desarrollo de otros
trabajos de tesis. Algunos de los posibles trabajos futuros que involucren la tarjeta
programable son:

Realizar prcticas sobre microcontroladores de la materia de Computacin Bsica,
y trabajos finales de la materia de Sensores, Actuadores e Interfases del plan de
estudios de la Coordinacin de Mecatrnica del cenidet.

Desarrollar un programa de simulacin de la tarjeta programable junto con las plantas
de prueba para poder elaborar y validar los modelos de las plantas.

Realizar una interfaz grfica en la computadora que facilite la utilizacin de la tarjeta
programable permitiendo configurar la tarjeta programable, leer las terminales de
entrada y controlar las terminales de salida desde la computadora.

Disear interfases para comunicar la tarjeta programable por medio de puertos de
comunicacin almbricos (USB, Ethernet) e inalmbricos (IrDA, Bluetooth), para
tener una mayor velocidad de transmisin de datos para aplicaciones de visin y
capacidad para conectar la tarjeta con dispositivos porttiles (computadoras porttiles,
PDAs).

En algunos proyectos del cenidet, hay retrasos por la falta de un controlador
econmico que sea de fcil manejo, porque se tiene que disear uno desde cero. Al
trmino de este trabajo, se est realizando una tesis que considera la utilizacin de
esta tarjeta programable para el monitoreo y control de un secador de caa de azcar.

Para poder aplicar a plantas con dinmica de mayor velocidad o un nivel mayor de
procesamiento matemtico, se pueden utilizar controladores de seal digital (como los
dsPICs) los cuales tienen caractersticas de un microcontrolador y de un DSP como la
facilidad de implementacin, y se podran reutilizar todos los programas de la tarjeta
realizados en esta tesis con ajustes mnimos.

Para el avance en el campo de la Mecatrnica, puede utilizarse la tarjeta para la
aplicacin, demostracin o desarrollo de algoritmos de comunicacin de inteligencia
artificial distribuida para realizar tareas entre varios robots.

Diseo y construccin de una tarjeta programable Referencias
de adquisicin, procesamiento de datos y control
86
REFERENCIAS

[1] Jan Axelson. USB Complete. Everything you need to develop custom USB
peripherals. Lakeview Research, Estados Unidos de Amrica, 2001.

[2] Jess Flores V. MICROCONTROLADOR COP8. Manual de Teora y Prctica
Bsica. National Semiconductor Corp., Mxico, 2001.

[3] John Catsoulis. Designing embedded hardware. O Reilly, Estados Unidos de
Amrica, 2002.

[4] Jos Mara ngulo Usategui e Ignacio ngulo Martnez. Microcontroladores PIC:
Diseo prctico de aplicaciones 1 parte. McGraw-Hill, Espaa, 2003.

[5] Motorola. MC68HC11A8 HCMOS Single-chip microcontroller. Motorola Inc,
Estados Unidos de Amrica, 1996.

[6] Motorola. MC68HC12B family data sheet. Motorola Inc, Estados Unidos de
Amrica, 2004.

[7] Texas Instruments. C2000 Controllers. Estados Unidos de Amrica, consultado en
mayo de 2005, http://focus.ti.com/mcu/docs/overview.tsp?templateId=5992&
navigationId=11468&path=templatedata/cm/mcuovw/data/C2000_ovw

[8] Microchip. What is a dsPIC DSC?. Microchip webseminars, Estados Unidos de
Amrica, 2004.

[9] Robert F. Coughlin. Amplificadores operacionales y circuitos integrados lineales.
Editorial Prentice Hall, Mxico, 1999.

[10] Hen Chan. Electronic Circuitry EE303, Notas de clase. Mohawk College, Canada,
2000.

[11] AN10216-01 Manual de I
2
C de Philips.

[12] Brad Suppanz. Calculadora de ancho de pista para placa de circuito impreso.
Consultado en enero de 2005, http://www.geocities.com/suppanz/TraceWidth.htm

[13] Programa de monitoreo del puerto serie. Descargado en abril de 2005,
http://tapec.uv.es/edupic/test/Comunica.exe

[14] Buscador de hojas de datos de componentes electrnicos. Consultado en septiembre
de 2005, http://www.alldatasheet.com

[15] Resistor. Electrnica Prctica. Numero 203, Revistas profesionales, Espaa, 2004.

Diseo y construccin de una tarjeta programable Referencias
de adquisicin, procesamiento de datos y control
87
[16] John Iovine. Pic Microcontroller Project Book. McGraw-Hill, Estados Unidos de
Amrica, 2004.

[17] Application Note. Thyristors & Triacs Ten golden rules for success in your
application.

[18] Reglas del concurso de robots de carreras de microbtica en Mxico. Consultado en
septiembre de 2005, http://www.microbotica.org/reglamenteo/carreras.pdf


Diseo y construccin de una tarjeta programable Anexos
de adquisicin, procesamiento de datos y control
88
Anexo A. Circuitos esquemticos de la tarjeta programable


Figura A.1 Circuito esquemtico de tarjeta principal.
V
C
C
V
C
C
V
C
C
2
V
C
C
V
C
C
1
V
A
N
V
C
C
V
C
C
2
V
C
C
V
C
C
V
C
C
1
V
C
C
2
V
C
C
V
C
C
V
C
C
V
C
C
1
V
A
N
V
C
C
V
C
C
V
C
C
V
C
C
1
V
A
N
V
C
C
V
C
C
H 2 0
H 2
L 1 3
L 2
H 6
H15
L9
H7
L 9
H 1 9
H 1 8
H 1 0
L 7
L 8
H17
L4
H 1 7
H6
L 1 2
H 8
L7
L 3
H13
H 1 2
H2
H 1 6
H9
H 7
H 2 1
H19
L 4
L5
H3
H14
L3
H8
L 1 0
H1
H18
H 1 5
H16
L2
L10
L6
L 1 1
H 3
H5
H 5
H4
L 6
H 9
L 5
L 1
H 4
L8
H 1 3
H21
H20
H 1 4
L12
L11
L13
H12
L1
H 1
H10
H 1 1
H11
L 1 8
L 1 6
L 1 4
L14
L16
L17
L18
L21
L20
L19
L15
L 1 7
L 1 9
L 2 1
L 2 0
L 1 5
C 2
D
2
R
E
S
E
T

P
O
R

P
C
C
5
C
5
D 5
D
3
D
3
B3
B
3
C 1
B 3
C
2
B
7
D
4
D
1
D
0
R
B
0
R
B
0
B
1
D 0
B
0
C 5
B 2
D 7
B
7
D
6
B2
B0
B 7
C
1
C
0
C
1
B1
B
1
B
2
C
5
D
7
B
0
C
5
B
6
B 1
D 6
D
5
C
2
B
7
B 0
D
4
C
0
B
2
C 0
D 2
D
6
D
0
B7
D 3
D 1
R
A
5
B
3
D
1
D
7
D
5
D 4
D
2
D
0
D
1
D
2
D
7
D
6
D
5
D
4
D
3
B
0
B
1
B
2
B
3
B
7
B
6
B
4
B
6
B
5
B
4
B6
B
6
B 6
B
5
B
5
B
4
B5
B4
B 5
B 4
C
4
C
3
A 4
A
4
A
4
A
4
C
2
6
U
2
7
4
H
C
2
4
5
2 3 4 5 6 7 8 9
1
8
1
7
1
6
1
5
1
4
1
3
1
2
1
1
1
1
9
A
1
A
2
A
3
A
4
A
5
A
6
A
7
A
8
B
1
B
2
B
3
B
4
B
5
B
6
B
7
B
8
D
I
R
O
E
C
2
0
+-
U
7
D
1
2
1
3
1
4
+-
U
7
C
1
09
8
+-
U
7
B
56
7
+-
U
7
A
M
C
P
6
0
4
4
32
1
C
4
7
C
4
6
C
4
5
1
0
0
n
F
R
3
9
4
7
0
R
4
0
4
7
0
J
4
7
I2
C 12
U
5
L
2
9
3
27
1
0
1
519
361
1
1
4
8
1
A
2
A
3
A
4
A
1
,2
E
N
3
,4
E
N
1
Y
2
Y
3
Y
4
Y
V C C 2
U
4
L
2
9
3
27
1
0
1
519
361
1
1
4
8
1
A
2
A
3
A
4
A
1
,2
E
N
3
,4
E
N
1
Y
2
Y
3
Y
4
Y
V C C 2
J
2
8
U
S
B
1234
V
B
U
S
D
-
D
+
G
N
D
56
R
4
5
4
K
7
C
8
1
0
0
n
F
C
9
C
1
1
C
1
4
C
1
0
1
0
0
n
F
C
1
3
C
1
2
C
1
7
C
1
9
1
0
0
n
F
C
1
5
C
1
8
C
1
6
C
2
2
2
2
n
F
C
2
5
C
2
11
0
n
F
R
3
2
3
3
0
R
2
8
3
3
0
R
3
1
2
K
2
R
2
9
2
K
2
U
8
2
4
F
C
5
1
2
A
0
A
1
S
D
A
S
C
L
A
2
D
8
R
4
6
4
7
0
J
P
4
C
O
N
E
C
T
O
R

A

T
A
R
J
E
T
A
4
-
2
0

m
A
1
2
3
4
5
6
7
8
9
1
0
1
1
1
2
1
3
1
4

R
2
2
4
7
K
C
R
3
4
1
0
K
R
2
0
8
2
0
R
1
9
1
0
K
R
4
8
4
K
7
R 4 2 4 7 K
R
3
3
4
.
7
S
W
5
S
W

D
I
P
-
3
1
2
3
6
5
4J
3
0
1
2
3
J
2
9
1
2
3
J
3
1
1
2
3
R
3
6
R
3
5
4
7
0
R
3
8
4
7
0
R
3
7
J
3
5
1
2
3

R
2
3
R
3
0
1
K
5
J
2
6 1 2
C
R
4
1
4
7
K

R
2
7

R
2
6
C
4
8
C
4
9
1
0
0
n
F
L
2
0
.5
m
H
L
1
0
.5
m
H
U
3
M
A
X
2
3
2
1
38
1
1
1
0134526
1
2
91
4
7
R
1
I
N
R
2
I
N
T
1
I
N
T
2
I
N
C
+
C
1
-
C
2
+
C
2
-
V
+
V
-
R
1
O
U
T
R
2
O
U
T
T
1
O
U
T
T
2
O
U
T
P
1
594837261
D
7
U
9
L
M
7
8
0
5
C
/
T
O
2
2
0
1
3
2
I
N
O
U
T
G N D
J
P
3
E
N
T
.
P
R
O
G
V
P
P
/
M
C
L
R
#
R
B
3
/
P
G
M
R
B
7
/
P
G
D
R
B
6
/
P
G
C
1
2
3
4
5
6
C
4
1
0
u
F
/
2
5
V
C
2
C
1
1
0
u
F
/
2
5
V
C
3
C
7
1
0
0
u
F
/
2
5
V
C
6
1
0
u
F
/2
5
V
D
2
1
N
4
1
4
8
J
P
1
C
O
N
E
C
T
O
R

A

T
A
R
J
E
T
A
D
E

u
C
1 2
3 4
5 6
7 8
9 1 0
1 1 1 2
1 3 1 4
1 5 1 6
1 7 1 8
1 9 2 0
2 1 2 2
2 3 2 4
2 5 2 6
2 7 2 8
2 9 3 0
3 1 3 2
3 3 3 4
3 5 3 6
3 7 3 8
3 9 4 0
R
2
4
R
2
5
J
3
6
1
2
3
C
2
7
1
0
0
n
F
J
2
7
C
O
N
3
1 2 3
U
1
0
2
4
F
C
5
1
2
A
0
A
1
S
D
A
S
C
L
A
2
U
6
L
M
7
8
1
5
C
/
T
O
2
2
0
1
3
2
IN
O
U
T
G N D
C
4
3
0.1uF
C
4
4
0.1uF
C
5
0
1
0
0
n
F
C
2
3
C
2
4
1
0
0
u
F
/
2
5
V
J
3
2
F
T
E
.
V
C
D

E
X
T
.
12
J
3
4
C O N 5
1 2 3 4 5
J
3
3
C O N 5
1 2 3 4 5
D
3
5
V
1
J
P
5
H
E
A
D
E
R
7
X
2
1
2
3
4
5
6
7
8
9
1
0
1
1
1
2
1
3
1
4
R
1
4
7
0
R
2
R
4
R
3
R
8
R
6
R
9
R
5
R
7
U
1
L
M
7
9
1
5
C
/
T
O
2
2
0
2
3
1
IN
O
U
T
G N D
R
1
0
4
7
0
R
1
1
R
1
3
R
1
2
R
1
4
C
2
9
0.1uF
C
3
0
0.1uF
R
1
7
R
1
8
4
7
0
R
1
6
C
2
8
1
0
0

n
F
R
1
5
J
11
2
3
D
4
1
N
4
1
4
8
C
3
3
1000uF/50v
C
3
2
0.1uF
C
3
1
0.1uF
C
R
4
7
2
2
0
12
3
4
5
6
7
8
9
F
1
1
A
C
3
5
1000uf/50v
C
3
9
100uF/50v
C
3
6
100uF/100v
C
4
0
100uF/50v
C
3
4
100uF/50v C
3
8
100uF/50v
C
3
7
100uF/50v
J
21
2
3
J
51
2
3
J
41
2
3
J
71
2
3
J
31
2
3
J
61
2
3
C
4
2
0.1uF
D
6
C
4
1
100uF/50v
R 2 1 1 0 K
J
1
4
1
2
3
J
91
2
3
J
81
2
3
J
1
1
1
2
3
J
1
2
1
2
3
J
1
5
1
2
3
J
1
3
1
2
3
J
1
0
1
2
3
J
P
2
H
E
A
D
E
R

1
8
X
2
1
2
3
4
5
6
7
8
9
1
0
1
1
1
2
1
3
1
4
1
5
1
6
1
7
1
8
1
9
2
0
2
1
2
2
2
3
2
4
2
5
2
6
2
7
2
8
2
9
3
0
3
1
3
2
3
3
3
4
3
5
3
6
J
2
1
1
2
3
J
1
8
1
2
3
J
2
0
1
2
3
J
1
7
1
2
3
J
1
9
1
2
3
J
1
6
1
2
3
J
2
31 2 3
J
2
21 2 3
J
2
41 2 3
J
2
51 2 3
J
4
3
1
2
3
4
J
3
9
1
2
3
4
J
4
1
1
2
3
4
J
4
0
1
2
3
4
J
4
4
1
2
3
4
J
3
8
1
2
3
4
J
4
2
1
2
3
4
J
4
5
1
2
3
4
S
W
4
1
2
3
4
8
7
6
5
R
4
4
4
7
0
R
4
3
4
7
0
S
W
3
1
2
3
6
5
4
C
4
R
C
4
R
C
3
C
3
R C 4
R
C
6
A
N
3
R
C
6
R C 3
R E 1
A
N
0
R
C
7
R
A
5
A
N
1
R
C
7
R
B
0
R E 0
R E 2
A
N
2
R
A
5
C
3
C
4
C
3
C
4
R
E
1
R
E
2
R
E
0
A
N
1
A
N
3
A
N
2
A
N
0
Diseo y construccin de una tarjeta programable Anexos
de adquisicin, procesamiento de datos y control
89

Figura A.2 Circuito esquemtico de tarjeta de procesamiento.
V
C
C
V
C
C
U
1
P
I
C
1
8
F
4
5
2
1
23456789
1
0
1
1
1
3
1
4
1
9
2
0
2
1
2
2
3
2
2
7
2
8
2
9
3
0
3
3
3
4
3
5
3
6
3
7
3
8
3
9
4
0
2
6
2
5
2
4
2
3
1
8
1
7
1
6
1
5
M
C
L
R
/
V
p
p
R
A
0
/
A
N
0
R
A
1
/
A
N
1
R
A
2
/
A
N
2
/
V
R
E
F
-
R
A
3
/
A
N
3
/
V
R
E
F
+
R
A
4
/
T
O
C
K
I
R
A
5
/
A
N
4
/
S
S
#
R
E
0
/
R
D
#
/
A
N
5
R
E
1
/
W
R
#
/
A
N
6
R
E
2
/
C
S
#
/
A
N
7
V
C
C
O
S
C
1
/
C
L
K
I
N
O
S
C
2
/
C
L
K
O
U
T
R
D
0
/
P
S
P
0
R
D
1
/
P
S
P
1
R
D
2
/
P
S
P
2
R
D
3
/
P
S
P
3
V
C
C
R
D
4
/
P
S
P
4
R
D
5
/
P
S
P
5
R
D
6
/
P
S
P
6
R
D
7
/
P
S
P
7
R
B
0
/
I
N
T
R
B
1
R
B
2
R
B
3
P
G
M
R
B
4
R
B
5
R
B
6
/
P
G
C
R
B
7
/
P
G
D
R
C
7
/
R
X
/
D
T
R
C
6
/
T
X
/
C
K
R
C
5
/
S
D
O
R
C
4
/
S
D
I
/
S
D
A
R
C
3
/
S
C
K
/
S
C
L
R
C
2
/
C
C
P
1
R
C
1
/
T
1
O
S
O
/
C
C
P
2
R
C
0
/
T
1
O
S
I
/
T
1
C
K
I
X
T
L
C
2
1
0
0

n
F
C
1
1
0
0

n
F
C
5
2
2
p
F
C
4
2
2
p
F
C
3
1
0
u
F
J
P
1
H
E
A
D
E
R

2
0
X
2
1 2
3 4
5 6
7 8
9 1 0
1 1 1 2
1 3 1 4
1 5 1 6
1 7 1 8
1 9 2 0
2 1 2 2
2 3 2 4
2 5 2 6
2 7 2 8
2 9 3 0
3 1 3 2
3 3 3 4
3 5 3 6
3 7 3 8
3 9 4 0
S
1
C
6
1
0

u
F

/

1
6
V
R
2
3
1
0
K
D
1
1
N
4
1
4
8
S
W
1
1 2
R
2
1
1
0
0
Diseo y construccin de una tarjeta programable Anexos
de adquisicin, procesamiento de datos y control
90


Figura A.3 Circuito esquemtico de la tarjeta de 4-20 mA.
-
1
5
V
C
C
+
1
5
V
C
C
+
5
V
C
C
+
1
5
V
C
C
-
1
5
V
C
C
-
1
5
V
C
C
+
1
5
V
C
C
+
1
5
V
C
C
+
5
V
C
C
U
3
X
T
R
1
1
0
1
6
8 5 3
1
4
1
2
6 2
1
5
1
1
7
9
4 1
1
3
1
0
+

V
c
c
Z
e
r
o

A
d
j
3
V
i
n
2
(
5
V
)
V
r
e
f

I
n
G
a
t
e

D
r
i
v
e
V
r
e
f
S
e
n
s
e
Z
e
r
o

A
d
j
1
C
o
m
m
V
r
e
f

F
o
r
c
e
V
r
e
f

A
d
j
Z
e
r
o

A
d
j
2
1
6
m
A

S
p
a
n
V
i
n
1
(
1
0
V
)
S
o
u
r
c
e

R
e
s
S
o
u
r
c
e
S
e
n
s
e
4
m
A

S
p
a
n
U
1
D
A
C
0
8
0
8
1
2
1
1
1
098765
1
4
1
5
421
6
1 33
A
8
A
7
A
6
A
5
A
4
A
3
A
2
A
1
V
R
+
V
R
-
I
O
U
T
I
O
U
T
C
O
M
P
V +V -
U
2
R
C
V
4
2
0
1
6
8 5 3
1
4
1
2
6 2
1
5
1
1
7
9
4 1
1
3
1
0
V

+
R
e
f

T
r
i
m
R
e
f

C
o
m
+

I
n
R
c
v

O
u
t
R
e
f

I
n
N
C
1
C
T
R
c
v

f
B
R
e
f

O
u
t
R
e
f

N
o
i
s
e

R
e
d
N
C
2
V

-
-

I
n
R
c
v

C
o
m
R
e
f

f
B
J
P
1
H
E
A
D
E
R

7
X
2
1
2
3
4
5
6
7
8
9
1
0
1
1
1
2
1
3
1
4
+ -
U
4
L
F
3
5
1
3 2
6
7
1
4
5
R
1
3
K
3
R
2
3
K
3
R
3
1
K
R
4
1
0
K
C
1
3
3
p
F
J
1
E
N
T
R
A
D
A

4
-
2
0

m
A
12
J
2
S
A
L
I
D
A

4
-
2
0

m
A
12
Q
1
M
O
S
F
E
T

M
T
P
2
9
5
5
1
2 3
+
C
2
1

u
F
Diseo y construccin de una tarjeta programable Anexos
de adquisicin, procesamiento de datos y control
91


Figura A.4 Circuito esquemtico de tarjeta de aplicacin.
V
C
C
V
A
N
V
C
C
1
V
A
N
V
C
C
1
V
C
C
1
V
C
C
V
C
C
V
C
C
V
C
C
V
C
C
A
2
S
3
S
0
S
1
D
1
A
4
S
3
S
5
S
6
S
1
S
4
S
3
S
0
D
6
S
1
S
4
B
5
D
3
D
5
D
7
D
4
D
5
S
3
S
5
C
3
D
3
S
2
S
3
S
5
S
2
S
7
D
7
S
1
S
0
S
5
C
5
A
5
S
7
S
6
S
5
S
0
S
2
S
6
R
B
0
D
2
S
7
B
4
D
6
S
4
S
2
S
4
S
0
D
1
D
2
D
4
S
4
C
4
S
6
S
2
S
1
S
7
B
5
B
4
S
6
D
0
D
0
B
3
B
1
B
1
B
3
B
2
B
7
B
2
B
0
B
6
B
0
B
6
B
7
R
5
L
D
R
R
3
1
0
K
U
1
L
M
3
5
/
T
O
1
2
V
S
+
V
O
U
T
R
1
1
0
K
1
3
2
R
2
1
0
K
1
3
2
J
31
2
3
C
4
4
7
u
F
/
1
6
v
J
21
2
3
J
11
2
3
J
41
2
3
S W 2 0
R
1
3
1
k
R
1
5
1
k
R
1
2
3
K
9
J
P
2
1 2 45 6 79
1
0
e d
3
cd
p
b a
8
fg
S W 1 8
J
P
3
1 2 45 6 79
1
0
e d
3
cd
p
b a
8
fg
J
P
4
1 2 45 6 79
1
0
e d
3
cd
p
b a
8
fg
J
P
5
1 2 45 6 79
1
0
e d
3
cd
p
b a
8
fg
U
2
7
4
L
S
4
8
7126 453
1
3
1
2
1
1
1
0
91
5
1
4
ABCD B
I
R
B
I
L
T
O
A
O
B
O
C
O
D
O
E
O
F
O
G
U
3
P
C
F
8
5
9
1
1
5
1
4
1
3
1
2
1
1
1
0 9 3 2567 4 1
A
O
U
T
V
R
E
F
A
G
N
D
E
X
T
O
S
C
S
C
L
S
D
A
A
I
N
2
A
I
N
1
A
0
A
1
A
2
A
I
N
3
A
I
N
0
S W 4
S W 3
S W 7
S W 1 0
S W 6
S W 8
S W 5
S W 9
S W 1 1
S W 1 3
S W 1 6
S W 1 5
S W 1 4
S W 1 2
S W 1 7
C
R
1
1
4
7
0
1
2 3 4 5 6 7 8 9
Q
4
2
N
3
9
0
4
3
2
1
Q
2
2
N
3
9
0
4
3
2
1
Q
3
2
N
3
9
0
4
3
2
1
Q
5
2
N
3
9
0
4
3
2
1
R
8
1
0
K
R
6
2
2
0
R
7
3
K
9
Q
1
2
N
3
9
0
4
3
2
1
J
5
12
D
1
R
9
1
0
K
1 3
2
C
1
1
0
0
n
C
5
1
0
0
n
S W 1 9
D
2
7
L
E
D
R
1
4
3
K
9
J
P
6
1
2
3
4
5
6
7
8
9
1
0
1
1
1
2
1
3
1
4
1
5
1
6
1
7
1
8
1
9
2
0
2
1
2
2
2
3
2
4
2
5
2
6
2
7
2
8
2
9
3
0
3
1
3
2
3
3
3
4
3
5
3
6
J
P
1
1 2 45 6 791
0
e d
3
c
d
p b a
8
fg
D 1 1
D 1 3
D 1 2
D 1 0
D 1 7
D 1 5
D 1 6
D 1 4
D 1 8
D 2 1
D 1 9
D 2 0
D
2
6
D 2 4
D 2 2
D 2 3
D 2 5
D
4
D
8
D
6
D
7
D
5
D
2
D
3
D
9
J
6
12
J
7
C
O
N
2
12
C
R
1
0
4
7
0
1
23456789
R
4
4
7
0
B
4
B
5
A
5
B
7
B
4
B
1
C
3
R B 0
A
N
3
B
5
B
2
C
4
B
3
A
N
3
A 4
B
0
B
6
C
5
B
7
B
6
Diseo y construccin de una tarjeta programable Anexos
de adquisicin, procesamiento de datos y control
92
Anexo B. Diseos de placas de circuito impreso














































Figura B.1 Diseo de la cara superior de la tarjeta principal.
Diseo y construccin de una tarjeta programable Anexos
de adquisicin, procesamiento de datos y control
93















































Figura B.2 Diseo de la cara inferior de la tarjeta principal.
Diseo y construccin de una tarjeta programable Anexos
de adquisicin, procesamiento de datos y control
94

A B C D
1 1
2 2
3 3
4 4
5 5
A B C D
Figura B.3 Capa de leyenda de componentes de la tarjeta principal
Diseo y construccin de una tarjeta programable Anexos
de adquisicin, procesamiento de datos y control
95

Tabla B.1 Ubicacin de componentes en la tarjeta principal.

Compo-
nente
Ubica-
cin
C1 5B
C2 4B
C3 4B
C4 4B
C6 5A
C7 5B
C8 4C
C9 4C
C10 5C
C11 5D
C12 5C
C13 5D
C14 5D
C15 5C
C16 5D
C17 5D
C18 5D
C19 4D
C20 5D
C21 3D
C22 3C
C23 4C
C24 5C
C25 3D
C26 3D
C27 4D
C28 3B
C29 4A
C30 4B
C31 4C
C32 4C
C33 4A
C34 4B
C35 4A
Compo-
nente
Ubica-
cin
C36 4C
C37 4C
C38 4B
C39 4C
C40 4C
C41 4C
C42 4C
C43 4A
C44 4B
C45 5D
C46 4C
C47 4D
C48 2D
C49 2D
C50 4D
D2 5B
D3 5A
D4 4C
D6 2D
D7 4C
D8 4B
F1 4A
J1 3C
J2 4C
J3 3C
J4 3C
J5 3C
J6 3C
J7 3C
J8 3C
J9 3C
J10 3C
J11 2C
J12 2C
Compo-
nente
Ubica-
cin
J13 3C
J14 2C
J15 2C
J16 2C
J17 2C
J18 2C
J19 2C
J20 2C
J21 2C
J22 2D
J23 3D
J24 3D
J25 3D
J26 3B
J27 4A
J28 2D
J29 2C
J30 2D
J31 2D
J32 4A
J33 5D
J34 5D
J35 5C
J36 4C
J38 5D
J39 5C
J40 5C
J41 5C
J42 5B
J43 5B
J44 5A
J45 5A
J47 4D
JP1 3A
Compo-
nente
Ubica-
cin
JP2 1A
JP3 2D
JP4 1C
JP5 1D
P1 5A
R1 3A
R2 3A
R3 3A
R4 3A
R5 2A
R6 2A
R7 2B
R8 2B
R9 2B
R10 2B
R11 2A
R12 2A
R13 2B
R14 2B
R15 2B
R16 2A
R17 2B
R18 2A
R19 1D
R20 1D
R21 2B
R22 2C
R23 3C
R24 2C
R25 2C
R26 3C
R27 2C
R28 5B
R29 2D
Compo-
nente
Ubica-
cin
R30 2D
R31 3C
R32 5B
R33 5A
R34 5C
R35 3C
R36 3D
R37 3D
R38 3D
R39 3C
R40 3C
R41 3D
R42 3B
R43 4C
R44 4B
R45 4D
R46 4B
R47 5B
R48 4D
SW3 4D
SW4 5C
SW5 4D
U1 4B
U2 3B
U3 5B
U4 5D
U5 4D
U6 4B
U7 3D
U8 4D
U9 4B
U10 4D



Diseo y construccin de una tarjeta programable Anexos
de adquisicin, procesamiento de datos y control
96
































Figura B.4 Diseo de la cara superior de la tarjeta de procesamiento.

Diseo y construccin de una tarjeta programable Anexos
de adquisicin, procesamiento de datos y control
97

































Figura B.5 Diseo de la cara inferior de la tarjeta de procesamiento.

Diseo y construccin de una tarjeta programable Anexos
de adquisicin, procesamiento de datos y control
98

































Figura B.6 Capa de leyenda de componentes de la tarjeta de procesamiento.


Diseo y construccin de una tarjeta programable Anexos
de adquisicin, procesamiento de datos y control
99

































Figura B.7 Diseo de la cara inferior de la tarjeta de E/S de 4-20 mA.


Diseo y construccin de una tarjeta programable Anexos
de adquisicin, procesamiento de datos y control
100

































Figura B.8 Capa de leyenda de componentes de la tarjeta de E/S de 4-20 mA.


Diseo y construccin de una tarjeta programable Anexos
de adquisicin, procesamiento de datos y control
101














































Figura B.9 Diseo de la cara superior de la tarjeta de aplicacin.
Diseo y construccin de una tarjeta programable Anexos
de adquisicin, procesamiento de datos y control
102














































Figura B.10 Diseo de la cara inferior de la tarjeta de aplicacin.
Diseo y construccin de una tarjeta programable Anexos
de adquisicin, procesamiento de datos y control
103












































Figura B.11 Capa de leyenda de componentes de la tarjeta de aplicacin.
Diseo y construccin de una tarjeta programable Anexos
de adquisicin, procesamiento de datos y control
104
Anexo C. Programas de prueba de la tarjeta programable

Los programas de este anexo corresponden a los programas realizados para las pruebas
funcionales de la tarjeta programable. En la tabla C.1 se enlistan los programas as como la
prueba que realizan.

Tabla C.1 Programas de las pruebas de la tarjeta programable.
N Nombre Mdulo de entrada Mdulo de salida Programa
Puerto B (E/S digitales)
Puerto D (E/S
digitales)
1.A
1 E/S digitales
Puerto D (E/S digitales)
Puerto B (E/S
digitales)
1.B
2
Entradas
analgicas
Entrada analgica RA0
Puerto B (E/S
digitales)
2
3
Potencia para
motores
* Potencia para motores
3
4
Pantalla de
cristal lquido
(LCD)
* LCD
4
5
Comunicacin
RS232
Puerto B (E/S digitales) RS232
5
6
Comunicacin
I
2
C
* Memoria EEPROM
6.A
6.B
E/S de 4-20 mA
Puerto B (E/S
digitales)
7.A
7
E/S de 4 - 20
mA
* E/S de 4-20 mA 7.B
* En estas pruebas los datos iniciales o de control son generados en el mdulo de procesamiento.

La descripcin de operacin de cada programa se detalla en la seccin 4.1.

Programa 1.A Entradas/salidas digitales
#include <p18f452.h>
#pragma config OSC = HS
#pragma config BOR = OFF
#pragma config WDT = OFF
#pragma config LVP = OFF

void main (void)
{
PORTB = 0;LATB = 0;
TRISB = 0xFF; // PORTB entrada
PORTD = 0;LATD = 0;
INTCON2 = 0x80;
TRISD = 0x00; // PORTD salida

while (1)
{
Diseo y construccin de una tarjeta programable Anexos
de adquisicin, procesamiento de datos y control
105
PORTD = ~PORTB; // PORTD = complemento a 1 de PORTB
}
}

Programa 1.B Entradas/salidas digitales
#include <p18f452.h>
#pragma config OSC = HS
#pragma config BOR = OFF
#pragma config WDT = OFF
#pragma config LVP = OFF

void main (void)
{
PORTB = 0;LATB = 0;
TRISB = 0x00; // PORTB salida
PORTD = 0;LATD = 0;
INTCON2 = 0x80;
TRISD = 0xFF; // PORTD entrada
while (1)
{
PORTB = ~PORTD; // PORTB = complemento a 1 de PORTD
}
}

Diseo y construccin de una tarjeta programable Anexos
de adquisicin, procesamiento de datos y control
106
Programa 2 Entradas analgicas
#include <p18f452.h>
#include <delays.h>
#include <adc.h>

void main (void)
{
INTCON = 0; // Deshabilita las interrupciones
PORTA = 0;LATA = 0;
TRISA = 0xEF; // RA4 SALIDA
PORTB = 0;LATB = 0;
INTCON2 = 0x80;
TRISB = 0; // PORTB SALIDA
OpenADC(ADC_FOSC_RC & ADC_LEFT_JUST &
ADC_5ANA_0REF,ADC_CH0 & ADC_INT_OFF);
while (1) // Ciclo infinito
{
Delay10TCYx(1); // Retardo de 3.2 us para 12 MHz
ConvertADC(); // Inicia la conversin
while (BusyADC()); // Espera a que la conversin finalice
PIR1bits.ADIF = 0; //Limpia la bandera de interrupcin del conversor AD
PORTB = ADRESH; // Copia los 8 bits mas significativos al PORTB
}
}

Programa 3 Potencia para motores
#include <p18f452.h>

void main (void)
{
PORTA = 0; LATA = 0; TRISA = 0x00; // PORTA salida
PORTB = 0; LATB = 0; TRISB = 0x00; // PORTB salida
PORTC = 0; LATC = 0; TRISC = 0x00; // PORTC salida
PORTD = 0; LATD = 0; TRISD = 0xFF; // PORTD entrada
while (1)
{
PORTCbits.RC2 = PORTDbits.RD0;
PORTBbits.RB6 = PORTDbits.RD1;
PORTBbits.RB7 = PORTDbits.RD2;
PORTAbits.RA4 = PORTDbits.RD3;
PORTCbits.RC1 = PORTDbits.RD4;
PORTCbits.RC0 = PORTDbits.RD5;
PORTBbits.RB0 = PORTDbits.RD6;
PORTCbits.RC5 = PORTDbits.RD7;
}
}

Diseo y construccin de una tarjeta programable Anexos
de adquisicin, procesamiento de datos y control
107
Programa 4 Pantalla de cristal lquido (LCD)
#include <p18f452.h>
#include <delays.h>
#define RS PORTEbits.RE0
#define RW PORTEbits.RE1
#define EN PORTEbits.RE2
unsigned char mensaje[]={'c','e','n','i','d','e','t'},mensaje2[]={'m','e','c','a','t','r','o','n','i','c','a'};
unsigned int i=0;
/*
Conexiones del LCD

PORTB - DATOS
RE0 - RS
RE1 - RW
RE2 - ENA
- DelayFor18TCY() provides a 18 Tcy delay
- DelayPORXLCD() provides at least 15ms delay
- DelayXLCD() provides at least 5ms delay
*/

void main(void)
{
ADCON1=0x02;
TRISB=0x00;
TRISE=0x00;
// Configura el LCD externo
RW=0;

RS=0; EN=1; //Transmisin 8 bits, una lnea, 5x8 puntos
PORTB=0x38;
Delay1KTCYx(3);
EN=0;
Delay1KTCYx(3);

RS=0; EN=1; //Mensaje fijo
PORTB=0x06;
Delay1KTCYx(3);
EN=0;
Delay1KTCYx(3);

RS=0; EN=1; //Enciende display
PORTB=0x0C;
Delay1KTCYx(3);
EN=0;
Delay1KTCYx(3);

RS=1;
for(i=0;i<7;i++)
Diseo y construccin de una tarjeta programable Anexos
de adquisicin, procesamiento de datos y control
108
{
EN=1;
PORTB=mensaje[i];
Delay1KTCYx(3);
EN=0;
Delay1KTCYx(3);
}

RS=0;Delay10TCYx(1);EN=1; //Cambia de rengln
PORTB=0xC0;
Delay10TCYx(3);
EN=0;
Delay10TCYx(3);

RS=1;
for(i=0;i<11;i++)
{
EN=1;
PORTB=mensaje2[i];
Delay1KTCYx(3);
EN=0;
Delay1KTCYx(3);
}
while(1);

}

Programa 5 Comunicacin RS232
#include <p18f452.h>
#include <usart.h>
#include <delays.h>
int A1=0;
void main(void)
{
// Configuracion USART
OpenUSART( USART_TX_INT_OFF &
USART_RX_INT_OFF &
USART_ASYNCH_MODE &
USART_EIGHT_BIT &
USART_CONT_RX &
USART_BRGH_HIGH,
38 ); //BGR = 19200
TRISD=0xFF;LATD=0x00;
while(1)
{
Delay10KTCYx(0);
A1=PORTD+0x30;
WriteUSART(A1); //Enva el valor de PORTD
Diseo y construccin de una tarjeta programable Anexos
de adquisicin, procesamiento de datos y control
109
if(TXSTAbits.TRMT == 1)
break;
}
CloseUSART();
}

Programa 6.A Comunicacin I
2
C (Escritura)
#include <p18f452.h>
#include <i2c.h>
#include <delays.h>
#pragma config OSC = HS
#pragma config BOR = OFF
#pragma config WDT = OFF
#pragma config LVP = OFF

void main(void)
{
OpenI2C(MASTER, SLEW_OFF);// Inicializa el modulo I2C
SSPADD = 29; // 400kHz Baud clock(6.5) @12MHz
// 100kHz Baud clock(29) @12MHz
SSPCON2=0x00;
TRISC=0x18;
PORTD=0;LATD=0;TRISD=0;
StartI2C(); //Escribe en la memoria EEPROM
IdleI2C();
WriteI2C(0xA0);
IdleI2C();
WriteI2C(0x00);
IdleI2C();
WriteI2C(0x00);
IdleI2C();
WriteI2C(0xA5);
IdleI2C();
WriteI2C(0x00);
IdleI2C();
StopI2C();
IdleI2C();
}

Programa 6.B Comunicacin I
2
C (Lectura)
#include <p18f452.h>
#include <i2c.h>
#include <delays.h>
#pragma config OSC = HS
#pragma config BOR = OFF
#pragma config WDT = OFF
#pragma config LVP = OFF

Diseo y construccin de una tarjeta programable Anexos
de adquisicin, procesamiento de datos y control
110
void main(void)
{
unsigned char buffer[4];
OpenI2C(MASTER, SLEW_OFF);// Inicializa el modulo I2C
SSPADD = 29; // 400kHz Baud clock(6.5) @12MHz
// 100kHz Baud clock(29) @12MHz
SSPCON2=0x00;
TRISC=0x18;
PORTD=0;LATD=0;TRISD=0;

SSPCON2bits.SEN = 1; // Enva bit de inicio
while(SSPCON2bits.SEN); // y lo espera para limpiar
SSPCON2bits.ACKDT = 0; // el bit de ACK

PIR1bits.SSPIF = 0;
SSPBUF = 0xA0; // 10100000 - Comando
de escritura
while(!PIR1bits.SSPIF); // espera la interrupcin
PIR1bits.SSPIF = 0; // entonces limpia la bandera.

SSPBUF = 0x00; // Se enva el byte alto
while(!PIR1bits.SSPIF); // de la direccin 0x0000
PIR1bits.SSPIF = 0; //

SSPBUF = 0x00; // Se enva el byte bajo
while(!PIR1bits.SSPIF); // de la direccin 0x0000
PIR1bits.SSPIF = 0; //

SSPCON2bits.RSEN = 1; // enva el bit de inicio repetido
while(SSPCON2bits.RSEN); // y espera por el para limpiar

PIR1bits.SSPIF = 0;
SSPBUF = 0xA1; // 10100001 - comando
de lectura
while(!PIR1bits.SSPIF); // espera por la interrupcin
PIR1bits.SSPIF = 0; // entonces limpia la bandera.

SSPCON2bits.RCEN = 1; // empieza a recibir
while(!SSPSTATbits.BF); // espera por el dato
buffer[0] = SSPBUF; // y lo obtiene
SSPCON2bits.ACKEN = 1; // empieza la secuencia de ACK
while(SSPCON2bits.ACKEN); // espera a que la secuencia
ACK termine

SSPCON2bits.RCEN = 1; // Empieza a recibir
while(!SSPSTATbits.BF); // espera por el dato
buffer[1] = SSPBUF; // y lo obtiene
SSPCON2bits.ACKEN = 1; // empieza la secuencia de ACK
Diseo y construccin de una tarjeta programable Anexos
de adquisicin, procesamiento de datos y control
111
while(SSPCON2bits.ACKEN); // espera a que la secuencia
ACK termine

SSPCON2bits.RCEN = 1; // Empieza a recibir
while(!SSPSTATbits.BF); // espera por el dato
buffer[2] = SSPBUF; // y lo obtiene
SSPCON2bits.ACKEN = 1; // empieza la secuencia de ACK
while(SSPCON2bits.ACKEN); // espera a que la secuencia
ACK termine

SSPCON2bits.RCEN = 1; // Empieza a recibir
while(!SSPSTATbits.BF); // espera por el dato
buffer[3] = SSPBUF; // y lo obtiene
SSPCON2bits.ACKDT = 1; // sin reconocimiento para el
ultimo byte
SSPCON2bits.ACKEN = 1; // inicia secuencia ACK
while(SSPCON2bits.ACKEN); // espera a que la secuencia
ACK termine

SSPCON2bits.PEN = 1; // enva bit de paro
PORTD=buffer[0];
while(1);
}


Programa 7.A Entrada de 4-20 mA
// Leer la entrada de 4-20 mA y mostrarla en puerto B

#include <p18f452.h>
#include <timers.h>
#pragma config OSC = HS
#pragma config BOR = OFF
#pragma config WDT = OFF
#pragma config LVP = OFF

void main (void)
{
PORTC=0;LATC=0;TRISC=0x00; // PORTC salida
PORTD=0;LATD=0;TRISD=0x00; // PORTD salida
PORTB=0;LATB=0;TRISB=0x00; // PORTB salida
INTCON=0; // Deshabilita las interrupciones
PORTA=0;LATA=0;TRISA=0xEF; // RA4 SALIDA
INTCON2=0x80;
OpenADC(ADC_FOSC_RC & ADC_LEFT_JUST &
ADC_5ANA_0REF,ADC_CH4 & ADC_INT_OFF);
while(1)
{
ConvertADC(); // Inicia la conversin
Diseo y construccin de una tarjeta programable Anexos
de adquisicin, procesamiento de datos y control
112
while (BusyADC()); // Espera a que la conversin finalice
PIR1bits.ADIF = 0; // Limpia la bandera de interrupcin del ADC
PORTB = ADRESH; // Copia los 8 bits mas significativos al puerto B
}
}

Programa 7.B Salida de 4-20 mA
// Prueba 01 - Salida DAC 0 y 5 Volts cada 10 seg

#include <p18f452.h>
#include <timers.h>
#include <delays.h>
#pragma config OSC = HS
#pragma config BOR = OFF
#pragma config WDT = OFF
#pragma config LVP = OFF

void off (void)
{
PORTD=0x00;
}

void on (void)
{
PORTD=0xFF;
}

void main (void)
{
PORTD = 0;LATD = 0;
INTCON2 = 0x80;
TRISD = 0x00; // PORTD salida
while (1)
{
on();
Delay10KTCYx(0);Delay10KTCYx(0);Delay10KTCYx(0);
Delay10KTCYx(0);Delay10KTCYx(0);Delay10KTCYx(0);
Delay10KTCYx(0);Delay10KTCYx(0);Delay10KTCYx(0);
Delay10KTCYx(0);Delay10KTCYx(0);Delay10KTCYx(0);
off();
Delay10KTCYx(0);Delay10KTCYx(0);Delay10KTCYx(0);
Delay10KTCYx(0);Delay10KTCYx(0);Delay10KTCYx(0);
Delay10KTCYx(0);Delay10KTCYx(0);Delay10KTCYx(0);
Delay10KTCYx(0);Delay10KTCYx(0);Delay10KTCYx(0);
}
}

Diseo y construccin de una tarjeta programable Anexos
de adquisicin, procesamiento de datos y control
113
Anexo D. Documentacin de los programas de control de las plantas

Anexo D.1. Diagrama de flujo del programa de control del robot mvil seguidor de
lnea


Diseo y construccin de una tarjeta programable Anexos
de adquisicin, procesamiento de datos y control
114
Anexo D.2. Documentacin del programa de control del robot mvil seguidor de
lnea

// Programa de control del seguidor de lnea
// Conexin de los sensores a la tarjeta programable
// RD1 - Sensor izquierdo
// RD0 - Sensor derecho
// Conexin de los motores a la tarjeta programable
// RC2 - Avance Motor izquierdo
// RB6 - Retroceso Motor izquierdo
// RB7 - Avance Motor derecho
// RA4 - Retroceso Motor derecho
//
#include <p18f452.h> // Se incluye librera del microcontrolador PIC18F452
#pragma config OSC = HS // Se selecciona modo de oscilador de alta velocidad.
#pragma config BOR = OFF // Deshabilita el reinicio por bajo voltaje
#pragma config WDT = OFF // Deshabilita el perro guardin
#pragma config LVP = OFF // Deshabilita la programacin en bajo voltaje

void girder(void) // Subrutina para que el robot mvil gire hacia la derecha
{
PORTCbits.RC2=1; // El motor izquierdo gira
PORTBbits.RB6=0; // hacia delante y
PORTBbits.RB7=0; // el motor derecho gira
PORTAbits.RA4=1; // hacia atrs
}

void girizq(void) // Subrutina para que el robot mvil gire hacia la izquierda
{
PORTCbits.RC2=0; // El motor izquierdo gira
PORTBbits.RB6=1; // hacia atrs y
PORTBbits.RB7=1; // el motor derecho gira
PORTAbits.RA4=0; // hacia delante
}
void adelante(void) // Subrutina para que el robot mvil avance
{
PORTCbits.RC2=1; //
PORTBbits.RB6=0; // Ambos motores
PORTBbits.RB7=1; // giran hacia delante
PORTAbits.RA4=0; //
}

void apagado(void) // Subrutina de apagado de motores
{
PORTCbits.RC2=0; // Desactiva los
PORTBbits.RB6=0; // motores
PORTBbits.RB7=0; // izquierdo y
PORTAbits.RA4=0; // derecho
}

void main (void) // Inicio de programa principal
{
PORTA = 0;LATA = 0; // Asigna un valor inicial de 0 al puerto A
ADCON1 = 0x02; // El puerto A acta con 5 entradas analgicas y 3 E/S digitales
TRISA = 0x00; // Configura puerto A como salidas digitales
PORTB = 0;LATB = 0; // Asigna un valor inicial de 0 al puerto B
INTCON2 = 0x80; // Deshabilita las interrupciones
Diseo y construccin de una tarjeta programable Anexos
de adquisicin, procesamiento de datos y control
115
TRISB = 0x00; // Configura puerto B como salidas digitales
PORTC = 0;LATC = 0; // Asigna un valor inicial de 0 al puerto C
TRISC = 0; // Configura puerto C como salidas digitales
PORTD = 0; LATD = 0; // Asigna un valor inicial de 0 al puerto D
TRISD = 0xFF; // Configura el puerto D como entradas digitales
PORTE = 0; LATE = 0; // Asigna un valor inicial de 0 al puerto E
TRISE = 0x00; // Configura el puerto E como salidas digitales
while (1) // Empieza un ciclo infinito donde esta el control del robot mvil
{
switch(PORTD) // Se lee el Puerto D donde estn conectados los sensores
{ // y segn el valor de ste, se toma una decisin
case 0x00: // Los sensores estn sobre la lnea negra, por lo que
adelante(); // la accin a tomar es que el robot avance
break; // Sale de la sentencia SWITCH
case 0x01: // El sensor derecho detecta una rea blanca,
girizq(); // entonces el carro gira hacia la izquierda
break; // Sale de la sentencia SWITCH
case 0x02: // El sensor izquierdo detecta una rea blanca,
girder(); // entonces el carro gira hacia la derecha
break; // Sale de la sentencia SWITCH
case 0x03: // Ambos sensores detectan una rea blanca,
apagado(); // entonces el robot mvil se detiene
break; // Sale de la sentencia SWITCH
}
}
} // Fin del programa

Diseo y construccin de una tarjeta programable Anexos
de adquisicin, procesamiento de datos y control
116
izq
D1=
home3
refsube
flgd,2=0
D3=0
B5=1
iz
D1=
home3
izq2
D1=1
home2
Horz=1
Sube
B5=1
izq2
frenovert
Portb,4=0
flgB,4=1
flgB,4=0
Portb,5=0
flgB,5=1
flgB,5=0
Portb,6=0
flgB,6=1
flgB,6=0
Portb,7=0
flgB,7=1
flgB,7=0
home2
home3
Intcon=b10001000
home
Flgb=0
flga=0
Flgc=0
Portd=0
arranqe
1
Porta,5=1
arranqe
Flgd=0
Inicio
Portd=0
tmr0=0
tmr0=0
tmr0=0
busqueda
obj=0
siguelo
trampI=0
subelo
trampD=0
bajalo
busqueda
Flg lim=0
home
Intcon
subelo
D2=
busqueda
flg subelo=0
busqueda
Flg subelo=1
Flg bajalo=0
Freno horz
Portd=0
Intcon=b10001000
bajalo
D3=1
busqueda
flg bajalo=0
busqueda
Flg subelo=0
Flg bajalo=1
Freno horz
Portd=0
b10001000
Anexo D.3. Diagrama de flujo del programa de control del modelo a escala de la
plataforma de seguimiento solar
3 seg
Portd=0
busqueda
Intcon=b10101000
D0=1
Flgd,1=1
Ciclos busq=8
Pasos=4
opcion=b10100001
Tmr0=200
1
reposo
Intcon=0
Portd=0
sleep
fin
baja
B7=0
D3=1
refsube
B5=1
izq
flgd,2=1
D1=0
home3
D2=0
flg ciclsbusq=0
Diseo y construccin de una tarjeta programable Anexos
de adquisicin, procesamiento de datos y control
117
Flg_obj_perd=1
siguelo
Obj=1
chkcenti
ssiguelo
ssiguelo
Flg_obj_perd=0
ssiguelo
Flg_obj_perd=0
Frenovert/horz
Flga=0
Flgc=0
Flgsiguelo=1
Flgc,2=1
Intcon=b10001000
Frenovert/horz
CHK13DI
flg limite=0
home
Cent1=0
Chkcent4/trpD
chkcenti
Flg_obj_perd=1
flg2DB=0
2
B4=0
chk24DI
B5=0
Flgsub=0
cent3=0
Chkcent2/trpI
trampI=0
Chkcent3/4
Cent4=0
Chkcent1/trpI
ssiguelo
flg2DS=0
Flg2IS=0
trpD=0
Chkcent1/2
Cent2=0
Chkcent3/trpD
Flg2IB=0
2
Flgbaj=0
Intcon=b
chk24DI
Cent2=0
Chkcent3/trpD
Cent4=0
chktrpI/4
trpD=0
baj
trpI=0
sub
ssiguelo
Flg2IB=0
Flg2IS=0
chk13DI
Cent1=0
Chkcent4/trpD
Cent3=0
chktrpI/3
trpD=0
baja
trpI=0
sube
ssiguelo
Flg2DB=0
Flg2DS=0
Chkcent3/4
Cent3=0
cent4=0
dersub
izqsub
FlgDS=0
FlgIS=0
sub
Flgsub=0
ssiguelo
Portd=0
Flga=0
Flgc=0
Flgsiguelo=1
Flgsub=1
D2=1
ssiguelo
Intcon=b10001000


chktrpI/4
trpI=0
izqsub
2izqsub
chktrpI/3
trpI=0
dersub
2dersub
Diseo y construccin de una tarjeta programable Anexos
de adquisicin, procesamiento de datos y control
118
Chkcent1/2
Cent1=0
cent2=0
Derbaj
izqbaj
FlgDB=0
FlgIB=0
baj
Flgbaj=0
ssiguelo
Portd=0
Flga=0
Flgc=0
Flgsiguelo=1
Flgbaj=1
D3=1
ssiguelo
Intcon=b10001000
Chkcent4/trpD
Cent4=0
trpD=0
2derbaj
3derbaj
Derbaj
Flg3DB=0
FlgDB=0
deron=100
der off=10
Flg 2DB=0
ssiguelo
ssiguelo
Opcin=b10000111
Intcon=b10101000
Flg 2DB=1
D0=1
D3=1
Flg velizq=0
Tmr0=100
portd=0
Flga=0
B4=0
sigue2DB
Flgc=0
Flgc,2=1
Chkcent3/trpD
Cent3=0
trpD=0
2izqbaj
3izqbaj
izqbaj
Flg3IB=0
FlgIB=0
izqon=100
Izq off=10
Flg 2IB=0
ssiguelo
ssiguelo
Opcin=b10000111
Intcon=b10101000
Flg 2IB=1
D1=1
D3=1
Flg velizq=1
Tmr0=100
portd=0
Flga=0
B5=0
sigue2IB
Flgc=0
Flgc,2=1
Chkcent2/trpI
Cent2=0
trpI=0
2dersub
3izqbaj
dersub
Flg3IB=0
FlgDS=0
deron=100
deroff=10
Flg 2DS=0
ssiguelo
ssiguelo
Opcin=b10000111
Intcon=b10101000
Flg 2DS=1
D0=1
D2=1
Flg velizq=0
Tmr0=100
portd=0
Flga=0
B4=0
sigue2DS
Flgc=0
2dersub
Flgc,2=1
Chkcent1/trpI
Cent1=0
trpI=0
2izqsub
3derbaj
izqsub
Flg3DB=0
FlgIS=0
izqon=100
Izq off=10
Flg 2IS=0
ssiguelo
ssiguelo
Opcin=b10000111
Intcon=b10101000
Flg 2IS=1
D1=1
D2=1
Flg velizq=1
Tmr0=100
portd=0
Flga=0
B5=0
sigue2IS
Flgc=0
2izqsub
Flgc,2=1
sigue2IS
Flg 2IS=0
Intcon=b10001000
ssiguelo
sigue2DS
Flg 2DS=0
Intcon=b10001000
ssiguelo
sigue2DB
Flg 2DB=0
Intcon=b10001000
ssiguelo
sigue2IB
Flg 2IB=0
Intcon=b10001000
ssiguelo


Diseo y construccin de una tarjeta programable Anexos
de adquisicin, procesamiento de datos y control
119
izqbaja
izqon=100
Izqoff=3
Flg IB=0
ssiguelo
ssiguelo
Opcin=b10000111
Intcon=b10101000
Flg IB=1
D1=1
D3=1
Flg velizq=1
Tmr0=100
portd=0
B5=0
sigueIB
Flga=0
Flgc=
Flgc,2=1
izqsube
izqon=100
Izqoff=3
Flg IS=0
ssiguelo
ssiguelo
Opcin=b10000111
Intcon=b10101000
Flg IS=1
D1=1
D2=1
Flg velizq=1
Tmr0=100
portd=0
B5=0
sigueIS
Flga=0
Flgc=0
Flgc,2=1

dersube
deron=100
deroff=3
Flg DS=0
ssiguelo
ssiguelo
Opcin=b10000111
Intcon=b10101000
Flg DS=1
D0=1
D2=1
Flg velizq=0
Tmr0=100
portd=0
B4=0
sigueDS
Flga=0
Flgc=0
Flgc,2=1
derbaja
deron=100
deroff=3
Flg DB=0
ssiguelo
ssiguelo
Opcin=b10000111
Intcon=b10101000
Flg DB=1
D0=1
D3=1
Flg velizq=0
Tmr0=100
portd=0
B4=0
sigueDB
Flga=0
Flgc=0
Flgc,2=1
3derbaja
deron=100
deroff=20
Flg 3DB=0
ssiguelo
ssiguelo
Opcin=b10000111
Intcon=b10101000
Flg 3DB=1
D0=1
D3=1
Flg velizq=0
Tmr0=100
portd=0
B4=0
sigue3DB
Flga=0
Flgc=0
Flgc,2=1
3izqbaja
izqon=100
Izqoff=20
Flg 3IB=0
ssiguelo
ssiguelo
Opcin=b10000111
Intcon=b10101000
Flg 3IB=1
D1=1
D3=1
Flg velizq=1
Tmr0=100
portd=0
Flga=0
Flgc=0
Flgc,2=1
B5=0
sigue3IB
sigue3IB
Flg 3IB=0
Intcon=b10001000
ssiguelo
sigueIB
Flg IB=0
Intcon=b10001000
ssiguelo
sigueIS
Flg IS=0
Intcon=b10001000
ssiguelo
sigueDS
Flg DS=0
Intcon=b10001000
ssiguelo
sigueDB
Flg DB=0
Intcon=b10001000
ssiguelo
sigue3DB
Flg 3DB=0
Intcon=b10001000
ssiguelo
Diseo y construccin de una tarjeta programable Anexos
de adquisicin, procesamiento de datos y control
120

interrupcio
B4=0
Chk flg B4
Flg B4=0
offlagb4
B5=0
Chk flg B5
Flg B5=0
offlagb5
B6=0
Chk flg B6
Flg B6=0
offlagb6
B7=0
Chk flg B7
Flg B7=0
offlagb7
Intcon,0=0
retfie
conti1
conti2
conti3
Flgsigelo=1
norebot
Intcon,2=0
chkgiro
Intcon,2=0
On der
D0=1
Flg on/off=0
Intcon,2=0
Tmr0=deron
retfie
On izq
D1=1
Flg on/off=0
Intcon,2=0
Tmr0=izqon
retfie
chkgiro
Flg B4=1
derecha
frenovert
D1=1
retfie
Intcon,2=0
flgsiguelo=0
velgirohorz
Tmr0=200
Chk flg B4
Flg B4=0
conti1
Intcon,0=0
ciclsbusq-=0
Conti_D
Flg ciclosbusq=1
retfie
Flg B4=1
Flgsiguelo=0
para
frenoh
Chk flg B5
Flg B5=0
conti2
Intcon,0=0
ciclsbusq-=0
Conti_I
Flg ciclosbusq=1
retfie
Flg B5=1
Flgsiguelo=0
Flgposini=1
retfie
para
frenoh
retfie
para
Intcon=b10001000
velgirohorz
Flg velizq=0
velizq
Flg on/off=0
On der
D0=0
Flg on/off=1
Intcon,2=0
Tmr0=deroff
retfie
velizq
Flg on/off=0
On izq
D1=0
Flg on/off=1
Intcon,2=0
Tmr0=izqoff
retfie
Flg B0=0
decr
Pasos-=0
subir
Flg B0=1
D2=1
Pasos=4
retfie
Conti_I
bajar
D3=1
retfie
decr
Pasos-=0
bajar
Flg B0=0
Pasos=4
retfie
D3=1
subir
D2=1
retfie
Flg B0=0
decr
Pasos-=0
subir
Flg B0=1
D2=1
Pasos=4
retfie
Conti_D
derecha
D0=1
retfie
Diseo y construccin de una tarjeta programable Anexos
de adquisicin, procesamiento de datos y control
121

offlagb4
Flg B4=0
Intcon,0=0
retfie
offlagb5
Flg B5=0
Intcon,0=0
retfie
refres
Intcon,0=0
retfie
posinib
Portd,2=0
Portd,3=1
retfie
posinis
Portd,3=0
Portd,2=1
retfie
Chk flg B6
Flg limite=1
Flg B6=0
conti3
retfie
Flgposini=1
portd=0
Intcon,0=0
Flg B6=1
retfie
Tmr0=
Intcon,2=0
Intcon=b10001000
Chk flg B7
Flg limite=1
Flg B7=0
refres
retfie
Flgposini=1
portd=0
Intcon,0=0
Flg B7=1
retfie
Tmr0=
Intcon,2=0
Intcon=b10001000
offlagb6
Flg B6=0
Intcon,0=0
retfie
Intcon,2=0
Tmr0=
offlagb7
Flg B7=0
Intcon,0=0
retfie
Intcon,2=0
Tmr0=
Diseo y construccin de una tarjeta programable Anexos
de adquisicin, procesamiento de datos y control
122

frenovert
Cont1=2
Cont2-=0
c11
c9
return
portd=0
Cont2=100
nop
nop
nop
Cont3=80
portD=b00100
Cont3-=0
portD=b01000
c9
Cont3=80
Cont3-=0
c10
c10
c11
Cont1-=0
c12
c12
frenohorz
Cont1=20
Cont2-=0
c7
c5
return
portd=0
Cont2=100
nop
nop
nop
Cont3=80
portD=b00001
Cont3-=0
portD=b00010
c5
Cont3=80
Cont3-=0
c6
c6
c7
Cont1-=0
c8
c8
Frenohorz/vert
Cont1=2
Cont2-=0
c3
c1
return
portd=0
Cont2=100
nop
nop
nop
Cont3=80
portD=b00101
Cont3-=0
portD=b01010
c1
Cont3=80
Cont3-=0
c2
c2
c3
Cont1-=0
c4
c4
Tresseg
Conta1=1
Conta2=250
Conta2-=0
Conta1-=0
Retlw 0
Conta3-=0
Conta3=250
c15
c15
c14
c14
c13
c13
norebot
Conta1=2
Conta2=100
Conta2-=0
Conta1-=0
Retlw 0
Conta3-=0
Conta3=100
c25
c25
c24
c24
c23
c23
Diseo y construccin de una tarjeta programable Anexos
de adquisicin, procesamiento de datos y control
123

Anexo D.4. Documentacin del programa de control del modelo a escala de la
plataforma de seguimiento solar
Registros de banderas y de entradas/salidas

f
l
g
a

0
1
2
3
4
5
6
7

f
l
g
b

0
1
2
3
4
5
6
7

f
l
g
c

0
1
2
3
4
5
6
7

f
l
g
d

0
1
2
3
4
5
6
7






FLG INCR/DECR ALTURA. Bandera que indica: 0 = sube placa colectora o 1 = baja placa colectora
FLG LMITE. Bandera que indica: que en la etapa de seguimiento se ha llegado a algn lmite de giro vertical
FLG OBJ PERD. Bandera que indica: sensor principal ha dejado de sensar luz
FLG CICLOS DE BUSQ. Bandera que indica: ya se realizaron el nmero de barridos de bsqueda
FLG DERECHA. Bandera a la que se le asigna el estado del interruptor de lmite derecho
FLG IZQUIERDA. Bandera a la que se le asigna el estado del interruptor de lmite izquierdo
FLG ARRIBA. Bandera a la que se le asigna el estado del interruptor de lmite superior
FLG ABAJO. Bandera a la que se le asigna el estado del interruptor de lmite inferior
FLG 2DB Bandera que indica: La placa colectora se mueve con velocidad a la derecha dos veces mayor a la velocidad con que baja
FLG 2IB Bandera que indica: La placa colectora se mueve con velocidad a la izquierda dos veces mayor a la velocidad con que baja
FLG 2DS Bandera que indica: La placa colectora se mueve con velocidad a la derecha dos veces mayor a la velocidad con que sube
FLG 2IS Bandera que indica: La placa colectora se mueve con velocidad a la izquierda dos veces mayor a la velocidad con que sube
FLG DB Bandera que indica: La placa colectora se mueve con velocidad a la derecha igual a la velocidad con que baja
FLG IB Bandera que indica: La placa colectora se mueve con velocidad a la izquierda igual a la velocidad con que baja
FLG 3DB Bandera que indica: La placa colectora se mueve con velocidad a la derecha tres veces mayor a la velocidad con que baja
FLG 3IB Bandera que indica: La placa colectora se mueve con velocidad a la izquierda tres veces mayor a la velocidad con que baja
FLG SUBELO. Bandera que indica: girar hacia arriba 2.5 la placa colectora (en la etapa de bsqueda)
FLG BAJALO. Bandera que indica: girar hacia abajo 2.5 la placa colectora (en la etapa de bsqueda)
FLG SIGELO. Bandera que indica: que el programa se encuentra en la etapa de bsqueda
FLG ON/OFF. Bandera que se emplea para generar el ancho de pulso modulado, para ajustar la velocidad de giro horizontal
FLG SUB. Bandera que indica: que la placa colectora esta subiendo (en la etapa de seguimiento)
FLG BAJ. Bandera que indica: que la placa colectora esta bajando (en la etapa de seguimiento)
FLG DS. Bandera que indica: La placa colectora se mueve con velocidad a la derecha igual a la velocidad con que sube
FLG IS. Bandera que indica: La placa colectora se mueve con velocidad a la izquierda igual a la velocidad con que sube
FLG VEL IZQ. Bandera que indica: 1= placa colectora gira a la izquierda, 0= placa colectora gira a la derecha
FLG POS INI. Bandera que indica: que el programa se encuentra en la etapa de posicionamiento inicial de la planta
FLG SUBE INI. Bandera que indica: 0= sube placa colectora, 1= baja placa colectora (etapa de posicionamiento inicial)
No empleada
No empleada
No empleada
No empleada
No empleada
Diseo y construccin de una tarjeta programable Anexos
de adquisicin, procesamiento de datos y control
124


P
O
R
T

A

0
1
2
3
4
5
6
7

P
O
R
T

B

0
1
2
3
4
5
6
7

P
O
R
T

D

0
1
2
3
4
5
6
7

















No empleada
No empleada
No empleada
No empleada
Entrada de pulsos que provienen del encoder
Arranque del sistema
No empleada
No empleada
No empleada
Entrada de seal proveniente del sensor principal
Entrada de seal proveniente del grupo izquierdo de sensores
Entrada de seal proveniente del grupo derecho de sensores
Entrada de seal proveniente del interruptor de lmite central
Entrada de seal proveniente del interruptor de lmite derecho
Entrada de seal proveniente del interruptor de lmite izquierdo
Entrada de seal proveniente del interruptor de lmite arriba
Entrada de seal proveniente del interruptor de lmite abajo
Salida a motor: giro a la derecha
Salida a motor: giro a la izquierda
Salida a motor: giro arriba
Salida a motor: giro abajo
No empleada
No empleada
No empleada
No empleada
Diseo y construccin de una tarjeta programable Anexos
de adquisicin, procesamiento de datos y control
125






adcon1 equ 9fh
intcon equ 0bh
opcion equ 81h
estado equ 03h
tmr0 equ 01h
porta equ 05h
portb equ 06h
portd equ 08h
trisa equ 85h
trisb equ 86h
trisd equ 88h
conta1 equ 20h
conta2 equ 21h
conta3 equ 22h
cont1 equ 23h
cont2 equ 24h
cont3 equ 25h
flga equ 26h
flgb equ 27h
flgc equ 28h
flgd equ 29h
deron equ 2ah
deroff equ 2bh
izqon equ 2ch
izqoff equ 2dh
pasos equ 2eh
cbusq equ 2fh

org 00h ; Posicin a la que apunta el contador de programa al iniciar la operacin del
microcontrolador
goto inicio ; salto a la etiqueta inicio
;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
;Atencin de interrupcin Debido a que el accionamiento (apertura o cierre) de los interruptores de lmite produce una
;interrupcin en el programa Este bloque de programa detecta si un interruptor se abri o cerr:
;En la etapa de ajustes de banderas, cada bandera se le asigno un cero o un uno dependiendo si el interruptor de limite
estaba abierto o ;cerrado respectivamente.
;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
org 04h ; Vector de interrupcin (si ocurre alguna interrupcin el programa salta a esta lnea)
btfss flgc,2 ; Checa si el programa esta en la etapa de seguimiento, si los esta brinca la prxima
instruccin
call norebot ; Llamada a rutina que elimina los efectos de rebotes mecnicos de interruptores de lmite
btfsc portb,4 ; Checa interruptor de lmite derecho. Si no esta activado se produce salto de instruccin
goto chflgb4 ; Salto a la etiqueta chflgb4
btfsc flgb,4 ; Checa bandera de interruptor de lmite derecho. Si no esta activado se produce salto de
instruccin
goto offlgb4 ; Salto a la etiqueta offlgb4
conti1 btfsc portb,5 ; Checa interruptor de lmite izquierdo. Si no esta activado se produce salto de instruccin
goto chflgb5 ; Salto a la etiqueta chflgb5
btfsc flgb,5 ; Checa bandera de interruptor de lmite izquierdo. Si no esta activado se produce salto
de instruccin
goto offlgb5 ; Salto a la etiqueta offlgb5
conti2 btfsc portb,6 ; Checa interruptor de lmite superior. Si no esta activado se produce salto de instruccin
goto chflgb6 ; Salto a la etiqueta chflgb6
btfsc flgb,6 ; Checa bandera de interruptor de lmite superior. Si no esta activado se produce salto de
instruccin
goto offlgb6 ; Salto a la etiqueta offlgb6
conti3 btfsc portb,7 ; Checa interruptor de lmite inferior. Si no esta activado se produce salto de instruccin
goto chflgb7 ; Salto a la etiqueta chflgb7
btfsc flgb,7 ; Checa bandera de interruptor de lmite inferior. Si no esta activado se produce salto de
instruccin
goto offlgb7 ; Salto a la etiqueta offlgb7
btfsc intcon,2 ; Checa bandera de interrupcin por desbordamiento de registro tmr0
goto chkgiro ; Salto a la etiqueta chkgiro
bcf intcon,0 ; Limpia bandera de interrupcin por cambio de estado en el puerto B
bcf intcon,2 ; Limpia bandera de interrupcin por desbordamiento del registro tmr0
Mnemnicos de las direcciones en la memoria de
datos empleadas en el programa
Diseo y construccin de una tarjeta programable Anexos
de adquisicin, procesamiento de datos y control
126
retfie ; Retorno de subrutina al programa principal
chkgiro btfsc flgc,2 ; Checa bandera sigelo. Si esta desactivada se produce salto de instruccin
goto velgirh ; Salto a la etiqueta velgirh
call frenov ; Llamada a rutina que frena el giro vertical
bcf intcon,2 ; Limpia bandera de interrupcin por desbordamiento del registro tmr0
movlw .200 ; Se carga el tmr0=200 para que combinado con el divisor de frecuencia 1:4
movwf tmr0 ; y el paso del tornillo sin fin de la planta, produzca un giro vertical de 2.5
btfss flgb,4 ; Checa bandera de interruptor de limite derecho. Si esta activada se produce salto de
instruccin
goto derecha ; Salto a la etiqueta derecha
bsf portd,1 ; Activa giro a la izquierda
retfie ; Retorno de la rutina que atiende la interrupcin, al programa principal
onder bsf portd,0 ; Activa giro a la derecha
bcf flgc,3 ; Limpia bandera
bcf intcon,2 ; Limpia bandera de interrupcin por desbordamiento de tmr0
movf deron,0 ; Se carga el tmr0 con el valor de
movwf tmr0 ; la variable deron
retfie ; Retorno de la rutina que atiende la interrupcin, al programa principal
onizq bsf portd,1 ; Se active giro a la izquierda
bcf flgc,3 ; Limpia bandera on/off
bcf intcon,2 ; Limpia bandera de interrupcin por desbordamiento del registro tmr0
movf izqon,0 ; Se carga el tmr0 con el valor de
movwf tmr0 ; la variable izqon
retfie ; Retorno de la rutina que atiende la interrupcin, al programa principal
chflgb5 bcf intcon,0 ; Limpia bandera de interrupcin por cambio de estado en el puerto B
btfsc flgb,5 ; Checa bandera de interruptor de lmite izquierdo. Si no esta activado se produce salto
de instruccin
goto conti2 ; Salto a la etiqueta conti2
bsf flgb,5 ; Activa bandera izquierda
btfss flgd,1 ; Checa bandera pos ini. Si esta activada se produce salto de instruccin
retfie ; Retorno de la rutina que atiende la interrupcin, al programa principal
call frenoh ; Llamada a rutina que frena el giro horizontal
btfsc flgc,2 ; Checa bandera sigelo. Si esta desactivada se produce salto de instruccin
goto para ; Salto a la etiqueta para
decfsz cbusq,1 ; Decrementa variable cbusq. Si reduce a cero, se produce salto de instruccin
goto conti_i ; Salto a la etiqueta conti_i
bsf flgb,3 ; Activa bandera ciclos de busq
retfie ; Retorno de la rutina que atiende la interrupcin, al programa principal
velgirh btfsc flgd,0 ; Checa bandera vel izq. Si esta desactivada se produce salto de instruccin
goto velizq ; Salto a la etiqueta velizq
btfsc flgc,3 ; Checa bandera on/off. Si esta desactivada se produce salto de instruccin
goto onder ; Salto a la etiqueta onder
bcf portd,0 ; Se desactiva giro a la derecha
bsf flgc,3 ; Activa bandera on/off
bcf intcon,2 ; Limpia bandera de interrupcin por desbordamiento del registro tmr0
movf deroff,0 ; Se carga el tmr0 con el valor de
movwf tmr0 ; la variable deroff
retfie ; Retorno de la rutina que atiende la interrupcin, al programa principal
velizq btfsc flgc,3 ; Checa bandera on/off. Si esta desactivada se produce salto de instruccin
goto onizq ; Salto a la etiqueta onizq
bcf portd,1 ; Se desactiva giro a la izquierda
bsf flgc,3 ; Activa bandera on/off
bcf intcon,2 ; Limpia bandera de interrupcin por desbordamiento del registro tmr0
movf izqoff,0 ; Se carga el tmr0 con el valor de
movwf tmr0 ; la variable izqoff
retfie ; Retorno de la rutina que atiende la interrupcin, al programa principal
chflgb4 bcf intcon,0 ; Limpia bandera de interrupcin por cambio de estado en el puerto B
btfsc flgb,4 ; Checa bandera derecha. Si esta desactivada se produce salto de instruccin
goto conti1 ; Salto a la etiqueta conti1
call frenoh ; Llamada a rutina que frena el giro horizontal
bsf flgb,4 ; Activa bandera derecha
btfsc flgc,2 ; Checa bandera sigelo. Si esta desactivada se produce salto de instruccin
goto para ; Salto a la etiqueta para
decfsz cbusq,1 ; Decrementa variable cbusq. Si reduce a cero, se produce salto de instruccin
goto conti_d ; Salto a la etiqueta conti_d
bsf flgb,3 ; Activa bandera ciclos de busq
retfie ; Retorno de la rutina que atiende la interrupcin, al programa principal
para movlw b'1000100 ; Se activa interrupcin por
movwf intcon ; cambio de estado del puerto B
retfie ; Retorno de la rutina que atiende la interrupcin, al programa principal
decr decfsz pasos,1 ; Decrementa variable pasos. Si reduce a cero, se produce salto de instruccin
goto bajar ; Salto a la etiqueta bajar
Diseo y construccin de una tarjeta programable Anexos
de adquisicin, procesamiento de datos y control
127
bcf flgb,0 ; Limpia bandera inca/decr altura

movlw .4 ; Se carga pasos = 4, que es el nmero de veces que el giro vertical
movwf pasos ; incrementara / decrementar 2.5
bsf portd,3 ; Se activa giro hacia abajo
retfie ; Retorno de la rutina que atiende la interrupcin, al programa principal
bajar bsf portd,3 ; Se activa giro hacia abajo
retfie ; Retorno de la rutina que atiende la interrupcin, al programa principal
subir bsf portd,2 ; Se activa giro hacia arriba
retfie ; Retorno de la rutina que atiende la interrupcin, al programa principal
conti_d btfsc flgb,0 ; Checa bandera inca/decr altura. Si esta desactivada se produce salto de instruccin
goto decr ; Salto a la etiqueta decr
decfsz pasos,1 ; Decrementa variable pasos. Si reduce a cero, se produce salto de instruccin
goto subir ; Salto a la etiqueta subir
bsf flgb,0 ; Activa bandera incr/decr altura
movlw .4 ; Se carga pasos = 4, que es el numero de veces que el giro vertical
movwf pasos ; que incrementara / decrementar 2.5
bsf portd,2 ; Se activa giro hacia arriba
retfie ; Retorno de la rutina que atiende la interrupcin, al programa principal
derecha bsf portd,0 ; Se activa giro a la derecha
retfie ; Retorno de la rutina que atiende la interrupcin, al programa principal
conti_i btfsc flgb,0 ; Checa bandera incr/decr altura. Si esta desactivada se produce salto de instruccin
goto decr ; Salto a la etiqueta decr
decfsz pasos,1 ; Decrementa variable pasos. Si reduce a cero, se produce salto de instruccin
goto subir ; Salto a la etiqueta subir
bsf flgb,0 ; Se activa bandera inca/decr altura
movlw .4 ; Se carga pasos = 4, que es el numero de veces que el giro vertical
movwf pasos ; que incrementara / decrementar 2.5
bsf portd,2 ; Se activa giro a la derecha
retfie ; Retorno de la rutina que atiende la interrupcin, al programa principal
chflgb6 btfsc flgb,6 ; Checa bandera arriba. Si esta desactivada se produce salto de instruccin
goto conti3 ; Salto a la etiqueta conti3
bcf intcon,0 ; Limpia bandera de interrupcin por cambio de estado en el puerto B
bsf flgb,6 ; Activa bandera arriba
bcf intcon,2 ; Limpia bandera de interrupcin por desbordamiento del registro tmr0
clrf tmr0 ; Limpia registro tmr0
btfss flgd,1 ; Checa bandera pos ini. Si esta desactivada se produce salto de instruccin
retfie ; Retorno de la rutina que atiende la interrupcin, al programa principal
clrf portd ; Limpia Puerto D
movlw b'1000100 ; Se activa interrupcin por cambio de
movwf intcon ; estado del Puerto B
bsf flgb,1 ; Activa bandera limite
retfie ; Retorno de la rutina que atiende la interrupcin, al programa principal
chflgb7 btfsc flgb,7 ; Checa bandera abajo. Si esta desactivada se produce salto de instruccin
goto refres ; Salto a la etiqueta refres
bcf intcon,0 ; Limpia bandera de interrupcin por cambio de estado en el puerto B
bsf flgb,7 ; Activa bandera abajo
bcf intcon,2 ; Limpia bandera de interrupcin por desbordamiento del registro tmr0
clrf tmr0 ; Limpia registro tmr0
btfss flgd,1 ; Checa bandera pos ini. Si esta activada se produce salto de instruccin
retfie ; Retorno de la rutina que atiende la interrupcin, al programa principal
clrf portd ; Limpia Puerto D
movlw b'10001000' ; Se activa interrupcin por cambio de
movwf intcon ; estado del Puerto B
bsf flgb,1 ; Activa bandera limite
retfie ; Retorno de la rutina que atiende la interrupcin, al programa principal
refres bcf intcon,0 ; Limpia bandera de interrupcin por cambio de estado en el puerto B
retfie ; Retorno de la rutina que atiende la interrupcin, al programa principal
offlgb4 bcf flgb,4 ; Limpia bandera derecha
bcf intcon,0 ; Limpia bandera de interrupcin por cambio de estado en el puerto B
retfie ; Retorno de la rutina que atiende la interrupcin, al programa principal
offlgb5 bcf flgb,5 ; Limpia bandera izquierda
bcf intcon,0 ; Limpia bandera de interrupcin por cambio de estado en el puerto B
retfie ; Retorno de la rutina que atiende la interrupcin, al programa principal
offlgb6 bcf flgb,6 ; Limpia bandera arriba
bcf intcon,0 ; Limpia bandera de interrupcin por cambio de estado en el puerto B
bcf intcon,2 ; Limpia bandera de interrupcin por desbordamiento del registro tmr0
clrf tmr0 ; Limpia registro tmr0
retfie ; Retorno de la rutina que atiende la interrupcin, al programa principal
offlgb7 bcf flgb,7 ; limpia bandera arriba
bcf intcon,0 ; Limpia bandera de interrupcin por cambio de estado en el puerto B
bcf intcon,2 ; Limpia bandera de interrupcin por desbordamiento del registro tmr0
Diseo y construccin de una tarjeta programable Anexos
de adquisicin, procesamiento de datos y control
128
clrf tmr0 ; Limpia registro tmr0
retfie ; Retorno de la rutina que atiende la interrupcin, al programa principal
;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
inicio
;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
; Configuracin de puertos
;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
bsf estado,5 ; Se ubica en el
bcf estado,6 ; banco uno
movlw b'00000111' ; Se configura el microcontrolador para que todos
movwf adcon1 ; sus canales operen como entradas o salidas digitales
movlw b'00111100' ; Se configura el puerto A para que las terminales 0 y 1 sean
movwf trisa ; salidas y las dems sean entradas
movlw 0ffh ; Se configura el puerto B para que todas sus terminales sean
movwf trisb ; entradas
movlw b'11110000' ; Se configura el puerto D para que sus primeras cuatro terminales
movwf trisd ; sean salidas y las restantes sean salidas
bcf estado,5 ; se pasa al banco cero
;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
; programa principal
;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
clrf portd ; Se ponen todas las salidas a cero
;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
; ETAPA DE ARRANQUE
;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

arranqe btfss porta,5 ; Checa si se pulsa el botn de arranque, si as es, brinca la siguiente
instruccin
goto arranqe ; Ir a la etiqueta arranque
home movlw b'10001000' ; Se activan las interrupciones por cambio de estado de
movwf intcon ; las terminales 4,5,6 y 7 del Puerto B
clrf tmr0 ; Se limpia el temporizador interno del PIC
clrf flag ; Se limpia el registro de banderas flga
clrf flgb ; Se limpia el registro de banderas flgb
clrf flgc ; Se limpia el registro de banderas flgc
clrf flgd ; Se limpia el registro de banderas flgd
;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
; ETAPA DE INICIALIZACIN DE BANDERAS DE LOS INTERRUPTORES DE LMITE
;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

btfsc portb,4 ; Checa el estado del interruptor de limite derecho, si es 0 brinca una instruccin
goto onflgb4 ; Salto a la etiqueta onflgb4
bcf flgb,4 ; Pone acero la bandera del interruptor de limite derecho
s1 btfsc portb,5 ; Checa el estado del interruptor de limite izquierdo, si es 0 brinca una instruccin
goto onflgb5 ; Salto a la etiqueta onflgb5
bcf flgb,5 ; Pone acero la bandera del interruptor de limite izquierdo
s2 btfsc portb,6 ; Checa el estado del interruptor de limite arriba, si es 0 brinca una instruccin
goto onflgb6 ; Salto a la etiqueta onflgb6
bcf flgb,6 ; Pone acero la bandera del interruptor de limite arriba
bcf flgd,2 ; Pone acero la bandera subeini (se emplea para subir o bajar la placa colectora)
s3 btfsc portb,7 ; Checa el estado del interruptor de limite abajo, si es 0 brinca una instruccin
goto onflgb7 ; Salto a la etiqueta onflgb7
bcf flgb,7 ; Pone acero la bandera del interruptor de limite abajo
goto home3 ; Salto a la etiqueta home3

onflgb4 bsf flgb,4 ; Pone a 1 la bandera del interruptor de limite derecho
goto s1 ; Salto a la etiqueta s1
onflgb5 bsf flgb,5 ; Pone a 1 la bandera del interruptor de limite izquierdo
goto s2 ; Salto a la etiqueta s2
onflgb6 bsf flgb,6 ; Pone a 1 la bandera del interruptor de limite arriba
bsf flgd,2 ; Pone a 1 la bandera subeini (se usa para subir o bajar la placa colectora)
goto s3 ; Salto a la etiqueta s3
onflgb7 bsf flgb,7 ; Pone a 1 la bandera del interruptor de limite abajo

;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
; ETAPA DE POSICIONAMIENTO INICIAL DE LA PLANTA
;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

home3 clrf tmr0 ; Limpia el registro tmr0 (temporizador)
btfss portb,3 ; Checa interruptor de posicin horizontal de placa colectora, si esta activado brinca la
siguiente instruccin
goto sube ; Salto a etiqueta sube
A cada interruptor de
lmite de sobregiro le
corresponde una
bandera, la cual se
debe ajustar al estado
que tenga su
correspondiente
interruptor. Esto es:

Si el interruptor de
lmite esta cerrado, su
bandera se pondr a
1

Si el interruptor de
lmite esta abierto, su
bandera se pondr a
0
Diseo y construccin de una tarjeta programable Anexos
de adquisicin, procesamiento de datos y control
129
call frenov ; Llamado a rutina que frena el giro vertical de la placa colectora
home2 clrf tmr0 ; Limpia el registro tmr0 (temporizador)
btfss portb,5 ; Checa interruptor de limite izquierdo, si esta activado brinca la siguiente instruccin
goto izq2 ; Salto a etiqueta izq2
clrf portd ; Limpia registro portd
bsf flgd,1 ; Activa la bandera posini que indica que se a completado el posicionamiento inicial de la
planta
movlw .8 ; Se cargan 8 recorridos (de limite izquierdo a derecho y viceversa)
movwf cbusq ; de bsqueda
movlw .4 ; Se cargan cuatro incrementos/decrementos de giro de la placa colectora esto ocurre
movwf pasos ; cada vez que la placa colectora llegue a un limite de giro horizontal
call tress ; llamada a rutina que detiene el sistema 3 segundos
movlw b'10101000' ;Se habilitan la interrupcin por cambio de estado del Puerto B y
movwf intcon ; la interrupcin por desbordamiento del temporizador tmr0
bsf estado,5 ; Se pasa al banco 1
movlw b'10100001' ; Se asigna un divisor de frecuencia 1:4 al tmr0 y
movwf opcion ; se configura para que los pulsos ingresn por el T0kI (contador)
bcf estado,5 ; se pasa al banco cero
movlw .200 ; Se carga el registro
movwf tmr0 ; tmr0 con el valor 200
call tress ; Llamada a rutina detiene el proceso tres segundos
;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
; ETAPA DE BUSQUEDA
;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
movlw 01h ; Inicia el proceso de bsqueda
movwf portd ; con giro hacia la derecha
busqeda btfsc flgb,3 ; Checa la bandera flg_ciclos de bsqueda, si no esta activa brinca la siguiente
instruccin.
goto reposo ; Salto a la etiqueta reposo
btfsc flgb,1 ; Checa la bandera de limite de giro vertical. Si es cero brinca la siguiente instruccin
goto home ; Salto a la etiqueta home
btfsc portb,0 ; Checa sensor principal. Si es cero brinca la siguiente instruccin
goto sigelo ; Salto a la etiqueta sigelo
btfsc portb,1 ; Checa grupo izquierdo de sensores. Si son cero se brinca la instruccin siguiente
goto subelo ; Salto a etiqueta subelo
btfsc portb,2 ; Checa grupo derecho de sensores. Si son cero se brinca la instruccin siguiente
goto bajalo ; Salto a etiqueta bajalo
goto busqueda ; Salto a etiqueta busqueda
subelo btfsc flgc,0 ; Checa bandera subelo. Si es cero, brinca la siguiente instruccin
goto busqueda ; Salto a etiqueta bsqueda
clrf portd ; Limpia puerto D
call frenoh ; Llamada a rutina que frena motor de giro horizontal
movlw b'10001000' ; Se habilitan las interrupciones por
movwf intcon ; cambio de estado del Puerto B
bsf portd,2 ; Giro vertical arriba
bsf flgc,0 ; Giro horizontal a la derecha
bcf flgc,1 ; Limpia bandera que enclava giro vertical hacia abajo
goto busqueda ; Salto a etiqueta busqueda
bajalo btfsc flgc,1 ; Checa bandera bajalo. Si es cero se brinca la siguiente instruccin
goto busqeda ; Salto a etiqueta busqueda
clrf portd ; Limpia Puerto D
call frenoh ; Llamada a rutina que frena motor de giro horizontal
movlw b'10001000' ; Se habilitan las interrupciones por
movwf intcon ; cambio de estado del Puerto B
bsf portd,3 ; Baja placa colectora
bcf flgc,0 ; Limpia bandera subelo
bsf flgc,1 ; Se active bandera bajalo
goto busqeda ; salto a etiqueta bsqueda
sube btfsc flgd,2 ; Checa bandera sube ini
goto baja ; salto a etiqueta baja
btfsc portb,6 ; Checa interruptor de limite superior. Si es cero se brinca la prxima instruccin
goto baja ; Salto a etiqueta baja
bsf portd,2 ; Gira placa colectora hacia arriba
btfss portb,5 ; Checa interruptor de limite izquierdo. Si esta activado se produce un salto a la prxima
instruccin
goto izq ; Salto a la etiqueta izq
bcf portd,1 ; Se desactiva giro a la izquierda de placa colectora
goto home3 ; Salto a la etiqueta home3
baja bcf portd,2 ; Se deactiva giro hacia arriba de placa colectora
btfsc portb,7 ; Checa interruptor de limite inferior. Si esta desactivado se produce un salto a la prxima
instruccin
goto refsube ; Salto a la etiqueta refsube
Diseo y construccin de una tarjeta programable Anexos
de adquisicin, procesamiento de datos y control
130
bsf portd,3 ; Gira hacia abajo la placa colectora
btfss portb,5 ; Checa interruptor de limite izquierdo. Si esta activado se produce un salto a la prxima
instruccin
goto izq ; Salto a la etiqueta izq
bcf portd,1 ; Se desactiva giro a la izquierda
goto home3 ; Salto a la etiqueta home3
refsube bcf portd,3 ; Se desactiva giro hacia abajo
bcf flgd,2 ; Se limpia bandera sube ini, para que se pueda volver a subir la placa colectora
btfss portb,5 ; Checa interruptor de limite izquierdo. Si esta activado, se produce un salto de
instruccion
goto izq ; Salto a la etiqueta izq
bcf portd,1 ; Se desactiva giro a la izquierda
goto home3 ; Salto a la etiqueta home3
izq bsf portd,1 ; Se active giro a la izquierda
goto home3 ; Salto a la etiqueta home3
izq2 bsf portd,1 ; Se active giro a la izquierda
goto home2 ; Salto a la etiqueta home2

sigelo movlw b'10001000' ; Se activan interrupciones por
movwf intcon ; cambio de estado del Puerto B
call frenohv ; Llamada a rutina que frena el giro vertical de la palca colectora
bsf flgc,2 ; Se activa bandera siguelo
bcf flgb,2 ; Se limpia bandera obj perd
ssigelo btfss portb,0 ; Checa sensor principal. Si esta activado se produce salto de instruccin
goto chcenti ; Salto a la etiqueta chcenti
btfss flgb,2 ; Checa bandera obj perd
goto ssigelo ; salto a etiqueta ssigelo
movlw b'10001000' ; Se activa interrupcin por
movwf intcon ; cambio de esta do del Puerto B
call frenohv ; Llamada a rutina que frena giro horizontal y vertical
clrf flga ; Se limpia registro de banderas flga
clrf flgc ; Se limpia registro de banderas flgc
bsf flgc,2 ; Se activa bandera sigelo
bcf flgb,2 ; Se limpia bandera obj perd
goto ssigelo ; Salto a etiqueta ssigelo
chcenti bsf flgb,2 ; Se activa bandera obj perd
btfsc flgb,1 ; Checa bandera limite. Si esta desactivada se produce salto de instruccin
goto home ; Salto a la etiqueta home
btfsc portb,4 ; Checa interruptor de limite derecho. Si esta desactivado se produce salto de instruccin
goto chk24di ; Salto a la etiqueta chk24di
btfsc portb,5 ; Checa interruptor de limite izquierdo. Si esta desactivado se produce salto de
instruccin
goto chk13di ; Salto a la etiqueta chk13di
btfsc portd,4 ; Checa sensor 1. Si esta desactivado se produce salto de instruccin
goto chkc4td ; Salto a etiqueta chkc4td
bcf flga,0 ; Limpia bandera 2DB
btfsc portb,2 ; Checa grupo derecho de sensores. Se esta desactivado se produce salto de instruccin
goto chkc1_2 ; Salto a la etiqueta chkc1_2
bcf flgc,5 ; Limpia bandera baj
btfsc portd,5 ; Checa sensor 2. si est desactivado se produce salto de instruccin
goto chkc3td ; Salto a etiqueta chkc3td
bcf flga,1 ; Limpia bandera 2DB
btfsc portd,6 ; Checa sensor 3. Si esta desactivado se produce salto de instruccin
goto chkc2ti ; Salto a etiqueta chkc2ti
bcf flga,2 ; Limpia bandera 2DS
btfsc portb,1 ; Checa grupo izquierdo de sensores. Si esta desactivado se produce salto de instruccin
goto chkc3_4 ; Salto a etiqueta chkc3_4
bcf flgc,4 ; Limpia bandera sub
btfsc portd,7 ; Checa sensor 4. Si esta desactivado se produce salto de instruccion
goto chkc1ti ; Salto a la etiqueta chkc1ti
bcf flga,3 ; Limpia bandera 2IS
goto ssigelo ; Salto a etiqueta ssigelo
chk24di btfsc portd,5 ; Checa sensor 2. Si esta desactivado se produce salto de instruccin
goto chkc3td ; Salto a etiqueta chkc3dtd
bcf flga,1 ; Limpia bandera 2IB
btfsc portd,7 ; Checa sensor 4. Si esta desactivado se produce salto de instruccin
goto chtiyc4 ; Salto a la etiqueta chtiyc4
bcf flga,3 ; Limpia bandera 2IS
btfsc portb,2 ; Checa grupo derecho de sensores. Si esta desactivado se produce salto de instruccin
goto baj ; Salto a la etiqueta baj
btfsc portb,1 ; Checa grupo izquierdo de sensores. Si esta desactivado se produce salto de instruccin
goto sub ; Salto a la etiqueta sub
Diseo y construccin de una tarjeta programable Anexos
de adquisicin, procesamiento de datos y control
131
goto ssigelo ; Salto a la etiqueta ssigelo
chk13di btfsc portd,4 ; Checa el sensor 1. Si esta desactivado se produce salto de instruccin
goto chkc4td ; Salto a la etiqueta chkc4td
bcf flga,0 ; Limpia la bandera 2DB
btfsc portd,6 ; Checa el sensor 3. Si esta desactivado se produce salto de instruccin
goto chtiyc3 ; Salto a la etiqueta chtiyc3
bcf flga,2 ; Limpia la bandera 2DS
btfsc portb,2 ; Checa el grupo derecho de sensores. Si esta desactivado se produce salto de
instruccin
goto baj ; Salto a la etiqueta baj
btfsc portb,1 ; Checa el grupo izquierdo de sensores. Si esta desactivado se produce salto de
instruccin
goto sub ; Salto a la etiqueta sub
goto ssigelo ; Salto a la etiqueta ssigelo
chtiyc4 btfsc portb,1 ; Checa el grupo izquierdo de sensores. Si esta desactivado se produce salto de
instruccin
goto izqsub ; Salto a la etiqueta izqsub
goto dizqsub ; Salto a la etiqueta dizqsub
chtiyc3 btfsc portb,1 ; Checa grupo izquierdo de sensores. Si esta desactivado se produce salto de instruccin
goto dersub ; Salto a la etiqueta dersub
goto ddersub ; Salto a la etiqueta ddersub
chkc3_4 btfsc portd,6 ;Checa sensor 3. Si esta desactivado se produce salto de instruccin
goto dersub ; Salto a la etiqueta dersub
bcf flgc,6 ; Limpia bandera DS
btfsc portd,7 ; Checa sensor 4. Si esta desactivado se produce salto de instruccin
goto izqsub ; Salto a la etiqueta izqsub
bcf flgc,7 ; Limpia bandera IS
sub btfsc flgc,4 ; Checa bandera sub
goto ssigelo ; Salto a etiqueta ssigelo
clrf portd ; Limpia Puerto D
movlw b'10001000' ; Se activa interrupcin por
movwf intcon ;cambio de estado del puerto B
clrf flga ; Se limpia registro de banderas flga
clrf flgc ; Se limpia registro de banderas flgc
bsf flgc,2 ; Se activa bandera sigelo. Que indica que el programa se encuentra en esta etapa
bsf flgc,4 ; Se activa bandera sub, para que la placa colectora suba
bsf portd,2 ; Giro hacia arriba
goto ssigelo ; Salto a la etiqueta ssigelo
chkc1_2 btfsc portd,4 ; Checa sensor 1. Si esta desactivado se produce salto de instruccin
goto derbaj ; Salto a la etiqueta derbaj
bcf flga,4 ; Limpia bandera DB
btfsc portd,5 ; Checa sensor 2. Si esta desactivado se produce salto de instruccin
goto izqbaj ; Salto a la etiqueta izqbaj
bcf flga,5 ; Limpia bandera IB
baj btfsc flgc,5 ; Checa bandera baj
goto ssigelo ; Salto a la etiqueta ssigelo
movlw b'10001000' ; Se activa interrupcin por
movwf intcon ; cambio de estado del Puerto B
clrf portd ; Limpia Puerto D
clrf flga ; Limpia registro de banderas flga
clrf flgc ; Limpia registro de banderas flgc
bsf flgc,2 ; Se activa bandera sigelo
bsf flgc,5 ; Se activa bandera baj
bsf portd,3 ; Gira hacia debajo de la placa colectora
goto sguelo ; Salto a la etiqueta siguelo
chkc4td btfsc portd,7 ; Checa sensor 4. Si esta desactivado se produce salto de instruccin
goto tderbaj ; Salto a etiqueta tderbaj (velocidad a la derecha 3 veces mayor que velocidad de giro
hacia abajo)
bcf flga,6 ; Limpia bandera 3DB
btfsc portb,2 ; Checa grupo derecho de sensores. Si esta desactivado se produce salto de instruccin
goto derbaj ; Salto a etiqueta derbaj
bcf flga,4 ; Limpia bandera DB
movlw .100 ; Se carga la variable deron=100 y
movwf deron ; la variable derof=10, para modular
movlw .10 ; el ancho de pulso que alimentara al
movwf deroff ; motor de giro horizontal, para una velocidad media
bcf flgd,0 ; Limpia bandera velizq
btfsc flga,0 ; Checa bandera 2DB
goto ssigelo ; Salto a etiqueta ssigelo
clrf portd ; Limpia Puerto D
clrf flga ; Limpia registro de banderas flga
clrf flgc ; Limpia registro de bandera flgc
Diseo y construccin de una tarjeta programable Anexos
de adquisicin, procesamiento de datos y control
132
bsf flgc,2 ; Activa bandera sigelo
bsf flga,0 ; Activa bandera 2DB
movlw b'10101000' ; Se activan interrupcin por cambio de estado en puerto B e interrupcin
movwf intcon ; por saturacin del temporizador tmr0
bsf estado,5 ; Cambio al banco 1
movlw b'10000111' ; Se asigna un divisor de frecuencia de 1:256
movwf opcion ; al temporizador tmr0
bcf estado,5 ; cambio al banco 0
movlw .100 ; Se inicia el tmr0 con un valor de 100
movwf tmr0 ; igual al valor cargado la variable deron
btfsc portb,4 ; Checa interruptor de limite derecho. Si esta desactivado se produce salto de instruccin
goto sige2db ; Salto a etiqueta sige2db
bsf portd,0 ; se activa giro a la derecha
bsf portd,3 ; se activa giro hacia abajo
goto sguelo ; Salto a la etiqueta sigelo
sige2db bcf flga,0 ; Limpia bandera 2DB
movlw b'10001000' ; Se activa solo interrupcin por
movwf intcon ; cambio de estado en el puerto B
goto sguelo ; Salto a la etiqueta sigelo
chkc3td btfsc portd,6 ; Checa sensor 3. Si esta desactivado se produce salto de instruccin
goto tizqbaj ; Salto a la etiqueta tizqbaj
bcf flga,7 ; Limpia bandera 3IB
btfsc portb,2 ;Checa grupo derecho de sensores. Si esta desactivado se produce salto de instruccin
goto izqbaj ; salto a etiqueta izqbaj
bcf flga,5 ; Limpia bandera IB
movlw .100 ; Carga la variable izqon=100 y
movwf izqon ; la variable izqoff =10 para modular,
movlw .10 ; el ancho de pulso que regula a
movwf izqoff ; una velocidad horizontal media
bsf flgd,0 ; Activa bandera vel izq
btfsc flga,1 ; Checa bandera 2IB. Si esta desactivado se produce salto de instruccin
goto sguelo ; Salto a la etiqueta sigelo
clrf portd ; Limpia puerto D
clrf flga ; Limpia registro de banderas flga
clrf flgc ; Limpia registro de banderas flgc
bsf flgc,2 ; Se activa bandera sigelo
bsf flga,1 ; Se activa bandera 2IB
movlw b'10101000' ; Se activan interrupcion por cambio de estado en
movwf intcon ; puerto B e interrupcin por saturacin del temporizador tmr0
bsf estado,5 ; Cambio al banco 1
movlw b'10000111' ; Se ajusta eldivisor de frecuencias de 1:256
movwf opcion ; y se le asigna al tmr0
bcf estado,5 ; Se cambia al banco 0
movlw .100 ; Se carga el tmr0 con el mismo
movwf tmr0 ; valor que se carga la variable izqon
btfsc portb,5 ; Checa interruptor de limite izquierdo. Si esta desactivado se produce salto de
instruccin
goto sige2ib ; Salto a la etiqueta sige2ib
bsf portd,1 ; Se activa giro a la izquierda
bsf portd,3 ; Se activa giro hacia abajo
goto ssigelo ; Salto a la etiqueta ssigelo
sige2ib bcf flga,1 ; Se limpia bandera 2IB
movlw b'10001000' ; Solo se queda activada la interrupcion
movwf intcon ; por cambio de estadel del Puerto B
goto ssigelo ; Salto a la etiqueta ssigelo
chkc2ti btfsc portd,5 ; Checa el sensor 2. Si esta desactivado se produce salto de instruccin
goto tizqbaj ; Salto a la etqiueta tizqbaj
bcf flga,7 ; Limpia bandera 3IB
btfsc portb,1 ; Checa grupo izqueirdo de sensores. Si esta desactivado se produce salto de instruccin
goto dersub ; Salto a la etiqueta dersub
bcf flgc,6 ; Limpia bandera DS
ddersub movlw .100 ; Carga la variable deron=100 y la
movwf deron ; variable deroff=10para modular
movlw .10 ; el ancho de pulso que regula a
movwf deroff ; una velocidad horizontal media
bcf flgd,0 ; Limpia bandera vel izq
btfsc flga,2 ; Checa bandera 2DS. Si esta desactivada se produce salto de instruccin
goto ssigelo ; Salto a la etiqueta ssigelo
clrf portd ; Limpia Puerto D
clrf flga ; Limpia bandera flga
clrf flgc ; Limpia bandera flgc
bsf flgc,2 ; Activa bandera sigelo
Diseo y construccin de una tarjeta programable Anexos
de adquisicin, procesamiento de datos y control
133
bsf flga,2 ; Activa bandera 2DS
movlw b'10101000' ; Se activan interrupcin por cambio de estado en Puerto B e
movwf intcon ; interrupcin por desbordamiento del temporizador tmr0
bsf estado,5 ; se pasa al banco 1
movlw b'10000111' ; Se ajusta divisor de frecuencia de 1:256 y
movwf opcion ; se le asigna al tmr0
bcf estado,5 ; Se pasa al banco 0
movlw .100 ; Se carga el tmr0 con el mismo valor que
movwf tmr0 ; se cargo la variable deron
btfsc portb,4 ; Checa el interruptor de limite derecho. Si esta desactivado se produce salto de
instruccin
goto sige2ds ; Salto a la etiqueta sige2ds
bsf portd,0 ; Se active giro a la dereha
bsf portd,2 ; Se active giro hacia arriba
goto sguelo ; Salto a la etiqueta sigelo
sige2ds bcf flga,2 ; Limpia bandera 2DS
movlw b'10001000' ; Se activa solo la interrupcion por cambio de
movwf intcon ; estado del puerto B
goto sguelo ; Salto a la etiqueta sigelo
chkc1ti btfsc portd,4 ; Checa sensor 1. Si esta desactivado se produce salto de instruccin
goto tderbaj ; Salto a etiqueta tderbaj
bcf flga,6 ; limpia bandera 3DB
btfsc portb,1 ; Checa grupo izquierdo de sensores. Si esta desactivado se produce salto de instruccin
goto izqsub ; Salto a la eiqueta izqdub
bcf flgc,7 ; Limpia IS
dizqsub movlw .100 ; Se carga la variable izqon=100 y la
movwf izqon ; variable izqoff=10, para modular el ancho
movlw .10 ; de los pulsos que regulan a un valor medio
movwf izqoff ; la velocidad a la izquierda del motor
bsf flgd,0 ; Se activa la bandera vel izq
btfsc flga,3 ; Checa la bandera 2IS
goto ssigelo ; Salto a la etiqueta ssigelo
clrf portd ; Limpia Puerto D
clrf flga ; Limpia registro de banderas flga
clrf flgc ; Limpia registro de banderas flgc
bsf flgc,2 ; Se activa bandera sigelo
bsf flga,3 ; Se activa bandera 2IS
movlw b'10101000' ; Se activan interrupcion por cambio de estado en
movwf intcon ; puerto B e interrupcin por desbordamiento del temporizador tmr0
bsf estado,5 ; Cambio al banco 1
movlw b'10000111' ; Se ajusta divisor de frecuencia de 1:256 y
movwf opcion ; se le asigna al tmr0
bcf estado,5 ; Salto al banco 0
movlw .100 ; Se carga el tmr0 con el mismo valor que
movwf tmr0 ; se cargo la variable izqon
btfsc portb,5 ; Checa el interruptor de limite izquierdo. Si esta desactivado se produce salto de
instruccin
goto sige2is ; Salto a la etiqueta sige2is
bsf portd,1 ; Se activa giro a la izquierda
bsf portd,2 ; Se activa giro hacia arriba
goto ssigelo ; Salto a la etiqueta ssigelo
sige2is bcf flga,3 ; Limpia bandera 2IS
movlw b'10001000' ; Se activa solo la interrupcion por cambio de
movwf intcon ; estado del puerto B
goto ssigelo ; Salto a la etiqueta ssigelo
izqbaj movlw .100 ; Se carga la variable izqon=100 y la
movwf izqon ; variable izqoff=3, para modular el ancho
movlw .3 ; de los pulsos que regulan a un valor bajo
movwf izqoff ; la velocidad a la izquierda del motor
bsf flgd,0 ; Activa la bandera vel izq
btfsc flga,5 ; Checa bandera IB. Si esta desactivada se produce salto de instruccin
goto ssigelo ; Salto a la etiqueta ssigelo
clrf portd ; Limpia Puerto D
clrf flag ; Limpia registro de banderas flga
clrf flgc ; Limpia registro de banderas flgc
bsf flgc,2 ; Activa la bandera sigelo
bsf flga,5 ; Activa la bandera IB
movlw b'10101000' ; Se activa solo la interrupcion por cambio de
movwf intcon ; estado del puerto B
bsf estado,5 ; Cambio al banco 1
movlw b'10000111' ; Se ajusta divisor de frecuencia de 1:256 y
movwf opcion ; se le asigna al tmr0
Diseo y construccin de una tarjeta programable Anexos
de adquisicin, procesamiento de datos y control
134
bcf estado,5 ; Cambio al banco 0
movlw .100 ; Se carga la variable tmr0 con el mismo valor
movwf tmr0 ; que se cargo la variable izqon
btfsc portb,5 ; Checa el interruptor de limite izquierdo. Si esta desactivado se produce salto de
instruccin
goto sigeib ; Salto a la etiqueta sigeib
bsf portd,1 ; Se aciva giro a la izquerda
bsf portd,3 ; Se activa giro hacia abajo
goto sguelo ; Salto a la etiqueta sigelo
sigeib bcf flga,5 ; Limpia bandera IB
movlw b'10001000' ; Se activa solo la interrupcin por cambio de
movwf intcon ; estado del puerto B
goto sguelo ; Salto a la etiqueta sigelo

izqsub movlw .100 ; Se carga la variable izqon=100 y la
movwf izqon ; variable izqoff=3, para modular el ancho
movlw .3 ; de los pulsos que regulan a un valor bajo
movwf izqoff ; la velocidad a la izquierda del motor
bsf flgd,0 ; Se activa bandera velizq
btfsc flgc,7 ; Checa bandera IS. Si esta desactivado se produce salto de instruccin
goto sguelo ; Salto a la etiqueta sigelo
clrf portd ; Limpia puerto D
clrf flag ; Limpia registro de banderas flga
clrf flgc ; Limpia registro de banderas flgc
bsf flgc,2 ; Se activa bandera sigelo
bsf flgc,7 ; Se activa la bandera IS
movlw b'10101000' ; Se activa solo la interrupcin por cambio de estado del puerto B
movwf intcon ; y la interrupcin por desbordamiento del tmr0
bsf estado,5 ; Cambio al banco 1
movlw b'10000111' ; Se ajusta divisor de frecuencia de 1:256 y
movwf opcion ; se le asigna al tmr0
bcf estado,5 ; Cambio al banco 0
movlw .100 ; Se carga el tmr0 con el mismo valor que
movwf tmr0 ; se cargo la variable izqon
btfsc portb,5 ; Checa interruptor de limite izquierdo. Si esta desactivado se produce salto de
instruccin
goto sigeis ; Salto a la etiqueta sigeis
bsf portd,1 ; Se activa giro a la izquierda
bsf portd,2 ; se active giro hacia arriba
goto sguelo ; Salto a la etiqueta sigelo
sigeis bcf flgc,7 ; Limpia bandera IS
movlw b'10001000' ; Se activa solo la interrupcion por cambio de
movwf intcon ; estado del puerto B
goto ssigelo ; Salto a la etiqueta sigelo


dersub movlw .100 ; Se carga la variable deron=100 y la
movwf deron ; variable deroff=3, para modular el ancho
movlw .3 ; de los pulsos que regulan a un valor bajo
movwf deroff ; la velocidad a la derecha del motor
bcf flgd,0 ; Limpia bandera veli izq
btfsc flgc,6 ; Checa bandera DS. Si esta desactivado se produce salto de instruccin
goto ssigelo ; Salto a la etiqueta ssigelo
clrf portd ; Limpia Puerto D
clrf flga ; Limpia registro de banderas flga
clrf flgc ; Limpia registro de banderas flgd
bsf flgc,2 ; Activa bandera sigelo
bsf flgc,6 ; Activa bandera DS
movlw b'10101000' ; Se activan interrupcin por cambio de estado en
movwf intcon ; puerto B e interrupcin por desbordamiento del temporizador tmr0
bsf estado,5 ; Cambio al banco 1
movlw b'10000111' ; Se ajusta divisor de frecuencia de 1:256 y
movwf opcion ; se le asigna al tmr0
bcf estado,5 ; Cambio al banco 0
movlw .100 ; Se carga el tmr0 con el mismo valor que
movwf tmr0 ; se cargo la variable deron
btfsc portb,4 ; Checa el interruptor de limite derecho. Si esta desactivado se produce salto de
instruccin
goto sigeds ; Salto a la etiqueta sigeds
bsf portd,0 ; Se active giro a la derecha
bsf portd,2 ; Se active giro hacia arriba
goto ssigelo ; Salto a la etiqueta ssigelo
Diseo y construccin de una tarjeta programable Anexos
de adquisicin, procesamiento de datos y control
135
sigeds bcf flgc,6 ; Limpia bandera DS
movlw b'10001000' ; Se activa solo la interrupcion por cambio de
movwf intcon ; estado del puerto B
goto ssigelo ; Salto a la etiqueta ssigelo

derbaj movlw .100 ; Se carga la variable deron=100 y la
movwf deron ; variable deroff=10, para modular el ancho
movlw .3 ; de los pulsos que regulan a un valor bajo
movwf deroff ; la velocidad a la derecha del motor
bcf flgd,0 ; Limpia bandra vel izq
btfsc flga,4 ; Checa bandera DB. Si esta desactivada se produce salto de instruccin
goto ssigelo ; Salto a la etiqueta ssigelo
clrf portd ; Limpia Puerto D
clrf flga ; Limpia registro de banderas flga
clrf flgc ; Limpia registro de banderas flgc
bsf flgc,2 ; Activa bandera sigelo
bsf flga,4 ; Activa bandera DB
movlw b'10101000' ; Se activan interrupcion por cambio de estado en
movwf intcon ; puerto B e interrupcin por desbordamiento del temporizador tmr0
bsf estado,5 ; Cambio al banco 1
movlw b'10000111' ; Se ajusta divisor de frecuencia de 1:256 y
movwf opcion ; se le asigna al tmr0
bcf estado,5 ; Cambio al banco 0
movlw .100 ; Se carga el tmr0 con el mismo valor que
movwf tmr0 ; se cargo la variable deron
btfsc portb,4 ; Checa el interruptor de limitederecho. Si esta desactivado se produce salto de
instruccin
goto sigedb ; Salto a la etiqueta sigedb
bsf portd,0 ; Se active giro a la derecha
bsf portd,3 ; Se active giro hacia abajo
goto siguelo ; Salto a la etiqueta sigelo
sigedb bcf flga,4 ; Limpia bandera DB
movlw b'10001000' ; Se activa solo la interrupcin por cambio de
movwf intcon ; estado del puerto B
goto ssigelo ; Salto a la etiqueta ssigelo

tderbaj movlw .100 ; Se carga la variable deron=100 y la
movwf deron ; variable deroff=10, para modular el ancho
movlw .20 ; de los pulsos que regulan a un valor alto
movwf deroff ; la velocidad a la derecha del motor
bcf flgd,0 ; Desactiva bandera vel izq
btfsc flga,6 ; Checa bandera 3DB. Si esta desactivado se produce salto de instruccin
goto sguelo ; Salto a la etiqueta sigelo
clrf portd ; Limpia puerto D
clrf flga ; Limpia registro de banderas flga
clrf flgc ; Limpia registro de banderas flgd
bsf flgc,2 ; Activa bandera sigelo
bsf flga,6 ; Activa bandera 3DB
movlw b'10101000' ; Se activan interrupcin por cambio de estado en
movwf intcon ; puerto B e interrupcin por desbordamiento del temporizador tmr0
bsf estado,5 ; Cambio al banco 1
movlw b'10000111' ; Se ajusta divisor de frecuencia de 1:256 y
movwf opcion ; se le asigna al tmr0
bcf estado,5 ; Cambio al banco 0
movlw .100 ; Se carga el tmr0 con el mismo valor que
movwf tmr0 ; se cargo la variable deron
btfsc portb,4 ; Checa interruptor de limite derecho. Si esta desactivado se produce salto de instruccin
goto sige3db ; Salto a la etiqueta sige3db
bsf portd,0 ; Se active giro a la derecha
bsf portd,3 ; Se active giro hacia abajo
goto sguelo ; Salto a la etiqueta sigelo
sige3db bcf flga,6 ; Limpia bandera 3DB
movlw b'10001000' ; Se activa solo la interrupcion por cambio de
movwf intcon ; estado del puerto B
goto ssigelo ; Salto a la etiqueta ssigelo

tizqbaj movlw .100 ; Se carga la variable izqon=100 y la
movwf izqon ; variable izqoff=20, para modular el ancho
movlw .20 ; de los pulsos que regulan a un valor alto
movwf izqoff ; la velocidad a la izquierda del motor
bsf flgd,0 ; Activa bandera vel izq
btfsc flga,7 ; Checa bandera 3IB. Si esta desactivado se produce salto de instruccin
Diseo y construccin de una tarjeta programable Anexos
de adquisicin, procesamiento de datos y control
136
goto sguelo ; Salto a la etiqueta sigelo
clrf portd ; Limpia puerto D
clrf flga ; Limpia registro de banderas flga
clrf flgc ; Limpia registro de banderas flgc
bsf flgc,2 ; Activa bandera sigelo
bsf flga,7 ; Activa bandera 3IB
movlw b'10101000' ; Se activan interrupcin por cambio de estado en
movwf intcon ; puerto B e interrupcin por desbordamiento del temporizador tmr0
bsf estado,5 ; Cambio al banco 1
movlw b'10000111' ; Se ajusta divisor de frecuencia de 1:256 y
movwf opcion ; se le asigna al tmr0
bcf estado,5 ; Cambio al banco 0
movlw .100 ; Se carga el tmr0 con el mismo valor que
movwf tmr0 ; se cargo la variable izqon
btfsc portb,5 ; Checa interruptor de limite izquierdo. Si esta desactivado se produce salto de
instruccin
goto sige3ib ; Salto a la etiqueta sige3ib
bsf portd,1 ; Se activa giro a la izquierda
bsf portd,3 ; Se activa giro hacia abajo
goto siguelo ; Salto a la etiqueta sigelo
sige3ib bcf flga,7 ; Limpia bandera 3IB
movlw b'10001000' ; Se activa solo la interrupcion por cambio de
movwf intcon ; estado del puerto B
goto sguelo ; Salto a la etiqueta sigelo
;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
; freno de horizontal y vertical
;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
frenohv movlw .2 ; Se carga la variable cont1=2
movwf cont1 ; y la variable cont2=100 ambas
c4 movlw .100 ; se emplean para repetir el ciclo
movwf cont2 ; de activacin alternada de giros
c3 movlw b'00000101' ; Se activan simultneamente giro a
movwf portd ; la derecha y giro hacia arriba
nop ; No operacin
nop ; No operacin
nop ; No operacin
movlw .80 ; Se carga variable cont3=80
movwf cont3 ; para generan un retardo
c1 decfsz cont3,1 ; Retardo por decremento
goto c1 ; de la variable cont3
movlw b'00001010' ; Se activan simultneamente giro a
movwf portd ; la izquierda y giro hacia abajo
movlw .80 ; Se carga variable cont3=80
movwf cont3 ; para generan un retardo
c2 decfsz cont3,1 ; Retardo por decremento
goto c2 ; de la variable cont3
decfsz cont2,1 ; Decrementa el valor de la variable cont2. Si llega a cero se produce salto de
instruccin
goto c3 ; Salto a la etiqueta c3
decfsz cont1,1 ; Decrementa el valor de la variable cont1. Si llega a cero se produce salto de
instruccin
goto c4 ; Salto a la etiqueta c4
clrf portd ; Limpia Puerto D
retlw 0 ; Regreso al programa principal
;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
; freno horizontal
;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
frenoh movlw .20 ; Se carga la variable cont1=2
movwf cont1 ; y la variable cont2=100 ambas
c8 movlw .100 ; se emplean para repetir el ciclo
movwf cont2 ; de activacin alternada de giros
c7 movlw b'00000001' ; Se activa giro a
movwf portd ;la derecha
nop ; No operacin
nop ; No operacin
nop ; No operacin
movlw .80 ; Se carga variable cont3=80
movwf cont3 ; para generan un retardo
c5 decfsz cont3,1 ; Retardo por decremento
goto c5 ; de la variable cont3
movlw b'00000010' ; Se active giro a
movwf portd ; la izquierda
Diseo y construccin de una tarjeta programable Anexos
de adquisicin, procesamiento de datos y control
137
movlw .80 ; Se carga variable cont3=80
movwf cont3 ; para generan un retardo
c6 decfsz cont3,1 ; Retardo por decremento
goto c6 ; de la variable cont3
decfsz cont2,1 ; Decrementa el valor de la variable cont2. Si llega a cero se produce salto de
instruccin
goto c7 ; Salto a la etiqueta c7
decfsz cont1,1 ; Decrementa el valor de la variable cont2. Si llega a cero se produce salto de
instruccin
goto c8 ; Salto a la etiqueta c8
clrf portd ; Limpia Puerto D
retlw 0 ; Retorno a programa principal
;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
; freno vertical
;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
frenov movlw .2 ; Se carga la variable cont1=2
movwf cont1 ; y la variable cont2=100 ambas
c12 movlw .100 ; se emplean para repetir el ciclo
movwf cont2 ; de activacin alternada de giros
c11 movlw b'00000100' ; Se active giro
movwf portd ; hacia arriba
nop ; No operacin
nop ; No operacin
nop ; No operacin
movlw .80 ; Se carga variable cont3=80
movwf cont3 ; para generan un retardo
c9 decfsz cont3,1 ; Retardo por decremento
goto c9 ; de la variable cont3
movlw b'00001000' ; Se desactiva giro hacia arriba
movwf portd ; y se activa giro hacia abajo
movlw .80 ; Se carga variable cont3=80
movwf cont3 ; para generan un retardo
c10 decfsz cont3,1 ; Retardo por decremento
goto c10 ; de la variable cont3
decfsz cont2,1 ; Decrementa el valor de la variable cont2. Si llega a cero se produce salto de
instruccin
goto c11 ; Salto a la etiqueta c11
decfsz cont1,1 ; Decrementa el valor de la variable cont1. Si llega a cero se produce salto de
instruccin
goto c12 ; Salto a la etiqueta c12
clrf portd ; Limpia Puerto D
retlw 0 ; Retorno a programa principal
;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
; Rutina antirrebote
;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
norebot movlw .2 ; Se cargan las variables conta1=2, canta2=100 y conta3=100
movwf conta1 ; para generar un retardo, mayor al
c13 movlw .100 ; tiempo que duran los rebotes
movwf conta2 ; mecnicos que se presentan
c14 movlw .100 ; en accionamientos de los
movwf conta3 ; interruptores de limite
c15 decfsz conta3,1 ; Retardo por
goto c15 ; decremento de
decfsz conta2,1 ; las variables
goto c14 ; conta3,conta2 y
decfsz conta1,1 ; conta1
goto c13 ; salto a la etiqueta c13
retlw 0 ; Retorno a programa principal
;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
; Rutina de retardo de tiempo
;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
tress movlw .1 ; Se cargan las
movwf conta1 ; variables conta1=2
c23 movlw .250 ; canta2=250 y
movwf conta2 ; conta3=250
c24 movlw .250 ; para generar
movwf conta3 ; un retardo
c25 decfsz conta3,1 ; Retardo por
goto c25 ; decremento
decfsz conta2,1 ; de las variables
goto c24 ; conta3 conta2
decfsz conta1,1 ; y conta1
Diseo y construccin de una tarjeta programable Anexos
de adquisicin, procesamiento de datos y control
138
goto c23 ;
retlw 0 ; Retorno al programa principal

reposo clrf portd ; Se desactiva el puerto D
clrf intcon ; Se limpia el registro intcon (de control de interrupciones)
goto arranqe ; Salto a la etiqueta arranque (para poder iniciar nuevamente el arranque de la
planta)
end ; Fin del programa
Diseo y construccin de una tarjeta programable Anexos
de adquisicin, procesamiento de datos y control
139
Anexo D.5. Diagrama de flujo del programa de control de la cmara trmica con
control de temperatura


Diseo y construccin de una tarjeta programable Anexos
de adquisicin, procesamiento de datos y control
140
Anexo D.6. Documentacin del programa de control de la cmara trmica con
temperatura controlada
//Programa de control de CA del calefactor
//Configuracin de setpoint, Kp y Ti desde Labview.
//Comunicacin RS232 con LABVIEW
// Conexin de los actuadores a la tarjeta programable
// RD0 - Calefactor
// RC0 - Inyector
// RC1 - Actuador compuerta Inyector
// RC2 - Extractor
// RC5 - Actuador compuerta Extractor
// RA4 - Agitador
//
// Conexin de los sensores a la tarjeta programable
// RA0 - Entrada sensor temperatura
// RB0 - Entrada CA
//
#include <p18f452.h> // Se incluye librera del microcontrolador PIC18F452
#include <delays.h> // Se incluye la librera de las funciones de retardo
#include <timers.h> // Se incluye la librera de las funciones de temporizadores
#include <stdlib.h> // Se incluye la librera estndar
#include <adc.h> // Se incluye la librera del conversor anlogo/digital
#include <usart.h> // Se incluye la librera del USART
#pragma config OSC = HS // Se selecciona modo de oscilador de alta velocidad.
#pragma config BOR = OFF // Deshabilita el reinicio por bajo voltaje
#pragma config WDT = OFF // Deshabilita el perro guardin
#pragma config LVP = OFF // Deshabilita la programacin en bajo voltaje
int Kp=1,Ti=17,Ts=1,sensor=0, // Define las variables del programa y se les asigna un valor inicial
error=0,entrada=0,setpoint=400,
errora=0,contp=0,conti=0,cont=1,
limiterrora=50,pwm=0,sp=0;
unsigned int i=0;
void enfriar(void) // Subrutina para activar los elementos que disminuyen la temperatura de la
{ // cmara trmica
PORTCbits.RC1=1; //Abre la compuerta del soplador
PORTCbits.RC5=1; //Abre la compuerta del extractor
PORTCbits.RC2=1; //Enciende el extractor
PORTCbits.RC0=1; //Enciende el soplador
}

void nenfriar(void) // Subrutina que desactiva los elementos que disminuyen la temperatura de la
{ // cmara trmica
PORTCbits.RC0=0; // Apaga el soplador
PORTCbits.RC1=0; // Cierra la compuerta del soplador
PORTCbits.RC2=0; // Apaga el extractor
PORTCbits.RC5=0; // Cierra la compuerta del extractor
}

int adquisicion(void) // Subrutina del conversor AD para la lectura del sensor de temperatura
{
ConvertADC(); // Inicia la conversin
while (BusyADC()); // Espera a que la conversin finalice
PIR1bits.ADIF = 0; // Limpia la bandera de interrupcin del conversor AD
sensor = ReadADC(); // El resultado de la conversin se guarda en la variable sensor
return sensor; // Regresa al programa principal con el valor de la variable sensor
}

Diseo y construccin de una tarjeta programable Anexos
de adquisicin, procesamiento de datos y control
141
void main (void) // Inicia el programa principal
{
OpenUSART(USART_TX_INT_OFF & //Activa y configure el USART, deshabilita las
USART_RX_INT_OFF & // interrupciones por transmisin y recepcin
USART_ASYNCH_MODE & // trabaja en modo asncrono
USART_EIGHT_BIT & // dato de 8 bits
USART_CONT_RX & // recepcin continua
USART_BRGH_LOW, 19); // baja velocidad y el valor para velocidad de 9600 baudios
PORTD=0;LATD=0;TRISD=0x00; // Inicializa en 0 el puerto D y se configura como salida
PORTB=0;LATB=0;TRISB=0xFF; // Inicializa en 0 el puerto B y se configura como entrada
INTCON=0x00; // Deshabilita las interrupciones
PORTA=0;LATA=0;TRISA=0xEF; // Inicializa en 0 el puerto A y lo configura como entrada
INTCON2=0xC0; // Genera interrupcin cada flanco ascendente en RB0
OpenADC(ADC_FOSC_RC & // Selecciona el oscilador interno RC para la conversin
ADC_RIGHT_JUST & // Justifica el resultado a la derecha
ADC_5ANA_0REF, // Configura el puerto A para 5 entradas analgicas
ADC_CH0 & ADC_INT_OFF); // Selecciona el canal 0 como entrada al conversor y
//deshabilita las interrupciones
PORTAbits.RA4=1; // Enciende el agitador de aire
Delay10KTCYx(0);Delay10KTCYx(0); // Retardo de tiempo antes de empezar la configuracin
nenfriar(); // Llamada a la subrutina para desactivar soplador, extractor y compuertas
while (!DataRdyUSART()); // Espera la recepcin de un dato por RS232
sp=ReadUSART(); // Guarda el dato recibido en la variable sp
setpoint=10*sp; // Guarda en la variable setpoint el valor de 10 veces sp
while (!DataRdyUSART()); // Espera la recepcin de un dato por RS232
Kp=ReadUSART(); // Guarda el dato recibido en la variable Kp
while (!DataRdyUSART()); // Espera la recepcin de un dato por RS232
Ti=ReadUSART(); // Guarda el dato recibido en la variable Ti
while(1) // Comienza el ciclo infinito de control de la cmara trmica
{
adquisicion(); // Se lee el sensor de temperatura
WriteUSART(sensor); // Este valor es enviado a la computadora para graficarlo
entrada=5*sensor; // Se multiplica por 5y se guarda en la variable entrada
if (entrada<setpoint) // Si la variable entrada es mayor que el setpoint,
{ // se calcula la accin de control
error=setpoint-entrada; // Clculo del error
errora=errora+error; // Clculo del error acumulado
if(errora>limiterrora) // Se verifica que el error acumulado no sea demasiado
{ // grande para que la accin integral de control
errora=80; // no aumente demasiado despus de mucho tiempo
}
if(Ti==0) // Si la variable Ti es cero, no se considera
{ // la parte integral de control y
conti=0; // solo funcionara como controlador proporcional
}
Else // en caso contrario que la variable Ti tenga un valor
{ // distinto de cero, se calcula la accin
conti=errora/Ti; // integral de control
}
cont=Kp*(error+conti); // Se calcula la seal de control
if (cont>225) // y es limitada a un valor mximo
{
cont=225; // para el corte de onda
}
pwm=235-cont; // Se calcula el tiempo de corte de onda segn la seal de control
nenfriar(); // Se desactivan el soplador, el extractor y las compuertas
i=0; // se inicializa la variable I con un valor de 0
while(i<120) // para generar la seal de corte de onda durante un segundo
Diseo y construccin de una tarjeta programable Anexos
de adquisicin, procesamiento de datos y control
142
{
while(!INTCONbits.INT0IF); //se espera el flanco de subida del detector de cruce por cero
INTCONbits.INT0IF=0; //Se limpia la bandera de interrupcin externa
Delay100TCYx(15); // Retardo fijo de 0.6 ms
Delay100TCYx(pwm); // Se aplica el retardo para el corte del semiciclo
PORTDbits.RD0=1; // Se dispara el triac con un
Delay10TCYx(68); // ancho de pulso de disparo = 226 useg
PORTDbits.RD0=0;
i++; // se incrementa el valor de la variable i en 1
INTCONbits.INT0IF=0; //Se limpia la bandera de interrupcin externa
}
}
if (entrada>=setpoint) // Si el valor de la variable entrada es mayor o igual al
{ // valor de setpoint
enfriar(); // se activan el soplador, el extractor y las compuertas
PORTDbits.RD0=0; // se asegura que no se active el triac
Delay10KTCYx(150); // y se espera un segundo para el siguiente
Delay10KTCYx(150); // muestreo
}
}
} // Fin del programa


Diseo y construccin de una tarjeta programable Anexos
de adquisicin, procesamiento de datos y control
143

Anexo D.7. Programa de configuracin y monitoreo de la cmara trmica

El programa utilizado para la configuracin y monitoreo de la cmara trmica esta
realizado en LabView. LabView utiliza un lenguaje grfico de programacin. En la figura
D.1 se muestra el panel frontal del instrumento virtual.


Figura D.1 Panel frontal.

Los controles e indicadores utilizados en el panel frontal estn representados por iconos con
los que el programa identifica el tipo de variable de cada uno. En la tabla D.1 se muestran
las variables, su icono y tipo de variable.

Tabla D.1 Variables del programa de configuracin y monitoreo.
Icono Nombre de la variable Tipo de variable

PARO Booleana

SETPOINT Entera, sin signo, de 8 bits

Kp Entera, sin signo, de 8 bits

Ti Entera, sin signo, de 8 bits

LISTO Booleana

ERROR DE CONFIGURACIN Booleana

ERROR DE ACCESO DEL PUERTO Booleana

rea de grfica Doble

LEYENDO Booleana


Diseo y construccin de una tarjeta programable Anexos
de adquisicin, procesamiento de datos y control
144

En las siguientes figuras se muestran los bloques que forman el programa de monitoreo y
control de la cmara trmica.



Figura D.2 Bloque 1 de 4 del programa de monitoreo y control.


Figura D.3 Bloque 2 de 4 del programa de monitoreo y control.



Figura D.4 Bloque 3 de 4 y sub-bloque 1 de 3 del programa de monitoreo y control.


Diseo y construccin de una tarjeta programable Anexos
de adquisicin, procesamiento de datos y control
145

Figura D.5 Sub-bloque 2 de 3 del programa de monitoreo y control.


Figura D.6 Sub-bloque 3 de 3 del programa de monitoreo y control.



Figura D.7 Bloque 4 de 4 del programa de monitoreo y control.

Diseo y construccin de una tarjeta programable Anexos
de adquisicin, procesamiento de datos y control
146
Anexo E. Lista de componentes

Los componentes fueron cotizados para compra por mayoreo y menudeo en la tienda
electrnica Steren. En las tablas E.1, E.2, E.3 y E.4 se muestra la lista de componentes
detallada por cada tarjeta electrnica.

Tabla E.1 Lista de componentes de la tarjeta principal
Cantidad Descripcin No. Ref. Especificacin
P. U.
May.
Subtotal
May.
P. U.
Men.
Subtotal
Men.
1 Regulador U9 7805 $2.70 $2.70 $6.00 $6.00
1 Regulador U6 7815 $2.70 $2.70 $6.00 $6.00
1 Regulador U1 7915 $2.90 $2.90 $7.00 $7.00
2 Capacitor electroltico C33, C35 1000 uF / 50V $3.60 $7.20 $8.00 $16.00
7 Capacitor cermico
C29-C32,
C42-C44
100 nF $0.20 $1.40 $2.00 $14.00
6 Capacitor electroltico
C34, C37-
C41
100 uF / 50 V $0.55 $3.30 $3.00 $18.00
1 Capacitor electroltico C36 100 uF / 100 V $0.80 $0.80 $4.00 $4.00
3 LED D6-D8 Rojo $0.30 $0.90 $2.00 $6.00
3 Resistencia
R43-R44,
R46
470 $0.03 $0.09 $0.50 $1.50
2 Bobina L1, L2 $0.00 $0.00 $0.00 $0.00
1 Fusible F1 $0.00 $0.00 $0.00 $0.00
1 Diodo D4 1N4148 $0.20 $0.20 $1.00 $1.00
1
Tira doble en ngulo
(peine)
JP4 14 $0.03 $0.42 $0.20 $2.80
1
Tira sencilla en ngulo
(peine)
J32 2 $0.03 $0.06 $0.20 $0.40
1
Tira sencilla en ngulo
(peine)
J27 3 $0.03 $0.09 $0.20 $0.60
1 Buffer U2 74HC245 $4.60 $4.60 $10.00 $10.00
1 Base C.I. U2 20 pines $0.45 $0.45 $3.00 $3.00
42 Resistencia
R22-R27,
R42
47 K $0.03 $1.26 $0.50 $21.00
21 Tira sencilla (peine) J1 J21 3 $0.03 $1.89 $0.20 $12.60
21 Resistencia R1 R18 470 $0.03 $0.63 $0.50 $10.50
1 Resistencia R21 10 K $0.03 $0.03 $0.50 $0.50
1 Capacitor cermico C28 100 nF $0.20 $0.20 $2.00 $2.00
1 Tira sencilla (peine) J26 2 $0.03 $0.06 $0.20 $0.40
8
Tira sencilla en ngulo
(peine)
J38-J45 4 $0.03 $0.96 $0.20 $6.40
8 Resistencia R47 220 $0.03 $0.24 $0.50 $4.00
1 Amplificador operacional U7 MCP6044 $18.50 $18.50 $18.50 $18.50
1 Base C.I. U7 14 pines $0.30 $0.30 $2.00 $2.00
4 Resistencia
R35, R38-
R40
470 $0.03 $0.12 $0.50 $2.00
4 Resistencia R41 47 K $0.03 $0.12 $0.50 $2.00
4 Resistencia
R29, R31,
R36, R37
2.2 K $0.03 $0.12 $0.50 $2.00
2 Capacitor cermico C21, C25 10 nF $0.15 $0.30 $2.00 $4.00
2 Capacitor cermico C22, C26 22 nF $0.15 $0.30 $2.00 $4.00
Diseo y construccin de una tarjeta programable Anexos
de adquisicin, procesamiento de datos y control
147
Cantidad Descripcin No. Ref. Especificacin
P. U.
May.
Subtotal
May.
P. U.
Men.
Subtotal
Men.
4
Tira sencilla en ngulo
(peine)
J22-J25 3 $0.03 $0.36 $0.20 $2.40
1
Tira doble en ngulo
(peine)
JP5 14 $0.03 $0.42 $0.20 $2.80
1 Resistencia R20 820 $0.03 $0.03 $0.50 $0.50
1 Resistencia R19 10 K $0.03 $0.03 $0.50 $0.50
1 LCD LCD 2x16 $300.00 $300.00 $300.00 $300.00
1 Circuito integrado U3 MAX232 $7.90 $7.90 $15.00 $15.00
1 Base C.I. U3 18 pines $0.40 $0.40 $3.00 $3.00
5 Capacitor de tantalio C1-C5 10 uF / 25 V $4.80 $24.00 $11.00 $55.00
1 Capacitor electroltico C7 100 uF / 25 V $0.30 $0.30 $2.00 $2.00
1 Diodo D2 1N4148 $0.20 $0.20 $1.00 $1.00
1 Diodo zener D3 5.1 v $0.40 $0.40 $3.00 $3.00
1
Conector DB9 hembra
para circuito impreso
P1 $2.90 $2.90 $9.00 $9.00
2 Memoria EEPROM U8, U10 24FC512 $42.16 $84.32 $42.16 $84.32
2 Base C.I. U8, U10 8 pines $0.25 $0.50 $2.00 $4.00
2 DIPSwitch SW3, SW5 3 $2.20 $4.40 $5.00 $10.00
10 Resistencia R45, R48 4.7 K $0.03 $0.30 $0.50 $5.00
2 Capacitor cermico C27, C50 100 nF $0.20 $0.40 $2.00 $4.00
1 Tira sencilla (peine) J47 2 $0.03 $0.06 $0.20 $0.40
2 Tira sencilla (peine) J29, J31 3 $0.03 $0.18 $0.20 $1.20
2 Driver U4, U5 L293D $35.00 $70.00 $35.00 $70.00
2 Base C.I. U4, U5 16 pines $0.35 $0.70 $2.00 $4.00
4 Resistencia R34 10 K $0.03 $0.12 $0.50 $2.00
1 DIPSwitch SW4 4 $2.20 $2.20 $5.00 $5.00
16 Capacitor cermico
C8-C20,
C45-C47
100 nF $0.20 $3.20 $2.00 $32.00
2 Capacitor electroltico C23, C24 100 uF / 25 V $0.30 $0.60 $2.00 $4.00
2 Tira sencilla (peine) J35, J36 3 $0.03 $0.18 $0.20 $1.20
2 Tira sencilla (peine) J33, J34 5 $0.03 $0.30 $0.20 $2.00
1
Tira doble en ngulo
(peine)
JP1 40 $0.03 $1.20 $0.20 $8.00
1
Tira doble en ngulo
(peine)
JP2 36 $0.03 $1.08 $0.20 $7.20
1
Tira doble en ngulo
(peine)
JP4 14 $0.03 $0.42 $0.20 $2.80
1 Placa fenlica doble cara PF
12 cm x 19.5 cm
(15x20)
$22.00 $22.00 $40.00 $40.00

Subtotal
May.
$ 581.94
Subtotal
Men.
$ 869.52


Diseo y construccin de una tarjeta programable Anexos
de adquisicin, procesamiento de datos y control
148

Tabla E.2 Lista de componentes de la tarjeta de procesamiento
Cantidad Descripcin No. Ref. Especificacin
P. U.
May.
Subtotal
May.
P. U.
Men.
Subtotal
Men.
1 Microcontrolador U1 PIC18F452 $104.00 $104.00 $104.00 $104.00
1 Base C.I. U1 40 pines $0.90 $0.90 $4.00 $4.00
1 Cristal de cuarzo XTL 12 MHz $5.70 $5.70 $13.00 $13.00
1 Pulsador SW1
Normalmente
abierto
$0.40 $0.40 $3.00 $3.00
1 Resistencia R21 100 $0.03 $0.03 $0.50 $0.50
1 Resistencia R23 10 K $0.03 $0.03 $0.50 $0.50
3
Capacitor
cermico
C1-C3 100 nF $0.20 $0.60 $2.00 $6.00
2
Capacitor
cermico
C4-C5 22 pF $0.20 $0.40 $2.00 $4.00
1
Capacitor
electroltico
C6 10 uF / 25 V $0.25 $0.25 $2.00 $2.00
1
Tira doble en
ngulo (peine)
JP1 40 $0.03 $1.20 $0.20 $8.00
1
Placa fenlica
doble cara
PF
5.5 cm x 8 cm
(10x10)
$7.10 $7.10 $13.00 $13.00

Subtotal
May.
$ 113.51
Subtotal
Men.
$ 869.52


Tabla E.3 Lista de componentes de la tarjeta de E/S de 4-20 mA
Cantidad Descripcin No. Ref. Especificacin
P. U.
May.
Subtotal
May.
P. U.
Men.
Subtotal
Men.
1
Conversor digital-
analgico
U2 DAC0808 $16.50 $16.50 $29.00 $29.00
1 Base C.I. U2 18 pines $0.40 $0.40 $3.00 $3.00
1
Amplificador
operacional
U4 LF351 $5.00 $5.00 $5.00 $5.00
1 Base C.I. U4 8 pines $0.25 $0.25 $2.00 $2.00
1 Transmisor 4-20 mA J2 XTR110 $130.00 $130.00 $130.00 $130.00
1 Receptor 4-20 mA J4 RCV420 $78.00 $78.00 $78.00 $78.00
2 Base C.I. J2, J4 16 pines $0.35 $0.70 $2.00 $4.00
1 Transistor FET Q1 MTP2955 $7.80 $7.80 $14.00 $14.00
1 Resistencia R4 1 K $0.03 $0.03 $0.50 $0.50
2 Resistencia R2, R3 3.3 K $0.03 $0.06 $0.50 $1.00
1 Trimpot R6 10 K $17.00 $17.00 $31.00 $31.00
1
Capacitor
electroltico
C1 1 uF $0.25 $0.25 $2.00 $2.00
1 Capacitor cermico C2 33 pF $0.20 $0.20 $2.00 $2.00
2 Tira sencilla (peine) J1, J5 2 $0.03 $0.12 $0.20 $0.80
1
Tira doble en ngulo
(peine)
J8 14 $0.03 $0.42 $0.20 $2.80
1
Placa fenlica una
cara

5.5 cm x 6.5 cm
(10x10)
$4.40 $4.40 $10.00 $10.00

Subtotal
May.
$ 261.13
Subtotal
Men.
$ 315.10

Diseo y construccin de una tarjeta programable Anexos
de adquisicin, procesamiento de datos y control
149

Tabla E.4 Lista de componentes de la tarjeta de aplicacin
Cantidad Descripcin No. Ref. Especificacin
P. U.
May.
Subtotal
May.
P. U.
Men.
Subtotal
Men.
27 LED D1-D27 Rojo $0.30 $8.10 $2.00 $54.00
18 Botn pulsador SW3-SW20 SW $0.40 $7.20 $3.00 $54.00
1 Circuito integrado U2 74LS48 $9.30 $9.30 $17.00 $17.00
2 Base C.I. U2,U3 16 pines $0.35 $0.70 $2.00 $4.00
5
Pantalla de 7
segmentos
JP1-JP5 DC05 $4.00 $20.00 $9.00 $45.00
3 Trimpot R1,R2,R9 10 K $17.00 $51.00 $31.00 $93.00
1 LDR R5 LDR $2.20 $2.20 $2.20 $2.20
1 Sensor LM35 U1 TO92 $25.00 $25.00 $25.00 $25.00
5 Transistor Q1-Q5 2N3904 $0.40 $2.00 $3.00 $15.00
1
Capacitor
electroltico
C4 47uF 16V $0.25 $0.25 $2.00 $2.00
2 Capacitor cermico C3-C5 100 nF $0.20 $0.40 $2.00 $4.00
4
Tira sencilla en
ngulo (peine)
J1-J4 3 $0.03 $0.36 $0.20 $2.40
1 Tira doble (peine) JP6 36 $0.03 $1.08 $0.20 $7.20
1
Placa fenlica doble
cara

9.5 cm x 14.5
cm (10x20)
$15.00 $15.00 $27.00 $27.00

Subtotal
May.
$ 142.59
Subtotal
Men.
$ 351.80




En la tabla E.5 se muestra concentrado el subtotal por cada tarjeta y el costo total de los
componentes por mayoreo y menudeo.


Tabla E.5 Costo total de la tarjeta programable
Total Mayoreo Menudeo
Subtotal tarjeta principal $581.94 $869.52
Subtotal tarjeta procesamiento $113.51 $158.00
Subtotal tarjeta 4-20 mA $261.13 $315.10
Subtotal tarjeta de aplicacin $142.59 $351.80
Costo total de componentes $1,099.17 $1,694.42

Anda mungkin juga menyukai