Está en la página 1de 161

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
tratamiento de la informacin y control
comerciales que permiten realizar una o
componente como tarjetas de adquisicin
(PLCs).

3 fases: adquisicin de datos, procesamiento o


de elementos actuadores. Existen alternativas
todas las fases de automatizacin en un solo
de datos o controladores lgicos programables

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.

CONTENIDO
LISTA DE FIGURAS ...........................................................................................................iv
LISTA DE TABLAS .............................................................................................................vi
ACRONIMOS Y SIGLAS ...................................................................................................vii
NOMENCLATURA...............................................................................................................x
Captulo 1. Introduccin.......................................................................................................1
1.1.
1.2.
1.3.
1.3.1.
1.3.2.
1.3.3.
1.3.4.
1.4.
1.4.1.
1.4.2.
1.4.3.
1.5.

Antecedentes......................................................................................................2
Descripcin del problema..................................................................................2
Estado del arte de sistemas de adquisicin, procesamiento de datos y control
de procesos ........................................................................................................3
Transductores y sensores ...................................................................................3
Acondicionadores de seales.............................................................................4
Mdulos de adquisicin de datos ......................................................................4
Controladores ....................................................................................................7
Propuesta de solucin ........................................................................................9
Objetivos............................................................................................................9
Metodologa de solucin ...................................................................................9
Aportacin o contribucin ...............................................................................10
Organizacin de la tesis...................................................................................10

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


2.1.
2.2.
2.2.1.
2.2.2.
2.2.3.
2.3.
2.4.
2.4.1.
2.4.2.
2.4.3.
2.5.
2.5.1.
2.5.2.
2.6.

Recursos requeridos por plantas o procesos ....................................................12


Microcontroladores y controladores de seal digital.......................................12
Microcontroladores..........................................................................................12
Controladores de seal digital .........................................................................18
Herramientas de desarrollo..............................................................................21
Proceso de seleccin del microcontrolador con el que opera la tarjeta
programable .....................................................................................................22
Tiempo de procesamiento del microcontrolador del PIC18F452....................26
Temporizadores del microcontrolador.............................................................27
Modulacin de ancho de pulso generada por el microcontrolador..................28
Tiempo de conversin del conversor anlogo/digital......................................29
Interfases de comunicacin ............................................................................31
Interfaz de comunicacin entre tarjetas ...........................................................32
Interfaz de comunicacin entre la tarjeta y la computadora............................32
Descripcin de la tarjeta programable de adquisicin, procesamiento de datos
y control...........................................................................................................33

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


3.1.
3.2.

Descripcin a bloques de la tarjeta programable.............................................35


Diagramas esquemticos electrnicos de la tarjeta programable ....................36

3.3.
3.4.

Diagramas esquemticos electrnicos de la tarjeta de aplicacin ...................44


Diseo de las tarjetas de circuito impreso .......................................................45

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


4.1.
4.2.
4.2.1.
4.2.2.
4.2.3.
4.2.4.
4.2.5.
4.2.6.
4.2.7.

Construccin de las tarjetas electrnicas .........................................................48


Emulacin funcional de los mdulos de la tarjeta programable......................50
Prueba de E/S digitales ....................................................................................51
Prueba de entradas analgicas .........................................................................51
Prueba de potencia para motores .....................................................................52
Prueba de la pantalla de cristal lquido (LCD) ................................................53
Prueba de comunicacin con la PC .................................................................53
Prueba de memorias EEPROM .......................................................................54
Prueba de E/S de 4-20 mA ..............................................................................55

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


5.1.
5.2.
5.2.1.
5.2.2.
5.2.3.
5.2.4.
5.2.5.
5.3.
5.3.1.
5.3.2.
5.3.3.
5.3.4.
5.3.5.
5.4.
5.4.1.
5.4.2.
5.4.3.
5.4.4.
5.4.5.

Descripcin de plantas a controlar...................................................................59


Robot mvil seguidor de lnea.........................................................................60
Objetivo ...........................................................................................................60
Requerimientos de la planta ............................................................................60
Diseo mecnico .............................................................................................60
Diseo elctrico del robot mvil .....................................................................61
Algoritmo de control .......................................................................................62
Modelo a escala de una plataforma de seguimiento solar ...............................63
Objetivo ...........................................................................................................63
Requerimientos de la planta ............................................................................63
Diseo mecnico .............................................................................................65
Diseo elctrico del modelo a escala de la plataforma de seguimiento solar..66
Algoritmo de control .......................................................................................68
Cmara trmica con temperatura controlada ...................................................70
Objetivo ...........................................................................................................70
Diseo mecnico .............................................................................................70
Diseo elctrico de la cmara trmica.............................................................71
Requerimientos de la planta ............................................................................72
Algoritmo de control .......................................................................................73

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


6.1.
6.2.
6.3.

Pruebas y resultados de la tarjeta programable con el robot mvil seguidor de


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

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

7.1.
7.2.

Conclusiones....................................................................................................84
Trabajos futuros...............................................................................................85

REFERENCIAS ...................................................................................................................86
Anexo A.
Anexo B.
Anexo C.
Anexo D.
Anexo E.

Circuitos esquemticos de la tarjeta programable ...........................................88


Diseos de placas de circuito impreso.............................................................92
Programas de prueba de la tarjeta programable.............................................104
Documentacin de los programas de control de las plantas..........................113
Lista de componentes ....................................................................................146

iii

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 I2C. ...................................... 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

iv

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
Figura
Figura
Figura

A.1 Circuito esquemtico de tarjeta principal.......................................................... 88


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

Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura

B.1 Diseo de la cara superior de la tarjeta principal. ............................................. 92


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

Figura
Figura
Figura
Figura
Figura
Figura
Figura

D.1 Panel frontal. ................................................................................................... 143


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

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
Tabla
Tabla
Tabla
Tabla
Tabla

2.1 Recursos requeridos por plantas o procesos........................................................ 12


2.2 Caractersticas tcnicas de los microcontroladores. ............................................ 14
2.3 Comparacin de familia de controladores C2000. .............................................. 19
2.4 Comparacin entre el PIC18F452 y el dsPIC30F. .............................................. 25
2.5 Seleccin de capacitores...................................................................................... 26
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

vi

ACRONIMOS Y SIGLAS
A/D
ADC
ADCON0
ADCON1
ADFM
ADRESH
ADRESL
bms
CA
CAN
CCP1
CCP1CON
CCPR1L
CD
CMOS
COP8
CP
CPU
D/A
DAC
DIP
DSC
DSP
E/S
EEPROM
EIA
FFT
gcc
GNU
GPIB
HCMOS
ICD
ICE
IDE
IEEE
IIC o I2C

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

vii

IrDA
ISA
ISP
kHz
LCD
LED
LPT
mA
MHz
MIDI
MIMO
MIPS
MN
MOSFET
nF
PC
PCI
PCMCIA
PDA
pF
PI
PIC
PLC
PLCC
PR2
PWM
RAM
RC
RISC
ROM
SCI
SCL
SD
SDA
SISO
spbrg
SPI
T2CON
TI
TIA

Infrared Data Association


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

TOSC
TTL
C
F
UPS
s
USART
USB
VCD
Wi-Fi

Tiempo de oscilacin
Transistor-transistor logic (Lgica transistor-transistor)
Microcontrolador
Microfaradio
Uninterruptible power supply (Fuente de poder ininterrrumpible)
Microsegundo
Universal synchronous/asynchronous receiver transmitter (Transmisorreceptor universal sncrono/asncrono)
Universal Serial Bus (Bus serie universal)
Volts corriente directa
Wireless Fidelity (Fidelidad inalmbrica)

ix

NOMENCLATURA
C
CPIN
CRETEN
E(n)
E(t)
F
fc
FOSC
hFE
IB
IB(max)
IB(sat)
IC(max)
IC(sat)
If
IFUGA
Imax
KI
KP
RIC
R
Rs
Rss
SS
TACQ
TAMP
TC
TCOFF
TI
VAIN
VBE(on)
VCC
VCE(on)
VCE(sat)
VDD
Vef
Vf
Vinst
Vp
VT
tmax
c

Capacitor
Capacitancia de entrada
Capacitancia de muestreo y retencin del DAC
Error en tiempo discreto
Error en tiempo continuo
Frecuencia
Frecuencia de corte
Frecuencia de oscilador
Ganancia de corriente
Corriente de base
Corriente mxima de base
Corriente de base cuando el transistor esta en saturacin
Corriente mxima de colector
Corriente de colector cuando el transistor esta en saturacin
Corriente del fotodiodo en polarizacin directa
Corriente de fuga en la terminal debido a varias conexiones
Corriente mxima
Ganancia integral
Ganancia proporcional
Resistencia de interconexin
Resistencia
Impedancia de la fuente
Impedancia del interruptor interno de muestreo
Interruptor de muestreo
Tiempo mnimo de adquisicin
Tiempo de establecimiento del amplificador
Tiempo de carga del capacitor de retencin
Coeficiente de temperatura
Voltaje analgico de entrada
Voltaje entre base y emisor cuando el transistor esta en funcionamiento
Voltaje de alimentacin
Voltaje entre colector y emisor cuando el transistor esta en funcionamiento
Voltaje entre colector y emisor cuando el transistor esta en saturacin
Voltaje del dispositivo
Voltaje eficaz
Voltaje de diodo en polarizacin directa
Voltaje instantaneo
Voltaje pico
Voltaje de umbral
Aumento mximo de temperatura
Frecuencia de corte

Diseo y construccin de una tarjeta programable


de adquisicin, procesamiento de datos y control

Captulo 1. Introduccin

CAPTULO 1. INTRODUCCIN

Diseo y construccin de una tarjeta programable


de adquisicin, procesamiento de datos y control

1.1.

Captulo 1. Introduccin

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


de adquisicin, procesamiento de datos y control

1.3.

Captulo 1. Introduccin

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:

1.3.1.

Transductores y sensores
Acondicionadores de seal
Mdulo de adquisicin de datos
Controlador (controlador lgico programable o PLC, computadora, asistente digital
personal, microcontrolador)
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


de adquisicin, procesamiento de datos y control

Captulo 1. Introduccin

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:

1.3.2.

Resistencia variable.
Sensor de temperatura.
Fotorresistencia. (Mide la intensidad de la luz)
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.

Seales de
entrada
Acondicionamiento
de seales
Seales de
salida

Seales
enviadas a
la
PC
Seales
recibidas
desde la
PC

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.

Diseo y construccin de una tarjeta programable


de adquisicin, procesamiento de datos y control

Captulo 1. Introduccin

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.

Acondicio
namiento
de
seales de
entrada

Opto
acopla
dores

Controlador
interno

Opto
acopla
dores

Seales de
salida

Seales
enviadas a
la
PC
Seales
recibidas
desde la
PC

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
Tipo de entradas/salidas
Resolucin
Intervalo
Frecuencia de muestreo
Puerto de conexin

Cantidad de entradas/salidas disponibles.


La seal que procesa puede ser analgica o digital.
Valor mnimo que puede identificarse de una seal
analgica.
Los niveles de voltaje o corriente permitidos en la
entrada/salida.
La cantidad de muestras adquiridas en un segundo.
El puerto por el que la tarjeta se conecta a la PC o a otra
tarjeta.
5

1 a 20
2
12
12
0a5

$2,700
National
Instruments

8
12
10,000
1 a 20
2
12
12
0a5
USB
$1,600
National
Instruments

Entradas analgicas

Resolucin de entrada
(bits)

Frecuencia de muestreo
(muestras /segundo)

Intervalo de entrada (V)

Salidas analgicas

Resolucin de salida
(bits)

E/S digitales

Intervalo de salida (V)

Puerto de comunicacin
con PC

Precio (pesos mexicanos)

T.P. Tarjeta programable


-- No tiene

Fabricante

48,000

--

Memoria de datos

USB

14

--

--

--

Memoria de programa
(KBytes)

USB

USB

USB-6009

Voltaje de alimentacin
(V)

USB-6008

Data
Translation

$1,600

USB

0a5

20

--

--

0 a 2.44

25,000

10

--

--

USB

DT9810

DATAQ
Instruments

$300

RS232

--

--

--

--

10

240

10

--

--

RS232

DI-194RS

$1,100

USB

0a5

12

10

14,400

12

--

--

USB

DI-158

$550

USB

0a5

--

--

10

14,400

10

--

--

USB

DI-148U

DATAQ
DATAQ
DATAQ
Instruments Instruments Instruments

$1,650

RS232

--

--

--

--

10

240

12

--

--

RS232

DI-154RS

DATAQ
Instruments

$5400 a
$8700

USB/E
THERNET

0a5

--

--

10

4,800

14

16

Tarjeta SD
removible
1MB 1GB

--

9-36

DI710

Diseo y construccin de una tarjeta programable


de adquisicin, procesamiento de datos y control
Captulo 1. Introduccin

En la tabla 1.2 se muestran algunas tarjetas comerciales de adquisicin de datos.


Tabla 1.2 Sistemas comerciales de adquisicin de datos.

Diseo y construccin de una tarjeta programable


de adquisicin, procesamiento de datos y control

1.3.4.

Captulo 1. Introduccin

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


de adquisicin, procesamiento de datos y control

Captulo 1. Introduccin

Tabla 1.3 Comparacin de puertos de comunicacin. [1]

Puerto

Formato

Nmero
Longitud
mximo de mxima
dispositivos
(m)

Velocidad
mxima
(bits/s)

Aplicacin tpica

3-9

8M

Impresoras,
escaners, unidades
de disco

15

18

8M

Instrumentacin

15-30

20k (115k con


hardware
extra)

Modem, ratn,
instrumentacin

15

Microwire Serial sncrono

SPI

Serial sncrono

I2C

Serial sncrono

40

5.5

USB

Serial
asncrono

127

Serial
asncrono

32 cargas
unitarias

1220

LPT

Paralelo

IEEE-488
Paralelo
(GPIB)
RS-232
Serial
(EIA/TIAasncrono
232
Lazo de
MIDI
corriente serial

RS485
(TIA/EIA485)
Ethernet
IEEE1394
(FireWire)

Serial

1024

490

Serial

64

4.5

IrDA

Serial
asncrono
infrarrojo

1.8

Bluetooth

Serial
radiofrecuencia

32

10

Wi-Fi
(IEEE
802.11x)

Serial
radiofrecuencia

60

Msica, control de
espectculos
Comunicacin
2M
entre
microcontroladores
Comunicacin
2.1M
entre
microcontroladores
Comunicacin
3.4M
entre
microcontroladores
Ratn, unidad de
1.5M, 12M,
disco, modem,
480M
audio
Sistemas de
10M
adquisicin de
datos y de control
10M/100M/1G PC en red
Video,
400M
almacenamiento
masivo
Impresoras,
115k
asistente digital
personal (PDA)
Telfonos
723k
celulares, PDAs,
videocmara
31.5k

11M, 54M

PC en red

Diseo y construccin de una tarjeta programable


de adquisicin, procesamiento de datos y control

1.4.

Captulo 1. Introduccin

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


de adquisicin, procesamiento de datos y control

Captulo 1. Introduccin

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.
10

Diseo y construccin de una tarjeta programable


de adquisicin, procesamiento de datos y control

Captulo 2. Determinacin de las caractersticas


funcionales de la tarjeta programable

CAPTULO 2. DETERMINACIN DE LAS


CARACTERSTICAS FUNCIONALES DE
LA TARJETA PROGRAMABLE

11

Diseo y construccin de una tarjeta programable


de adquisicin, procesamiento de datos y control

2.1.

Captulo 2. Determinacin de las caractersticas


funcionales de la tarjeta programable

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
Tipo de proceso
Analgicas
Entradas
Digitales
Digitales
Motor paso
Salidas a paso
Motor CD
(PWM)
Tiempo de respuesta
requerido (segundos)
Precisin en entradas
analgicas
Memoria de programa
(Bytes)

Incubadora

Banda
transportadora

Microbot

Plataforma de
paneles solares

Brazo
robtico

SISO
1
1

MIMO
2
-

MIMO
3
3
-

MIMO
13
-

MIMO
8
-

0.5

0.5

1E-05

1E-06

1%

0.5 %

90

150

300

1500

6000

8000

Valor
mximo
+ 10%
4
14
1

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.
12

Diseo y construccin de una tarjeta programable


de adquisicin, procesamiento de datos y control

Captulo 2. Determinacin de las caractersticas


funcionales de la tarjeta programable

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 I2C),
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.

13

90
11

35

13

14
PDIP 28
terminales

PDIP 18
terminales

400 ns

MPLAB

$ 63.00

AG
electrnica

Encapsulado

Tiempo de ciclo
de instruccin

Compiladores

Herramienta de
programacin

Costo C

Proveedor

Informacin

Experiencia de
los tesistas

8 canales de
10 bits
PDIP 40
terminales

5 canales de
8 bits
DIP 16
terminales

--

--

Mouser
.com

$ 23.50

AG
electrnica

$ 78.00

MPLAB

-- Ninguna

Ensamblado
r

2.0 5.5 V

2.4 5.5 V

200 ns

2 de 8 bits
1 de 16 bits

33

35

256

368

8K

20 MHz

Microchip
PIC16F877

1 de 8 bits
1 de 12 bits

5 de 13

13

63

128

128

1K

16 MHz

ST
ST7Lite 0

Cambio de dlar = $ 10.30. Precios sin IVA

Niveles:

--

--

Mouser
.com

$ 16.50

AVRStudio

250 ns

2.7 5.5 V

2.0 6.0 V

1 de 8 bits

1 de 8 bits

ADC bits

Contador/
temporizador
Voltaje de
operacin

64

Terminales S

68

2K

1K

4 MHz

Atmel
ATtiny28

10 MHz

Microchip
PIC16F84

Terminales E

Mxima
frecuencia de
operacin
Memoria de
programa
Memoria de
datos
Memoria
EEPROM
Juego de
instrucciones
Terminales ES
programables

Caractersticas

--

--

--

--

AG
electrnica

$ 251.00

MPLAB

--

Microchip
.com

$ 142.00

MPLAB

33.3 50 ns

8 canales de
12 bits
DIP 18 28
40

4.5 5.5 V

3 de 16 bits

20 - 30

84

1K

1K2K

12 K - 48 K

20-30 MHz

Microchip
dsPIC30F

Regular

8 canales de 8
bits
TQFP 44
terminales

4.35 5.25 V

2 de 8 bits
1 de 16 bits

33

35

256

8K

24 MHz

Microchip
PIC16C765

Bajo

Mouser.com

AVRStudio

160 ns

8 canales de
10 bits
TQFP 64
terminales

4.0 5.5 V

2 de 8 bits
1 de 16 bits

32

121

4K

4K

128 K

6MHz

Atmel
ATmega103

--

--

--

--

AG
electrnica

$ 287.00

MCUez

Ensamblador

8 canales de
10 bits
QFP 80
terminales

-0.3 6.5 V

63

110

768

1K

32 K

8 MHz

Motorola
MC68HC12

Alto

AG electrnica

$ 136.00

MCUez

Ensamblador

8 canales de 8
bits
QFP 64
terminales

-0.3 7 V

1 de 8 bits

38

145

512

8K

256

3 MHz

Motorola
MC68HC11A8

--

--

AG electrnica

$ 267.00

Code Composer
Studio

25 ns

16 canales de 10
bits
PGE 144
terminales

3.3 V

2 de 16 bits

41

2.5 K

32 K

40 MHz

TI (DSP)
TMS320LF2407

Diseo y construccin de una tarjeta programable


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

Tabla 2.2 Caractersticas tcnicas de los microcontroladores.

Diseo y construccin de una tarjeta programable


de adquisicin, procesamiento de datos y control

Captulo 2. Determinacin de las caractersticas


funcionales de la tarjeta programable

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

15

Diseo y construccin de una tarjeta programable


de adquisicin, procesamiento de datos y control

Captulo 2. Determinacin de las caractersticas


funcionales de la tarjeta programable

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 I2C) 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]

16

Diseo y construccin de una tarjeta programable


de adquisicin, procesamiento de datos y control

Captulo 2. Determinacin de las caractersticas


funcionales de la tarjeta programable

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]

17

Diseo y construccin de una tarjeta programable


de adquisicin, procesamiento de datos y control

2.2.2.

Captulo 2. Determinacin de las caractersticas


funcionales de la tarjeta programable

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.

18

Diseo y construccin de una tarjeta programable


de adquisicin, procesamiento de datos y control

Captulo 2. Determinacin de las caractersticas


funcionales de la tarjeta programable

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
Frecuencia de trabajo
20 40
Velocidad
de 20 40
procesamientos
Arquitectura
Punto fijo de 16 bits
Memoria Flash / ROM 8 32 mil / 4 32 mil
RAM
Hasta 2.5 mil
ADC
10 bit, 500 ns
Perifricos
SCI, SPI, CAN

Controladores de
punto fijo C28x
150
150

Unidades
MHz
MIPS

Punto fijo de 32 bits


Hasta 128 mil / 4 mil
Palabra
18 mil
Palabra
12 bit, 80 ns
SCI, SPI, CAN,
McBSP
Administrador
de Hasta 16 PWM, E/S 16 PWM, E/S de
eventos
de propsito general, 4 propsito general, 7
temporizadores,
temporizadores,
CAP/QEP
CAP/QEP
Precio (por unidad en 22.00 180.00
64.00 182.00
Pesos
la compra de mil
mexicanos
unidades)

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
19

Diseo y construccin de una tarjeta programable


de adquisicin, procesamiento de datos y control

Captulo 2. Determinacin de las caractersticas


funcionales de la tarjeta programable

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.

20

Diseo y construccin de una tarjeta programable


de adquisicin, procesamiento de datos y control

2.2.3.

Captulo 2. Determinacin de las caractersticas


funcionales de la tarjeta programable

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.
21

Diseo y construccin de una tarjeta programable


de adquisicin, procesamiento de datos y control

Captulo 2. Determinacin de las caractersticas


funcionales de la tarjeta programable

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.

22

Diseo y construccin de una tarjeta programable


de adquisicin, procesamiento de datos y control

Captulo 2. Determinacin de las caractersticas


funcionales de la tarjeta programable

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.
Frecuencia de operacin (MHz)
140
120

120

120

100
80
60
40

Frecuencia de operacin (MHz)

Figura 2.1 Comparacin de microcontroladores en cuanto a frecuencia de operacin.

23

B
30
Fds
PI
C

30
F
ds
PI
C

0L
F2
40
7A

TM
S3
2

76
5
16
C

18
F4
52

24

20

PI
C

PI
C

16
F8
77

16

ST
7L
i te
0

16
F8
4
PI
C

12
C
68
H

in
y2
8

AT
t

68
H

11

10

M
C

AT
m
eg
a1
03

20

M
C

40

Requerimiento mnimo

PI
C

40

Diseo y construccin de una tarjeta programable


de adquisicin, procesamiento de datos y control

Captulo 2. Determinacin de las caractersticas


funcionales de la tarjeta programable

Numero
de E/S

80
70

68

63

60
50
41

40

Requerimiento mnimo

30
20

13

11

10

33

32

30

38

33

33

13

B
ds
PI
C

30
F-

12
C
68
H
M
C

0L
F2
40
7A

11
C
68
H
M
C

PI
C

PI
C

TM
S3
2

18
F4
52

76
5
16
C

16
F8
77
PI
C

AT
m
eg
a1
03

30
F
ds
PI
C

ST
7L
i te
0

PI
C

AT
t

in
y2
8

16
F8
4

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

Memoria de programa (KB)


160
144

140
128

120
100
80
60

32

F-

ds
PI
C
30

a1
0
AT
m
eg

40
7A

TM

S3
20
LF
2

C
68
H
C
12
M

ds

PI
C

30
F

2
18
F4
5
PI
C

76
5

16
C

7
PI
C

87
16
F

tin

y2
8

11
C
68
H
C

32

24

16

PI
C

AT

PI
C

16
F8
4

Requerimiento mnimo

20

ST
7L
ite

40

Memoria de programa (KB)

Figura 2.3 Comparacin de microcontroladores en cuanto a memoria de programa.

24

Diseo y construccin de una tarjeta programable


de adquisicin, procesamiento de datos y control

Captulo 2. Determinacin de las caractersticas


funcionales de la tarjeta programable

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
Memoria de programa Flash
Velocidad de procesamiento
Nmero de terminales de
entradas/salidas digitales
Nmero de terminales de
entradas analgicas
Conjunto de instrucciones
optimizado para compilador
C
Memoria de datos EEPROM
Nmero de instrucciones

PIC18F452
32 KBytes
10 MIPS

dsPIC30F
12 144 KBytes
20 o 30 MIPS

24

13

13

Si

Si

256 Bytes
75

1 4 KBytes
84

25

Diseo y construccin de una tarjeta programable


de adquisicin, procesamiento de datos y control

2.4.

Captulo 2. Determinacin de las caractersticas


funcionales de la tarjeta programable

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.
C1

OSC1

<
A
lgica
interna
XTAL

RF
REPOSO

C2

>
PIC18FXXX

OSC2

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
LP
(Cristal de baja potencia)
XT
(Cristal)
HS
(Cristal de alta velocidad)

FRECUENCIA
DEL CRISTAL
(MHz)
0.032
0.200
0.200
1
4
4
8
20
25

C1
(pF)

C2
(pF)

33
15
22-68
15
15
15
15-33
15-33
15-33

33
15
22-68
15
15
15
15-33
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.

26

Diseo y construccin de una tarjeta programable


de adquisicin, procesamiento de datos y control
Q1

Q2

Q3

Q4

Q1

Captulo 2. Determinacin de las caractersticas


funcionales de la tarjeta programable
Q2

Q3

Q4

Q1

Q2

Q3

Q4

OSC1
Q1
Q2
Q3
Q4
CP+2

CP

CP

Ejecuta instruccin (CP-2) y


Busca instruccin (CP)

CP+4

Ejecuta instruccin (CP) y


Busca instruccin (CP+2)

Ejecuta instruccin (CP+2) y


Busca instruccin (CP+4)

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.
Tcy0
1 MOVLW 55h
2 MOVWF PORTB

Tcy1

Tcy2

Tcy4

Tcy5

Buscar inst.1 Ejecutar inst.1


Buscar inst.2 Ejecutar inst.2
Buscar inst.3 Ejecutar inst.3

3 GOTO 5

Buscar inst.4

4 BSF PORTA,BIT3 (NOP forzado)


5 BCF

Tcy3

NOP
buscar inst.5 Ejecutar inst.5

PORTB,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:

27

Diseo y construccin de una tarjeta programable


de adquisicin, procesamiento de datos y control

Captulo 2. Determinacin de las caractersticas


funcionales de la tarjeta programable

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.
Periodo

Ciclo til
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 TOSC (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>) TOSC (Valor de prescala TMR2) (2.2)

28

Diseo y construccin de una tarjeta programable


de adquisicin, procesamiento de datos y control

Captulo 2. Determinacin de las caractersticas


funcionales de la tarjeta programable

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 (RS) y la impedancia del interruptor interno de muestreo (RSS) varan de acuerdo al
voltaje del dispositivo (VDD). 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).

29

Diseo y construccin de una tarjeta programable


de adquisicin, procesamiento de datos y control

Captulo 2. Determinacin de las caractersticas


funcionales de la tarjeta programable

VDD

Rs
VAIN

ANx

VT = 0.6V

C PIN

VT = 0.6V

5 pF

Interruptor de muestreo
SS
R IC < 1k
Rss
IFUGA

CRETEN= 120 pF

500 mA

VSS
donde:

VAIN
RS
CPIN
VT
IFUGA
RIC
SS
CRETEN

= Voltaje analgico de entrada


= Impedancia de la fuente
= Capacitancia de entrada.
= Voltaje de umbral.
= Corriente de fuga en la terminal
debido a varias conexiones.
= Resistencia de interconexin.
= Interruptor de muestreo.
= Capacitancia de muestreo y retencin
(del DAC).

6
5
VDD
4
[Volts]
3
2
5 6 7 8 9 10 11
Interruptor de muestreo [k]

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.
TACQ = TAMP + TC + TCOFF

(2.3)

Donde:
TACQ
TAMP
TC
TCOFF

= Tiempo mnimo de adquisicin.


= Tiempo de establecimiento del amplificador.
= Tiempo de carga del capacitor de retencin.
= 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.
TC = -(120 pF)(1 k + RSS + RS) ln(1/2048)

(2.4)

El tiempo de conversin A/D por bit se denomina TAD. La conversin A/D requiere 12
veces el tiempo TAD 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.

30

Diseo y construccin de una tarjeta programable


de adquisicin, procesamiento de datos y control

Captulo 2. Determinacin de las caractersticas


funcionales de la tarjeta programable

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 TAD 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.

31

Diseo y construccin de una tarjeta programable


de adquisicin, procesamiento de datos y control

2.5.1.

Captulo 2. Determinacin de las caractersticas


funcionales de la tarjeta programable

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 I2C y ha existido por ms de 20 aos. Es equivalente al SPI (Serial Peripheral
Interface), pero su operacin es un poco diferente.
El I2C 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 I2C en operacin sin afectar otros dispositivos. Varios
fabricantes como Microchip, Philips e Intel producen microcontroladores con una interfaz
I2C integrada. La tasa de datos del bus I2C es 100 kbps en modo estndar y 400 kbps en
modo rpido.
Las dos lneas usadas para interconectar con el bus I2C 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 I2C tiene
una direccin nica y puede operar como transmisor (maestro del bus), como receptor
(esclavo del bus) o ambos. El bus I2C 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.

32

Diseo y construccin de una tarjeta programable


de adquisicin, procesamiento de datos y control

2.6.

Captulo 2. Determinacin de las caractersticas


funcionales de la tarjeta programable

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

Frecuencia de muestreo

13800

Resolucin AD
Precisin mxima AD
Tiempo de ciclo
de instruccin
Alimentacin
Consumo mximo

10
0.1

Unidad
Kbytes
MBytes
V
V
mA
V
V
mA
Muestreos/
segundo
Bits
%

100(3)

ns

15
150

V
mA

Memoria
Entradas
Salidas

Compilador

4
16(1)
1
16(1)
8
1

Tipo
De programa
De datos
Analgicas
Digitales
Corriente
Digitales
Potencia
Corriente

-Ensamblador
-C
RS232

Intervalo
32
1
0-5
0,5
4-20
0,5
0-20(2)
4-20

Puerto de comunicacin
con PC
Puerto de comunicacin
I2C
(tarjeta/perifricos)
Perifricos
1
Pantalla LCD
Intervalo de temperatura
0-50(4)
C
de operacin
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.

33

Diseo y construccin de una tarjeta programable


de adquisicin, procesamiento de datos y control

Captulo 3. Diseo electrnico de la tarjeta

CAPTULO 3. DISEO ELECTRNICO DE LA


TARJETA

34

Diseo y construccin de una tarjeta programable


de adquisicin, procesamiento de datos y control

3.1.

Captulo 3. Diseo electrnico de la tarjeta

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.
1 - Tarjeta principal

Mdulo de
E/S digitales

3 - Tarjeta de E/S
de 4-20 mA
Mdulo de E/S
de 4-20 mA

Mdulo de
entradas
analgicas

Mdulo de
alimentacin
(5 y 15 VCD)

Mdulo de
comunicacin
con la PC
(RS232)

Mdulo de
memoria
EEPROM

Mdulo de
comunicacin
entre tarjetas
(I2C)

Pantalla de
cristal lquido

Mdulo de
potencia
para motores

2 - Tarjeta de
procesamiento

Mdulo
de Mdulo
procesamiento
de
PIC18F452
procesamiento
dsPIC30F4013
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.

35

Diseo y construccin de una tarjeta programable


de adquisicin, procesamiento de datos y control

Captulo 3. Diseo electrnico de la tarjeta

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.

47K

RB0

R42

U2

2
1
J26

1
19

A8
A7
A6
A5
A4
A3
A2
A1

B8
B7
B6
B5
B4
B3
B2
B1

11
12
13
14
15
16
17
18

B0
B1
B2
B3
B4
B5
B6
B7

VCC

9
8
7
6
5
4
3
2

R47
220

9
8
7
6
5
4
3
2

R21
470
R1
R2
R3
R4
R5
R6

C28
100 nF

A la tarjeta de
procesamiento

10K

VCC

DIR
OE
74HC245

4
3
2
1

4
3
2
1

4
3
2
1

4
3
2
1

4
3
2
1

4
3
2
1

4
3
2
1

4
3
2
1

B0

B1

B2

B3

B4

B5

B6

B7
J45

J44

J43

J42

J41

J40

J39

J38

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:

36

Diseo y construccin de una tarjeta programable


de adquisicin, procesamiento de datos y control

Captulo 3. Diseo electrnico de la tarjeta

5V
25 mA
R = 200

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:
fc = 5KHz

c = 2 fc = 31, 400

(3.1)

C1 = 10 nF
C2 = 2C1 = 20 nF 22 nF

R=

0.707
cC1

R=

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

(3.2)
(3.3)

Donde R son las dos resistencias de entrada, C1 es el capacitor de entrada conectado a


tierra y C2 es el capacitor de retroalimentacin. [9]

37

Diseo y construccin de una tarjeta programable


de adquisicin, procesamiento de datos y control

Captulo 3. Diseo electrnico de la tarjeta

C22

VAN

J22

R29

3
2
1

U7A

R31

2K2

22nF 3
C21
10nF 2

2K2

R35

AN1
470

MCP6044

J23
C26

3
2
1

R37

U7B

R36
C25

J24

5
6

3
2
1

R39

AN2

470

U7D
12

J25

13

3
2
1

R40

14

AN3

470

U7C

R41

10

47K

R38

AN0

470

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.
D4
OUT

1
1N4148
D6

470

1
GND

R46

L2
0.5mH

VCC

JP4

RA5

D0
D1
D2

470

LM7915C/TO220

1
3
5
7
9
11
13

2
4
6
8
10
12
14

D7
D6
D5
D4
D3

CONECTOR A TARJETA 4-20 mA

Figura 3.4 Circuito electrnico del mdulo de alimentacin.

38

C36

VAN
C37

C42
0.1uF

U1

OUT

C34

D7

C41

100uF/50v

IN

C40
100uF/50v

0.1uF

1000uf/50v

C44

100uF/50v

C43

0.1uF

C35

C39
100uF/50v

R44

D8

CON3

C32

C31
0.1uF

0.1uF

3
2
1

1000uF/50v

J27

0.5mH

470

100uF/100v

C38

R43

0.1uF

C30

VCC

L1

OUT

100uF/50v

C29

100uF/50v

C33

0.1uF

F1
1A

U9
LM7805C/TO220
IN
GND

IN
GND

VCC1

U6
LM7815C/TO220

Diseo y construccin de una tarjeta programable


de adquisicin, procesamiento de datos y control

Captulo 3. Diseo electrnico de la tarjeta

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 I2C. 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 I2C pueden ser de 2 k a 10 k. [11] Se
defini un valor de 4.7 K para estas resistencias.
C50

VCC

100nF

6
5
4

R48
4K7

SW5

1
2
3

SW DIP-3

U10

C4

A0 24FC512
A1
A2
SCL
SDA
C3

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

39

Diseo y construccin de una tarjeta programable


de adquisicin, procesamiento de datos y control

Captulo 3. Diseo electrnico de la tarjeta

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.
A la tarjeta de procesamiento
VCC

R28

RESET POR PC
C2

C7

330

C1

13
8
11
10

RC6
C4
10uF/25V
C3

1
3
4
5
2
6

U3
R1IN
R2IN
T1IN
T2IN

RC7

1N4148

100uF/25V

10uF/25V

R32

D2

R1OUT
R2OUT
T1OUT
T2OUT

C+
C1C2+
C2V+
V-

330

5
9
4
8
3
7
2
6
1

12
9
14
7

D3
5V1

P1

R33
4.7

MAX232
C6
10uF/25V

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 I2C

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 I2C. En el conector J47 se puede
conectar una tarjeta o circuito que trabaje con el protocolo I2C. Se consideran los valores de
resistencia del mdulo de memoria EEPROM.

40

Diseo y construccin de una tarjeta programable


de adquisicin, procesamiento de datos y control

100nF

6
5
4

C27

VCC

R45

Captulo 3. Diseo electrnico de la tarjeta

4K7

1
2
3

SW3

C4

U8
A0
A1
A2

24FC512
SCL
SDA

C3

J47
1
2
I2C

Figura 3.7 Circuito electrnico del mdulo de comunicacin I2C.

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.

41

Diseo y construccin de una tarjeta programable


de adquisicin, procesamiento de datos y control
VCC1

VCC

Captulo 3. Diseo electrnico de la tarjeta

VCC2

8
7
6
5

1
2
3

J35

C24
100uF/25V

1
9

10K

U4
1A
2A
3A
4A

1Y
2Y
3Y
4Y

1,2EN
3,4EN

VCC1

1
9

C45

100nF

C15

C8

100nF

1
2
3

C23

2
7
10
15

C20

VCC

VCC2
J36

J34

U5
1A
2A
3A
4A

VCC2

C2
B6
B7
A4

C14

5
4
3
2
1

C
C9

C13

3
6
11
14

L293
R34

C12

J33

VCC2

C1
2
C0
7
RB0 10
C5 15

C11

1
2
3
4

100nF

CON5

C10

1Y
2Y
3Y
4Y

3
6
11
14

1,2EN
3,4EN

5
4
3
2
1
C47

C46

C16

C17

C18

C19

L293

CON5

SW4

100nF

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.

B0
B1
B2
B3
B4
B5
B6

JP5
1
3
5
7
9
11
13

B7

2
4
6
8
10
12
14

RE2
RE1
RE0

HEADER 7X2

VCC

R20

R19

820

10K

Figura 3.9 Circuito electrnico del conector para pantalla de cristal lquido.

42

Diseo y construccin de una tarjeta programable


de adquisicin, procesamiento de datos y control

Captulo 3. Diseo electrnico de la tarjeta

Mdulo de procesamiento.

U1
RA0/AN0
RA1/AN1
RA2/AN2/VREFRA3/AN3/VREF+
RA4/TOCKI
RA5/AN4/SS#
MCLR/Vpp
RB0/INT
RB1
RB2
VCC
RB3PGM
RB4
RB5
VCC
RB6/PGC
RB7/PGD
RC0/T1OSI/T1CKI
RC1/T1OSO/CCP2
RC2/CCP1
RC3/SCK/SCL
RC4/SDI/SDA
RC5/SDO
OSC2/CLKOUT
RC6/TX/CK
RC7/RX/DT
RD0/PSP0
RD1/PSP1
OSC1/CLKIN
RD2/PSP2
RD3/PSP3
RD4/PSP4
RD5/PSP5
RD6/PSP6
RD7/PSP7
RE0/RD#/AN5
RE1/WR#/AN6
RE2/CS#/AN7

VCC
S1
1

11

R23
10K

32
D1
R21

1N4148

100

14
2

2
3
4
5
6
7
33
34
35
36
37
38
39
40
15
16
17
18
23
24
25
26
19
20
21
22
27
28
29
30
8
9
10

13

SW1

C1

C2

C6

100 nF

100 nF

10 uF / 16V

C3
10uF

A la tarjeta principal

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.

C5
12MHz

22pF
C4

PIC18F452

22pF

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
43

Diseo y construccin de una tarjeta programable


de adquisicin, procesamiento de datos y control

Captulo 3. Diseo electrnico de la tarjeta

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
U2

-15VCC

+5VCC

+15VCC

16
15
14
13
12
11
10
9

V+
- In
Rcv f B
CT
Rcv Out
+ In
Rcv Com
VRef In
Ref Com
Ref Out
NC1
Ref f B Ref Noise Red
NC2
Ref Trim

1
2
3
4
5
6
7
8

J1
1
2
ENTRADA 4-20 mA

RCV420
JP1
2
4
6
8
10
12
14

+15VCC
R3 1K

+5VCC
R1

R4
10K

-15VCC

U3

V+

13
15

4
2
2

7
1
COMP

VR+
VR-

IOUT
IOUT

U4

LF351

1
2
3
4
5
6
7
8

Source Res
+ Vcc
Comm
Vref Force
Vref In
Gate Driv e
Vin1(10V)
SourceSense
Vin2(5V)
Vref Sense
Zero Adj1
Vref Adj
Zero Adj2
4mA Span
Zero Adj3
16mA Span

16
15
14
13
12
11
10
9

XTR110

16

1 Q1
C2
1 uF

3
MOSFET MTP2955
2
J2
1
2
SALIDA 4-20 mA

C1
V-

14

A8
A7
A6
A5
A4
A3
A2
A1

12
11
10
9
8
7
6
5

U1

4
5

3K3

HEADER 7X2

1
3
5
7
9
11
13

33pF

+15VCC

DAC0808

R2
3K3

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 I2C.

44

Diseo y construccin de una tarjeta programable


de adquisicin, procesamiento de datos y control

Captulo 3. Diseo electrnico de la tarjeta

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.


J4

A4

R14
470

220

SW19

VCC1

AN3
D27

SW17

SW18

SW16

SW15

SW14

SW13

SW10

SW9

SW8

SW7

SW6

SW5

R3

SW4

SW3

LM35/TO

SW12

VCC

LED

VS+ VOUT

SW11

D26

U1
1

RB0

VCC1

R12
VCC

SW20

VCC

1
2
3

J3
1
2
3

1
2
3

J2

1
2
3

J1

Q1

10K
R8

C4
C3

10K

EXT

SDA
SCL

OSC

13

R10

100n

2
3
4
5
6
7
8
9

12
11

PCF8591

VCC
J5

B5

D6

B6

D7

B7

D18

B4

D5

D19

B3

D4

D20

B2

D3

D21

R9

B1

D2

D22

D16

14

D14

A5

B0

D1

D23

3
15

C1

A0
A1
A2

9
10

D12

D11

C5

VREF
AGND

5
6
7

2N3904

AOUT

AIN0
AIN1
AIN2
AIN3

D0

D17

AN3

R7
220

U3

1
2
3
4

D15

R6
220

R5
LDR

D13

R4
4K7

R11
9
8
7
6
5
4
3
2

D24

VAN

2
D1

10K
R2

D25

R1
3

D10

10K

C
VCC

1
2

VCC

C4
47uF/16v

JP6
VCC1

1
3
5
7
9
11
13
15
17
19
21
23
25
27
29
31
33
35

A5

C5
C3

8
3

B4
B5
B6
B7

74LS48

S0
S1
S2
S3
S4
S5
S6

S0 7
S1 6
S2 4
S3 2
S4 1
S5 9
S6 10
S7 5

JP3

a
b
c
d
e
f
g
dp

S0 7
S1 6
S2 4
S3 2
S4 1
S5 9
S6 10
S7 5

Q2

3
2

B7

2N3904
D2 D3 D4 D5 D6 D7 D8 D9

JP4

a
b
c
d
e
f
g
dp

S0 7
S1 6
S2 4
S3 2
S4 1
S5 9
S6 10
S7 5

Q3

JP5

a
b
c
d
e
f
g
dp
3

B6

S0 7
S1 6
S2 4
S3 2
S4 1
S5 9
S6 10
S7 5

2N3904

Q4

C5
D6
D4
D2
D0

a
b
c
d
e
f
g
dp
3

B5

2N3904

B4
B2
B0

R13

3
8

JP2
13
12
11
10
9
15
14

3
8

7
1
2
6

BI OA
RBI OB
LT OC
OD
A OE
B OF
C OG
D

3
8

a
b
c
d
e
f
g
dp

7
6
4
2
1
9
10
5

4
5
3

3
8

JP1

U2

B0
B1
B2
B3

1k

Q5
2

B4

B6

2
4
6
8
10
12
14
16
18
20
22
24
26
28
30
32
34
36

A2
C4
RB0
A4
D7
D5
D3
D1
B5
B3
B1

R15
1k
B7

VAN

2N3904

J7
1
2

J6

CON2

1
2

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.

45

Diseo y construccin de una tarjeta programable


de adquisicin, procesamiento de datos y control

Captulo 3. Diseo electrnico de la tarjeta

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:
I max
= 1 A
t max

= 10 C

Grosor de conductor = 35 m = 1 oz./ft 2


Donde Imax es la corriente mxima que circular en la pista y se consider la corriente
mxima de salida de los reguladores de voltaje; tmax 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
1. Principal
2. De procesamiento
3. De E/S de 4 20 mA
4. De aplicacin

Largo (mm)
195
80
65
145

46

Ancho (mm)
120
55
55
95

Diseo y construccin de una tarjeta programable


De adquisicin, procesamiento de datos y control

Captulo 4. Construccin y pruebas de las tarjetas


electrnicas

CAPTULO 4. CONSTRUCCIN Y PRUEBAS


DE LAS TARJETAS ELECTRNICAS

47

Diseo y construccin de una tarjeta programable


De adquisicin, procesamiento de datos y control

4.1.

Captulo 4. Construccin y pruebas de las tarjetas


electrnicas

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.
2.
3.
4.

Tarjeta principal. (Ver figura 4.1).


Tarjeta de procesamiento. (Ver figura 4.2).
Tarjeta de entrada/salida de 4-20 mA. (Ver figura 4.3).
Tarjeta de aplicacin. (Ver figura 4.4).

Figura 4.1 Tarjeta principal.

48

Diseo y construccin de una tarjeta programable


De adquisicin, procesamiento de datos y control

Captulo 4. Construccin y pruebas de las tarjetas


electrnicas

Figura 4.2 Tarjeta de procesamiento.

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

49

Diseo y construccin de una tarjeta programable


De adquisicin, procesamiento de datos y control

Captulo 4. Construccin y pruebas de las tarjetas


electrnicas

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.

Nombre

E/S digitales

Entradas analgicas
Potencia para
motores
Pantalla de cristal
lquido (LCD)
Comunicacin
RS232
Comunicacin I2C

E/S de 4 - 20 mA

3
4
5

Mdulo de entrada
Puerto B (E/S digitales)
Puerto D (E/S digitales)
Entrada analgica RA0

Mdulo de salida
Puerto D (E/S digitales)
Puerto B (E/S digitales)
Puerto B (E/S digitales)

Potencia para motores

LCD

Puerto B (E/S digitales)

RS232

*
E/S de 4-20 mA
*

Memoria EEPROM
Puerto B (E/S digitales)
E/S de 4-20 mA

* En estas pruebas los datos iniciales o de control son generados en el mdulo de procesamiento.

50

Diseo y construccin de una tarjeta programable


De adquisicin, procesamiento de datos y control

Captulo 4. Construccin y pruebas de las tarjetas


electrnicas

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.
51

Diseo y construccin de una tarjeta programable


De adquisicin, procesamiento de datos y control

Captulo 4. Construccin y pruebas de las tarjetas


electrnicas

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();
while (BusyADC());
PIR1bits.ADIF = 0;
PORTB = ADRESH;

// Inicia la conversin
// Espera a que la conversin finalice
// Se limpia la bandera de interrupcin del conversor AD
// 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 (TAD) antes de iniciar la siguiente conversin. El valor mnimo de TAD
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:

Ciclos = ( 3.2i10-6 12i106 ) 4 = 9.6 10


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.

52

Diseo y construccin de una tarjeta programable


De adquisicin, procesamiento de datos y control

Captulo 4. Construccin y pruebas de las tarjetas


electrnicas

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:
Ciclos = (1i10-3 12i106 ) 4 = 3000
Para generar el retardo de 10 s:
Ciclos = (10i10-6 12i106 ) 4 = 30
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.

53

Diseo y construccin de una tarjeta programable


De adquisicin, procesamiento de datos y control

Captulo 4. Construccin y pruebas de las tarjetas


electrnicas

spbrg = ( ( FOSC Velocidad deseada ) 16 ) 1

(4.2)

spbrg = ( ( FOSC Velocidad deseada ) 64 ) 1

(4.3)

spbrg = ( ( FOSC Velocidad deseada ) 4 ) 1

(4.4)

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

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 I2C 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 = FOSC

( 4i( SSPADD + 1) )

(4.5)

Para el modo de velocidad estndar de 100 KHz y la frecuencia de oscilacin de 12 MHz,


el valor de SSPADD es:
SSPADD =

12i106
1 = 29
4i(100i103 )

En el primer programa se ejecuta el protocolo de transmisin I2C 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.

54

Diseo y construccin de una tarjeta programable


De adquisicin, procesamiento de datos y control

Captulo 4. Construccin y pruebas de las tarjetas


electrnicas

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.

Entrada de
corriente (mA)
4
6
8
10
12
14
16
18
20

Salida (V)
Prueba 1 (Ascendente) Prueba 2 (Descendente)
0.02
0.00
0.63
0.64
1.27
1.27
1.89
1.90
2.52
2.52
3.16
3.17
3.80
3.80
4.42
4.43
5.05
5.05

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

55

Diseo y construccin de una tarjeta programable


De adquisicin, procesamiento de datos y control

Captulo 4. Construccin y pruebas de las tarjetas


electrnicas

Voltaje de salida (Volts)

0
2

10

12

14

16

18

20

22

Corriente de entrada (mA)


Prueba ascendente

Prueba descendente

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.

Dato programado
(hexadecimal)
0x00
0x20
0x40
0x60
0x80
0x9F
0xBF
0xDF
0xFF

Salida (mA)
Valor ideal Valor real
4
4
6
6
8
8
10
10.1
12
12.1
14
14.1
16
16.2
18
18.2
20
20.2

56

Error
(%)
0.00
0.00
0.00
1.00
0.83
0.71
1.25
1.11
1.00

Diseo y construccin de una tarjeta programable


De adquisicin, procesamiento de datos y control

Captulo 4. Construccin y pruebas de las tarjetas


electrnicas

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.

57

Diseo y construccin de una tarjeta programable


de adquisicin, procesamiento de datos y control

Captulo 5. Diseo y construccin de plantas

CAPTULO 5. DISEO Y CONSTRUCCIN DE


PLANTAS

58

Diseo y construccin de una tarjeta programable


de adquisicin, procesamiento de datos y control

5.1.

Captulo 5. Diseo y construccin de plantas

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

Robot mvil
seguidor de
lnea
Modelo a
escala de
plataforma
de
seguimiento
solar

Seguir lnea negra


sobre superficie
blanca

2 sensores
pticos de
reflexin

2 (digitales)

Orientar la placa
colectora hacia el
sol

5 micro
interruptores
21
fototransistores
1 encoder

13 (digitales)

Cmara
trmica con
temperatura
controlada

Controlar la
temperatura de un
ambiente aislado
trmicamente

1 (digital)
1 (analgica)

1 sensor de
temperatura

59

No. de
canales de
salida
2 (potencia
para
motores)

Actuadores

Tipo de
control

2 motores
de CD

Enc/apag

2 (potencia
para
motores)

2 motores
de CD

Enc/apag

1 (digital)
5 (potencia
para
motores)

1 calefactor
1 soplador
1 extractor
de aire
2 solenoides

Proporcionalintegral

Diseo y construccin de una tarjeta programable


de adquisicin, procesamiento de datos y control

5.2.

Robot mvil seguidor de lnea

5.2.1.

Objetivo

Captulo 5. Diseo y construccin de plantas

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
Chasis

Giro del motor


derecho
Sensores

Rueda loca

Giro del motor


izquierdo
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

60

Diseo y construccin de una tarjeta programable


de adquisicin, procesamiento de datos y control

Captulo 5. Diseo y construccin de plantas

Soporte de
sensores
Ruedas
delanteras

Chasis

Motores de
12 VCD
Rueda loca

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.

R1 =

VCC V f
If

Donde:
Vcc
Vf
If
R1

= Voltaje de alimentacin = 5 Volts


= Voltaje del diodo en polarizacin directa = 1.25 Volts
= Corriente del fotodiodo en polarizacin directa = 50 mA
= 75

61

(5.1)

Diseo y construccin de una tarjeta programable


de adquisicin, procesamiento de datos y control

Captulo 5. Diseo y construccin de plantas

5 VCC

R1
75

CNY 70
RD0
SENSOR IZQ

RB6
TARJETA
PROGRAMABLE

5 VCC

R1
75

RC2

R2
47 K

CNY 70

RB7

RD1
SENSOR DER

RA4

MOTOR
IZQUIERDO
15 VCD

R2
47 K

MOTOR
DERECHO
15 VCD

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

62

Diseo y construccin de una tarjeta programable


de adquisicin, procesamiento de datos y control

Captulo 5. Diseo y construccin de plantas

Posicin 1
Avanza en lnea recta

Posicin 2
Gira a la derecha

Posicin 3
Gira a la izquierda

Posicin 4
Se detiene el robot

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

63

Diseo y construccin de una tarjeta programable


de adquisicin, procesamiento de datos y control

Captulo 5. Diseo y construccin de plantas


24 VCD

RD0

R2
150k

R1
3k3

TIP125

MOTOR GIRO
HORIZONTAL
24 VCD

TIP125

R1
3k3

BC548

BC548
TIP120

R2
150k

RD1

TIP120

24 VCD

RD2

R2
150k

R1
3k3

TIP125

MOTOR GIRO
VERTICAL
24 VCD

TIP125

R1
3k3

BC548

BC548
TIP120

R2
150k

RD3

TIP120

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 SEMICONDUCTORTM. [14]

24 VCD
TIP125

VCE(sat)=-2 V, Ic(max)=5 A, hFE=1000, IB(max)=-120 mA, VBE(on)=-2 V

R1
3k3

5 VCD

MOTOR
24VCD
R2
150k

BC548

TIP120

VCE(sat)=0.6 V, Ic(max)=500 mA, hFE=800, IB=0.625 mA, VBE(on)=0.77 V


VCE(sat)=2 V, Ic(max)=5 A, hFE=1000, VBE(on)=2.5 V

Figura 5.6 Circuito de operacin simplificado del puente H.

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

IL(max) = 2 A
R1 = VR1 / IR1
R1 = VR1 / IB(sat)
VR1 = 24 (VBE(on) del TIP 125) (VCE(on) del BC548) (VBE(on) del TIP 120)
VR1 = 24 2 - 0.6 -2.5 = 18.9 V
64

Diseo y construccin de una tarjeta programable


de adquisicin, procesamiento de datos y control

Captulo 5. Diseo y construccin de plantas

IBmin = IL(max) / hFE


IBmin = 2 A / 1000 = 2 mA
Considerando IB = 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:
IB(sat) = 18.9 V / 3300 = 5.72 mA

Clculo de la resistencia conectada a la base del transistor BC548

R2 = VR2(on) / IR2(max)
VR2(on) = 5 - VBE(on)BC548 - VBE(on)TIP120
VR2(on) = 5 - 0.77 2.5 = 1.73 V
IBmin = IL(max) / hFEBC548
IBmin = 5.72 mA / 800 = 7.15 A
Considerando IB = 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:
IB(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.

65

Diseo y construccin de una tarjeta programable


de adquisicin, procesamiento de datos y control

Captulo 5. Diseo y construccin de plantas

Placa
colectora
Poleas de
placa colectora
Dados
deslizantes

Motor giro
vertical

Bujes de
polea
Varilla
roscada

Motor giro
horizontal

Soporte
vertical

Polea
roscada

Buje

Modelo completo del modelo a escala


de plataforma de seguimiento solar

Mecanismo de giro vertical

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.
66

Diseo y construccin de una tarjeta programable


de adquisicin, procesamiento de datos y control

Captulo 5. Diseo y construccin de plantas

Sensor
central

Sensor 4

Sensor 1

Grupo izquierdo
de 8 sensores
conectados en
paralelo
Grupo derecho
de 8 sensores
conectados en
paralelo

Sensor 3

Sensor 2

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

Sensores

Giro
horizontal
10

Placa semicircular
de acrlico
Interruptor de
lmite inferior

Placa colectora
Interruptor de
lmite superior

Giro
vertical

Interruptor de
lmite central

Motor de giro
vertical

Motor giro
horizontal

Soporte vertical

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.

67

Diseo y construccin de una tarjeta programable


de adquisicin, procesamiento de datos y control

Captulo 5. Diseo y construccin de plantas

5 VCC
SENSOR 4

SENSOR 1

5 VCC

R1
330
ENCODER

R1
330
SENSOR 2

5 VCC

5 VCC
GRUPO DERECHO DE SENSORES

R1 330

R1
330

SENSOR 3

R1
330

GRUPO IZQUIERDO DE SENSORES

SENSOR
PRINCIPAL

5 VCC

S6

R1
330

INT DE ARRANQUE
R1
330

R1
330

5 VCC

R1
330
MOTOR DE 24 VCC
GIRO SUB/BAJ

RA4

RB1

RD6

RD7

RB0

RD4

RD5

RB2

RA5
RD2
RD3

TARJETA
PROGRAMABLE
RB5

RB4

RD0

RB3

TARJETA DE
POTENCIA
(2 PUENTES H)

RD1
RB6

RB7

MOTOR DE 24 VCC
GIRO IZQ/DER
R1
330

INT LIM SUP

R1
330

INT LIM INF

R1
330

INT LIM
CENTRAL

R1
330

INT LIM DER

5 VCC

INT LIM IZQ

R1
330

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.
68

Diseo y construccin de una tarjeta programable


de adquisicin, procesamiento de datos y control

Captulo 5. Diseo y construccin de plantas

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

Detalle A
Grupo izq.
sensores

Sensor 4 Sensor 1

lmite giro abajo

Lmite giro arriba

Baja

Sensor
grupo der.

Motor / giro vertical

Lmite central
Giro der.
Lmite
giro izquierda

Detalle A
Vista superior de la planta

Grupo der.
sensores
Sube

Giro izq.

Sensor

Giro izq.
Sensor
grupo izq.

principal

Sensor 3 Sensor 2

Giro der.

Lmite
giro derecha

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.
69

Diseo y construccin de una tarjeta programable


de adquisicin, procesamiento de datos y control

Captulo 5. Diseo y construccin de plantas

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.
Sensor de
temperatura

Solenoide de
apertura de
compuerta

Cubo externo

Soplador
de aire

Extractor
de aire

Calefactor
Agitador
de aire

Cubo
interno

Figura 5.12 Cmara trmica con temperatura controlada.

70

Diseo y construccin de una tarjeta programable


de adquisicin, procesamiento de datos y control

Captulo 5. Diseo y construccin de plantas

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]
(1)

120 VCA

REFERENCIA DE
CRUCE POR CERO
(2)

CD4093

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.

+9V

F = 60 Hz

t
+5V
2

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]

71

Diseo y construccin de una tarjeta programable


de adquisicin, procesamiento de datos y control

Captulo 5. Diseo y construccin de plantas

180
470

CARGA

MOC3010

SEAL DE
DISPARO

100
120 VCA

TIC226D

100 nF

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.

RB0

RC0

COMPUERTA
EXTRACTOR

RA4
+

RC2

A SOPLADOR

RC5

EXTRACTOR A

AGITADOR

RD0

CALEFACTOR

COMPUERTA
SOPLADOR

LM35

RC1

120 VCA

VS+ VOUT

120 VCA

AN0

TARJETA PROGRAMABLE

+5V

GND

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.

72

Diseo y construccin de una tarjeta programable


de adquisicin, procesamiento de datos y control

5.4.5.

Captulo 5. Diseo y construccin de plantas

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.
t

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

(5.2)

Considerando la aproximacin 5.3 para la parte integral:

E (t )dt Ts E (n)

(5.3)

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


N

C (n) = K P E (n) + K I TS E (n)


0

C (n) K E (n) + TS TI E (n)


0

(5.4)

Donde:
KP = K
KI = K/TI
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.

73

Diseo y construccin de una tarjeta programable


de adquisicin, procesamiento de datos y control

Captulo 5. Diseo y construccin de plantas

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.

74

Diseo y construccin de una tarjeta programable


de adquisicin, procesamiento de datos y control

Captulo 5. Diseo y construccin de plantas

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.

75

Diseo y construccin de una tarjeta programable


de adquisicin, procesamiento de datos y control

Captulo 6. Experimentacin y anlisis de resultados

CAPTULO 6. EXPERIMENTACIN Y
ANLISIS DE RESULTADOS

76

Diseo y construccin de una tarjeta programable


de adquisicin, procesamiento de datos y control

6.1.

Captulo 6. Experimentacin y anlisis de resultados

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]

77

Diseo y construccin de una tarjeta programable


de adquisicin, procesamiento de datos y control

6.2.

Captulo 6. Experimentacin y anlisis de resultados

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.
78

Diseo y construccin de una tarjeta programable


de adquisicin, procesamiento de datos y control

Captulo 6. Experimentacin y anlisis de resultados

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.

79

Diseo y construccin de una tarjeta programable


de adquisicin, procesamiento de datos y control

Captulo 6. Experimentacin y anlisis de resultados

a) Comprobacin de voltaje eficaz.


Para esta prueba se requirieron los siguientes datos:
V p = 175 Volts
F = 60 Hertz
para obtener la ecuacin de la seal de corriente alterna:

f (t ) = 175sin(120 )
La frmula para el voltaje eficaz de cualquier seal es:
Vef =

1 t
f (t )dt
T 0

(6.1)

Aplicando la ecuacin 6.1 para el clculo del voltaje eficaz de la onda recortada se obtiene:
T
1 T2
2
2
Vef =
175sin(120 ) ) dt +
(
(175sin(120 ) ) dt

2
+
t
T
t
(
)
1
1
T

sin ( 240 t1 )
1
2t1 +
Vef = 175 30
60
120
Con la ayuda de un programa para graficar y tabular funciones, se buscaron los valores de
t1 para cada voltaje eficaz de la tabla 6.1.
Tabla 6.1 Experimentacin de voltaje eficaz y tiempo de recorte.

Vef
deseado
(Volts)
10
20
30
40
50
60
70
80
90
100
110
120

t1 (obtenido
de grfica)
(ms)
7.50
7.00
6.55
6.15
5.70
5.30
4.90
4.50
4.00
3.50
2.80
1.80

t1
programado
(ms)
7.50
7.00
6.57
6.13
5.73
5.33
4.93
4.50
4.03
3.50
2.87
1.80

80

t1
medido
(ms)
7.40
6.90
6.50
6.00
5.60
5.20
4.80
4.40
3.90
3.40
2.80
1.70

Vinst
grfica
(Volts)
60.31
90.00
111.00
134.83
150.00
161.88
170.00
174.00
174.00
167.00
152.00
104.63

Vinst
medido
(Volts)
55
88
116
136
148
162
170
170
170
165
150
100

Diseo y construccin de una tarjeta programable


de adquisicin, procesamiento de datos y control

Captulo 6. Experimentacin y anlisis de resultados

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.

81

Diseo y construccin de una tarjeta programable


de adquisicin, procesamiento de datos y control

Captulo 6. Experimentacin y anlisis de resultados

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.

82

Diseo y construccin de una tarjeta programable


de adquisicin, procesamiento de datos y control

Captulo 7. Conclusiones

CAPTULO 7. CONCLUSIONES

83

Diseo y construccin de una tarjeta programable


de adquisicin, procesamiento de datos y control

7.1.

Captulo 7. Conclusiones

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.

84

Diseo y construccin de una tarjeta programable


de adquisicin, procesamiento de datos y control

Captulo 7. Conclusiones

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.

85

Diseo y construccin de una tarjeta programable


de adquisicin, procesamiento de datos y control

Referencias

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 I2C 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.

86

Diseo y construccin de una tarjeta programable


de adquisicin, procesamiento de datos y control

Referencias

[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

87

C29

C43

R22

47K

LM7915C/TO220

OUT

R23

C34

C44

R24

470

R46

D8

470

R44

RA5

VCC

U9
LM7805C/TO220
IN

R25

J12

J11

J10

J9

J8

J7

VPP/MCLR#
RB3/PGM

VCC
2 RB7/PGD
4 RB6/PGC
6

ENT. PROG

1
3
5

JP3

JP1

CONECTOR A TARJETA DE uC

VCC

C7

C3

MAX232

C+
C1C2+
C2V+
V-

R1IN
R2IN
T1IN
T2IN

10uF/25V

1
3
4
5
2
6

13
8
11
10

U3

100uF/25V

C6

10uF/25V

C4

RC6

10uF/25V

C1

C2

RESET POR PC

R1OUT
R2OUT
T1OUT
T2OUT

330

R28

12
9
14
7

1N4148

RA5

AN0
AN1
AN2
AN3

D2

5V1

D3

330

R32

5
9
4
8
3
7
2
6
1

P1

R18
R11
R12
R16
R17
R15
R13
R14

RC7

R33
4.7

RC6
RC7

R7
R8
R9
R10

D0
D1
D2

1
3
5
7
9
11
13

2
4
6
8
10
12
14

JP4

OUT

470

470

R1
R2
R3
R4
R5
R6

VCC

2
1

B0
B1
B2
B3
B4
B5
B6

D0
D1
D2
D3
D4
D5
D6
D7

A4
C0
C1
C2
C5

J26

470

D7
D6
D5
D4
D3

C40

C39

C31

R27

R26

CONECTOR A TARJETA 4-20 mA

J6

U1

IN

C38

C30

1N4148
D6

D4

VCC1

J5

J4

VCC

C35

C33

OUT

J3

F1
1A

IN

J2

H1

J1

CON3

3
2
1

J27

H2

1
2
3

L1

A4

H3

1
2
3

L2

B0

H4

1
2
3
L3

B1

H5

GND
2

U6
LM7815C/TO220

GND
2
GND

1
H6

1
2
3

L5

B3

L4

B2

H7

1
2
3

H8

1
2
3
L6

B4

RC3
RC4
RE0
RE1
RE2

H9

1
2
3
L7

B5

L10

1
2
3
L8

B6

H12

1
2
3
L9

B7

H11

1
2
3
H10
C1

L11

C2

L12

C5
10K
R21

J18

J17

J16

J15

J14

J13

D7

470

R43

1
2
3

U2
B8
B7
B6
B5
B4
B3
B2
B1

2
4
6
8
10
12
14

74HC245

DIR
OE

A8
A7
A6
A5
A4
A3
A2
A1

RB0

HEADER 7X2

1
3
5
7
9
11
13

JP5

1
19

9
8
7
6
5
4
3
2

L13

C0

H13

47K
R42

H14

1
2
3
L14

D0

H15

1
2
3
B7

C28

R19
10K

820

VCC

R20

RE2
RE1
RE0

B0
B1
B2
B3
B4
B5
B6
B7

100 nF

11
12
13
14
15
16
17
18

L15

D1

H16

1
2
3
L16

D2

H17

1
2
3
VCC1

L17

D3

L2

C32

VCC

C5
D6
D4
D2
D0
B6
B4
B2
B0

C41

VCC

VCC

2
4
6
8
10
12
14
16
18
20
22
24
26
28
30
32
34
36

JP2

VAN

C9

1
9

D7
D5
D3
D1
B7
B5
B3
B1

1
2

J32

L293

1,2EN
3,4EN

1A
2A
3A
4A

U5

L293

1,2EN
3,4EN

1A
2A
3A
4A
1Y
2Y
3Y
4Y

100uF/25V

VCC1

1Y
2Y
3Y
4Y

J35

3
6
11
14

3
6
11
14

C47

VCC1

C11

VCC2

VCC2

FTE. VCD EXT.

C24

U4

C23

2
7
10
15

C4
RB0
A4

C2
B6
B7
A4

1
9

C1
2
C0
7
RB0 10
C5 15

100nF

C10

VAN

C36

SW4

HEADER 18X2

1
3
5
7
9
11
13
15
17
19
21
23
25
27
29
31
33
35

10K

J21

C42

C37

J20

0.5mH

R34

C3

L1
0.5mH

J19

RA5

L18

1
2
3
H18
D4

1
2
3
H19
D5

L19

1
2
3
H20
D6

L20

1
2
3
L21

D7

H21

8
7
6
5
1
2
3
4

1
2
3

2
4
6
8
10
12
14
16
18
20
22
24
26
28
30
32
34
36
38
40

8
VCC2
8
VCC2

1
2
3

1
2
3

1
3
5
7
9
11
13
15
17
19
21
23
25
27
29
31
33
35
37
39

J36

C12

C46

1
2
3

88

C16

VCC2

C13

C17

C15

C14

3
2
1

J25

3
2
1

J24

3
2
1

J23

3
2
1

J22

VCC

VAN

C18

C8

R36

2K2

R31

100nF

5
4
3
2
1

J34

5
4
3
2
1

J33

100nF

220

R47

VCC

C45

47K

R41

C19

100nF

C20

R37

2K2

R29

CON5

C25
6

10

13

12

C26

22nF 3
C21
10nF 2

C22

U7C

U7D

U7B

U7A

J45

J44

J43

J42

J41

J40

J39

J38

C3

C3

14

MCP6044

B7
4
3
2
1

Figura A.1 Circuito esquemtico de tarjeta principal.


B6
4
3
2
1

1000uf/50v
B5
4
3
2
1

0.1uF
B4
4
3
2
1

1000uF/50v
B3
4
3
2
1

0.1uF
H21
H20
H19
H18
H17
H16
H15
H14
1

0.1uF
9
8
7
6
5
4
3
2

100uF/50v

0.1uF
H12
H11
H10
H13
H1
H2
H3
H4
H5
H6
H7
H8
H9
CON5

100uF/50v
L14
L15
L16
L17
L18
L19
L20
L21
L12
L11
L10
L13
L1
B2
4
3
2
1

0.1uF
L2
L3
L4
L5
L6
L7
L8
L9
B1
4
3
2
1

100uF/50v
C

B0
4
3
2
1

100uF/50v
C

C4

C3

RC3

RC4

J29

J31

C50

A0
A1
A2

U8

6
5
4
SCL
SDA

24FC512

U10

C5

J30

C48

100nF

C49

R30 1K5

C4

1
2
3
4

J28
5
VBUS
DD+
GND
6USB

I2C

1
2

J47

C4

VCC

SW DIP-3

SW5

SW3

A0 24FC512
A1
A2
SCL
SDA

100nF
4K7

VCC

C27

AN0

AN3

AN2

AN1

100nF

4K7

VCC

R48

R45

470

R38

470

R40

470

R39

470

R35

1
2
3

3
2
1

0.1uF
0.1uF

100uF/50v

1
2
3

100uF/50v
6
5
4

100uF/100v
1
2
3

Anexo A.

1
2
3

Diseo y construccin de una tarjeta programable


de adquisicin, procesamiento de datos y control
Anexos

Circuitos esquemticos de la tarjeta programable

VCC

HEADER 20X2

2
4
6
8
10
12
14
16
18
20
22
24
26
28
30
32
34
36
38
40

1
3
5
7
9
11
13
15
17
19
21
23
25
27
29
31
33
35
37
39

U1

PIC18F452

RA0/AN0
RA1/AN1
RA2/AN2/VREFRA3/AN3/VREF+
RA4/TOCKI
RA5/AN4/SS#
MCLR/Vpp
RB0/INT
RB1
RB2
RB3PGM
VCC
RB4
RB5
RB6/PGC
VCC
RB7/PGD
RC0/T1OSI/T1CKI
RC1/T1OSO/CCP2
RC2/CCP1
RC3/SCK/SCL
RC4/SDI/SDA
RC5/SDO
RC6/TX/CK
OSC2/CLKOUT
RC7/RX/DT
RD0/PSP0
RD1/PSP1
OSC1/CLKIN
RD2/PSP2
RD3/PSP3
RD4/PSP4
RD5/PSP5
RD6/PSP6
RD7/PSP7
RE0/RD#/AN5
RE1/WR#/AN6
RE2/CS#/AN7
13

14

32

11

XTL

100 nF

100 nF

10 uF / 16V

22pF

C4

S1

C6

22pF

C5

C2

C1

VCC

2
1

89

JP1

2
3
4
5
6
7
33
34
35
36
37
38
39
40
15
16
17
18
23
24
25
26
19
20
21
22
27
28
29
30
8
9
10

SW1

100

R21

C3
10uF

1N4148

D1

R23
10K

Diseo y construccin de una tarjeta programable


de adquisicin, procesamiento de datos y control
Anexos

Figura A.2 Circuito esquemtico de tarjeta de procesamiento.

-15VCC

+5VCC

2
4
6
8
10
12
14

HEADER 7X2

1
3
5
7
9
11
13

JP1

+15VCC

15

14

12
11
10
9
8
7
6
5

16
15
14
13
12
11
10
9

Figura A.3 Circuito esquemtico de la tarjeta de 4-20 mA.


R2

DAC0808

VR-

VR+

A8
A7
A6
A5
A4
A3
A2
A1

3K3

R1

3K3

IOUT

IOUT

COMP

U1

+5VCC

RCV420

1
2
3
4
5
6
7
8

33pF

C1

16

V+
- In
Rcv f B
CT
Rcv Out
+ In
Rcv Com
VRef In
Ref Com
Ref Out
NC1
Ref f B Ref Noise Red
NC2
Ref Trim

U2

13
V+
V3

10K

R4

+15VCC

-15VCC

R3 1K

-15VCC

4
5
7
1

90
-

+15VCC

LF351

U4

1
2
3
4
5
6
7
8

ENTRADA 4-20 mA

1
2

J1

U3

XTR110

+ Vcc
Source Res
Comm
Vref Force
Vref In
Gate Driv e
Vin1(10V)
SourceSense
Vin2(5V)
Vref Sense
Zero Adj1
Vref Adj
Zero Adj2
4mA Span
Zero Adj3
16mA Span

16
15
14
13
12
11
10
9

1 uF

C2

1 Q1

+15VCC

SALIDA 4-20 mA

1
2

3
MOSFET MTP2955
2
J2

Diseo y construccin de una tarjeta programable


de adquisicin, procesamiento de datos y control
Anexos

Figura A.4 Circuito esquemtico de tarjeta de aplicacin.

R7
3K9

1
2

J6

1
2

J5

a
b
c
d
e
f
g
dp

JP1

2N3904

Q1

R6
220

D1

VCC

C5

B0
B1
B2
B3

LDR

470

1
R5

10K

R2

D2 D3 D4 D5 D6 D7 D8 D9

7
6
4
2
1
9
10
5

10K

R8

10K
R1

R4

B4
B5
B6
B7

7
1
2
6

4
5
3

74LS48

BI OA
RBI OB
LT OC
OD
A OE
B OF
C OG
D

U2
13
12
11
10
9
15
14
S0
S1
S2
S3
S4
S5
S6

1
2
3

C5
100n

1
2
3

VCC

1
2
3

5
6
7

VCC

a
b
c
d
e
f
g
dp

VREF

AOUT

B7

CON2

1
2

J7

2N3904

Q2
2

C4
47uF/16v

11

12

13

14

15

S0 7
S1 6
S2 4
S3 2
S4 1
S5 9
S6 10
S7 5

OSC

EXT

AGND

PCF8591

SDA
SCL

A0
A1
A2

AIN0
AIN1
AIN2
AIN3

JP2

9
10

S0 7
S1 6
S2 4
S3 2
S4 1
S5 9
S6 10
S7 5

C4
C3

AN3

1
2
3
4

U3

a
b
c
d
e
f
g
dp

JP3

LED

D27

A5

B6
2N3904

Q3

100n

C1

VAN

S0 7
S1 6
S2 4
S3 2
S4 1
S5 9
S6 10
S7 5

a
b
c
d
e
f
g
dp

JP4

10K

R9

3
8
2

B5
2N3904

Q4

470

S0 7
S1 6
S2 4
S3 2
S4 1
S5 9
S6 10
S7 5

R10

SW3
a
b
c
d
e
f
g
dp

JP5

2
3
4
5
6
7
8
9

D10

1
2
3

R3
10K

D26

SW4
1

D11

LM35/TO

B4
2N3904

Q5

SW6
D13

U1

SW7
D14

VS+ VOUT
SW8
D15

1
SW9
1k

B2
B3
B4
B5
B6
B7

D2
D3
D4
D5
D6
D7

B0
B1

D0
D1

VCC

B6

VCC1

R13

D16

R14
3K9

SW10
D17

R12
3K9

B4
B2
B0

C5
D6
D4
D2
D0

C3

A5

VCC

SW12
VAN

D24

AN3

SW13
1
3
5
7
9
11
13
15
17
19
21
23
25
27
29
31
33
35

D23

VCC1

SW14

2
4
6
8
10
12
14
16
18
20
22
24
26
28
30
32
34
36

JP6

D22

VCC

SW15
D21

J4

SW16
D20

VCC1

2
2

B5
B3
B1

D7
D5
D3
D1

C4
RB0
A4

A2

SW18
9
8
7
6
5
4
3
2

D18

A4
1

R15
1k
B7

470

R11

SW19

J3

3
8

3
1

SW5
D12

3
8

SW11
D25

SW17
D19

RB0
SW20

J2

3
8

91

8
3

J1

Diseo y construccin de una tarjeta programable


de adquisicin, procesamiento de datos y control
Anexos

Diseo y construccin de una tarjeta programable


de adquisicin, procesamiento de datos y control

Anexo B.

Anexos

Diseos de placas de circuito impreso

Figura B.1 Diseo de la cara superior de la tarjeta principal.

92

Diseo y construccin de una tarjeta programable


de adquisicin, procesamiento de datos y control

Anexos

Figura B.2 Diseo de la cara inferior de la tarjeta principal.

93

Diseo y construccin de una tarjeta programable


de adquisicin, procesamiento de datos y control

Anexos

Figura B.3 Capa de leyenda de componentes de la tarjeta principal

94

Diseo y construccin de una tarjeta programable


de adquisicin, procesamiento de datos y control

Anexos

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


Compo- Ubicanente
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- Ubicanente
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- Ubicanente
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

95

Compo- Ubicanente
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- Ubicanente
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


de adquisicin, procesamiento de datos y control

Anexos

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

96

Diseo y construccin de una tarjeta programable


de adquisicin, procesamiento de datos y control

Anexos

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

97

Diseo y construccin de una tarjeta programable


de adquisicin, procesamiento de datos y control

Anexos

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

98

Diseo y construccin de una tarjeta programable


de adquisicin, procesamiento de datos y control

Anexos

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

99

Diseo y construccin de una tarjeta programable


de adquisicin, procesamiento de datos y control

Anexos

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

100

Diseo y construccin de una tarjeta programable


de adquisicin, procesamiento de datos y control

Anexos

Figura B.9 Diseo de la cara superior de la tarjeta de aplicacin.

101

Diseo y construccin de una tarjeta programable


de adquisicin, procesamiento de datos y control

Anexos

Figura B.10 Diseo de la cara inferior de la tarjeta de aplicacin.

102

Diseo y construccin de una tarjeta programable


de adquisicin, procesamiento de datos y control

Anexos

Figura B.11 Capa de leyenda de componentes de la tarjeta de aplicacin.

103

Diseo y construccin de una tarjeta programable


de adquisicin, procesamiento de datos y control

Anexo C.

Anexos

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.

Nombre

Mdulo de entrada
Puerto B (E/S digitales)

E/S digitales
Puerto D (E/S digitales)

2
3
4
5
6
7

Entradas
analgicas
Potencia para
motores
Pantalla de
cristal lquido
(LCD)
Comunicacin
RS232
Comunicacin
I2 C
E/S de 4 - 20
mA

Entrada analgica RA0

Mdulo de salida
Puerto D (E/S
digitales)
Puerto B (E/S
digitales)
Puerto B (E/S
digitales)

Potencia para motores

LCD

Puerto B (E/S digitales)

RS232

Memoria EEPROM

Programa
1.A
1.B
2
3
4

E/S de 4-20 mA
*

Puerto B (E/S
digitales)
E/S de 4-20 mA

5
6.A
6.B
7.A
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;
PORTD = 0;LATD = 0;
INTCON2 = 0x80;
TRISD = 0x00;

// PORTB entrada
// PORTD salida

while (1)
{
104

Diseo y construccin de una tarjeta programable


de adquisicin, procesamiento de datos y control

PORTD = ~PORTB;

Anexos

// 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;
PORTD = 0;LATD = 0;
INTCON2 = 0x80;
TRISD = 0xFF;
while (1)
{
PORTB = ~PORTD;
}
}

// PORTB salida
// PORTD entrada
// PORTB = complemento a 1 de PORTD

105

Diseo y construccin de una tarjeta programable


de adquisicin, procesamiento de datos y control

Anexos

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;
}
}

106

Diseo y construccin de una tarjeta programable


de adquisicin, procesamiento de datos y control

Anexos

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;
PORTB=0x38;
Delay1KTCYx(3);
EN=0;
Delay1KTCYx(3);

//Transmisin 8 bits, una lnea, 5x8 puntos

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

//Mensaje fijo

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

//Enciende display

RS=1;
for(i=0;i<7;i++)
107

Diseo y construccin de una tarjeta programable


de adquisicin, procesamiento de datos y control

Anexos

{
EN=1;
PORTB=mensaje[i];
Delay1KTCYx(3);
EN=0;
Delay1KTCYx(3);
}
RS=0;Delay10TCYx(1);EN=1;
PORTB=0xC0;
Delay10TCYx(3);
EN=0;
Delay10TCYx(3);

//Cambia de rengln

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

108

Diseo y construccin de una tarjeta programable


de adquisicin, procesamiento de datos y control

Anexos

if(TXSTAbits.TRMT == 1)
break;
}
CloseUSART();
}
Programa 6.A Comunicacin I2C (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 I2C (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

109

Diseo y construccin de una tarjeta programable


de adquisicin, procesamiento de datos y control

Anexos

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;
while(SSPCON2bits.SEN);
SSPCON2bits.ACKDT = 0;

// Enva bit de inicio


// y lo espera para limpiar
// el bit de ACK

PIR1bits.SSPIF = 0;
SSPBUF = 0xA0;
de escritura
while(!PIR1bits.SSPIF);
PIR1bits.SSPIF = 0;

// espera la interrupcin
// entonces limpia la bandera.

SSPBUF = 0x00;
while(!PIR1bits.SSPIF);
PIR1bits.SSPIF = 0;

// Se enva el byte alto


// de la direccin 0x0000
//

SSPBUF = 0x00;
while(!PIR1bits.SSPIF);
PIR1bits.SSPIF = 0;

// Se enva el byte bajo


// de la direccin 0x0000
//

SSPCON2bits.RSEN = 1;
while(SSPCON2bits.RSEN);

// enva el bit de inicio repetido


// y espera por el para limpiar

// 10100000 - Comando

PIR1bits.SSPIF = 0;
SSPBUF = 0xA1;
de lectura
while(!PIR1bits.SSPIF);
PIR1bits.SSPIF = 0;

// 10100001 - comando
// espera por la interrupcin
// entonces limpia la bandera.

SSPCON2bits.RCEN = 1;
while(!SSPSTATbits.BF);
buffer[0] = SSPBUF;
SSPCON2bits.ACKEN = 1;
while(SSPCON2bits.ACKEN);
ACK termine

// empieza a recibir
// espera por el dato
// y lo obtiene
// empieza la secuencia de ACK
// espera a que la secuencia

SSPCON2bits.RCEN = 1;
while(!SSPSTATbits.BF);
buffer[1] = SSPBUF;
SSPCON2bits.ACKEN = 1;

// Empieza a recibir
// espera por el dato
// y lo obtiene
// empieza la secuencia de ACK
110

Diseo y construccin de una tarjeta programable


de adquisicin, procesamiento de datos y control

Anexos

while(SSPCON2bits.ACKEN);
ACK termine

// espera a que la secuencia

SSPCON2bits.RCEN = 1;
while(!SSPSTATbits.BF);
buffer[2] = SSPBUF;
SSPCON2bits.ACKEN = 1;
while(SSPCON2bits.ACKEN);
ACK termine

// Empieza a recibir
// espera por el dato
// y lo obtiene
// empieza la secuencia de ACK
// espera a que la secuencia

SSPCON2bits.RCEN = 1;
while(!SSPSTATbits.BF);
buffer[3] = SSPBUF;
SSPCON2bits.ACKDT = 1;
ultimo byte
SSPCON2bits.ACKEN = 1;
while(SSPCON2bits.ACKEN);
ACK termine

// Empieza a recibir
// espera por el dato
// y lo obtiene
// sin reconocimiento para el
// inicia secuencia ACK
// espera a que la secuencia

SSPCON2bits.PEN = 1;
PORTD=buffer[0];
while(1);

// enva bit de paro

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
111

Diseo y construccin de una tarjeta programable


de adquisicin, procesamiento de datos y control

Anexos

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);
}
}

112

Diseo y construccin de una tarjeta programable


de adquisicin, procesamiento de datos y control

Anexos

Anexo D.

Documentacin de los programas de control de las plantas

Anexo D.1.
lnea

Diagrama de flujo del programa de control del robot mvil seguidor de

113

Diseo y construccin de una tarjeta programable


de adquisicin, procesamiento de datos y control

Anexo D.2.
lnea

Anexos

Documentacin del programa de control del robot mvil seguidor de

// 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)
{
PORTCbits.RC2=1;
PORTBbits.RB6=0;
PORTBbits.RB7=0;
PORTAbits.RA4=1;
}
void girizq(void)
{
PORTCbits.RC2=0;
PORTBbits.RB6=1;
PORTBbits.RB7=1;
PORTAbits.RA4=0;
}
void adelante(void)
{
PORTCbits.RC2=1;
PORTBbits.RB6=0;
PORTBbits.RB7=1;
PORTAbits.RA4=0;
}

// Subrutina para que el robot mvil gire hacia la derecha


// El motor izquierdo gira
// hacia delante y
// el motor derecho gira
// hacia atrs
// Subrutina para que el robot mvil gire hacia la izquierda
// El motor izquierdo gira
// hacia atrs y
// el motor derecho gira
// hacia delante
// Subrutina para que el robot mvil avance
//
// Ambos motores
// giran hacia delante
//

void apagado(void)
{
PORTCbits.RC2=0;
PORTBbits.RB6=0;
PORTBbits.RB7=0;
PORTAbits.RA4=0;
}

// Subrutina de apagado de motores

void main (void)


{
PORTA = 0;LATA = 0;
ADCON1 = 0x02;
TRISA = 0x00;
PORTB = 0;LATB = 0;
INTCON2 = 0x80;

// Inicio de programa principal

// Desactiva los
// motores
// izquierdo y
// derecho

// Asigna un valor inicial de 0 al puerto A


// El puerto A acta con 5 entradas analgicas y 3 E/S digitales
// Configura puerto A como salidas digitales
// Asigna un valor inicial de 0 al puerto B
// Deshabilita las interrupciones

114

Diseo y construccin de una tarjeta programable


de adquisicin, procesamiento de datos y control
TRISB = 0x00;
PORTC = 0;LATC = 0;
TRISC = 0;
PORTD = 0; LATD = 0;
TRISD = 0xFF;
PORTE = 0; LATE = 0;
TRISE = 0x00;
while (1)
{
switch(PORTD)
{
case 0x00:
adelante();
break;
case 0x01:
girizq();
break;
case 0x02:
girder();
break;
case 0x03:
apagado();
break;
}
}
}

Anexos

// Configura puerto B como salidas digitales


// Asigna un valor inicial de 0 al puerto C
// Configura puerto C como salidas digitales
// Asigna un valor inicial de 0 al puerto D
// Configura el puerto D como entradas digitales
// Asigna un valor inicial de 0 al puerto E
// Configura el puerto E como salidas digitales
// Empieza un ciclo infinito donde esta el control del robot mvil
// Se lee el Puerto D donde estn conectados los sensores
// y segn el valor de ste, se toma una decisin
// Los sensores estn sobre la lnea negra, por lo que
// la accin a tomar es que el robot avance
// Sale de la sentencia SWITCH
// El sensor derecho detecta una rea blanca,
// entonces el carro gira hacia la izquierda
// Sale de la sentencia SWITCH
// El sensor izquierdo detecta una rea blanca,
// entonces el carro gira hacia la derecha
// Sale de la sentencia SWITCH
// Ambos sensores detectan una rea blanca,
// entonces el robot mvil se detiene
// Sale de la sentencia SWITCH
// Fin del programa

115

Diseo y construccin de una tarjeta programable


de adquisicin, procesamiento de datos y control

Anexos

Anexo D.3. Diagrama de flujo del programa de control del modelo a escala de la
plataforma de seguimiento solar
busqueda
baja
Inicio

refsube

D2=0

Portd=0

D3=0

B7=0

arranqe

flgd,2=0
Intcon

refsube

Porta,5=1

B5=1

flgd,2=1

arranqe

iz

home
Intcon=b10001000

Flg lim=0

D3=1

home

D1=

tmr0=0

B5=1

Portd=0

izq

flga=0

flg ciclsbusq=0

home3

siguelo

izq

D1=0

obj=0

D1=

Flgb=0

home3
home3

Flgc=0

subelo

izq2

Flgd=0

Portb,4=0
flgB,4=0
flgB,4=1

D1=1

Portd=0

trampI=0

trampD=0

home2

Flgd,1=1

bajalo

Ciclos busq=8

busqueda

Portb,5=0
flgB,5=1

flgB,5=0

Intcon=b10101000
flgB,6=0

opcion=b10100001
Tmr0=200

busqueda
Portd=0
Freno horz

D0=1

Portb,7=0
flgB,7=1

flg subelo=0

3 seg

Portb,6=0
flgB,6=1

subelo

Pasos=4

flgB,7=0

Intcon=b10001000

busqueda

D2=

home3
tmr0=0
Horz=1

Flg subelo=1
Flg bajalo=0
busqueda

reposo

Sube

Intcon=0

frenovert

Portd=0

bajalo
flg bajalo=0

home2
tmr0=0
B5=1

sleep

busqueda

fin

Portd=0
Freno horz

izq2
b10001000
1

D3=1
Flg subelo=0
Flg bajalo=1

116

busqueda

Diseo y construccin de una tarjeta programable


de adquisicin, procesamiento de datos y control

Anexos

siguelo

chk13DI

Intcon=b10001000

trpD=0

Cent1=0

chktrpI/4

Frenovert/horz

trpI=0
Chkcent1/2

Chkcent4/trpD

Flgsiguelo=1
Flg_obj_perd=0
ssiguelo

Flgbaj=0

Flg2DB=0

Cent2=0

Cent3=0

Obj=1
Chkcent3/trpD
chkcenti
Flg2IB=0
Flg_obj_perd=1
ssiguelo
CHK13DI

cent3=0
Chkcent2/trpI

Flga=0
Flgc=0
Flgc,2=1
Flg_obj_perd=0

Flg2DS=0

dersub

trpD=0

2dersub

trpI=0
sube

Chkcent3/4

ssiguelo

Intcon=b
Chkcent3/4

Cent4=0

Cent3=0
ssiguelo

Chkcent1/trpI
dersub
Flg2IS=0
FlgDS=0

chkcenti

ssiguelo

Flg_obj_perd=1

cent4=0
chk24DI

flg limite=0

izqsub
Cent2=0

home
Chkcent3/trpD
B4=0
chk24DI
B5=0
Flgsub=0

Cent1=0
Chkcent4/trpD

sub

FlgIS=0
Flgsub=0

Flg2IB=0
ssiguelo
Cent4=0
Portd=0
chktrpI/4

Intcon=b10001000

Flg2IS=0

Flga=0
Flgc=0

trpD=0

Flgsiguelo=1

baj

Flgsub=1
flg2DB=0
2

trpI=0

D2=1
ssiguelo

sub
ssiguelo

117

chktrpI/3
trpI=0

flg2DS=0
trampI=0

2izqsub

chktrpI/3

baja

Frenovert/horz

izqsub

Diseo y construccin de una tarjeta programable


de adquisicin, procesamiento de datos y control
Chkcent1/2

Chkcent4/trpD

Anexos

Chkcent3/trpD

Chkcent2/trpI

Chkcent1/trpI

Cent1=0

Cent4=0

Cent3=0

Cent2=0

Cent1=0

Derbaj

3derbaj

3izqbaj

3izqbaj

3derbaj

Flg3DB=0

Flg3IB=0

Flg3IB=0

Flg3DB=0

trpD=0

trpD=0

trpI=0

trpI=0

izqbaj

Derbaj

izqbaj

dersub

izqsub

FlgIB=0

FlgDB=0

FlgIB=0

2derbaj

2izqbaj

2dersub

2izqsub

deron=100

izqon=100

deron=100

izqon=100

der off=10

Izq off=10

deroff=10

Izq off=10

Flg velizq=0

Flg velizq=1

Flg velizq=0

Flg velizq=1

Flg 2DB=0

Flg 2IB=0

Flg 2DS=0

Flg 2IS=0

Flgc=0

ssiguelo

ssiguelo

ssiguelo

ssiguelo

Flgsiguelo=1

portd=0

portd=0

portd=0

portd=0

Flgbaj=1

Flga=0

Flga=0

Flga=0

Flga=0

D3=1

Flgc=0

Flgc=0

Flgc=0

Flgc=0

Flgc,2=1

Flgc,2=1

Flgc,2=1

Flgc,2=1

Flg 2DB=1

Flg 2IB=1

Flg 2DS=1

Flg 2IS=1

Intcon=b10101000

Intcon=b10101000

Intcon=b10101000

Intcon=b10101000

Opcin=b10000111

Opcin=b10000111

Opcin=b10000111

Opcin=b10000111

Tmr0=100

Tmr0=100

Tmr0=100

Tmr0=100

B4=0

B5=0

B4=0

B5=0

sigue2DB

sigue2IB

sigue2DS

sigue2IS

D0=1

D1=1

D0=1

D1=1

D3=1

D3=1

D2=1

D2=1

ssiguelo

ssiguelo

ssiguelo

ssiguelo

FlgDB=0
cent2=0

baj
Flgbaj=0
ssiguelo
Intcon=b10001000

FlgIS=0

FlgDS=0
2izqsub

2dersub

Portd=0
Flga=0

ssiguelo

sigue2DB

sigue2IB

sigue2DS

sigue2IS

Flg 2DB=0

Flg 2IB=0

Flg 2DS=0

Flg 2IS=0

Intcon=b10001000

Intcon=b10001000

Intcon=b10001000

Intcon=b10001000

ssiguelo

ssiguelo

118

ssiguelo

ssiguelo

Diseo y construccin de una tarjeta programable


de adquisicin, procesamiento de datos y control
izqsube

izqbaja

Anexos

dersube

3derbaja

derbaja

3izqbaja

izqon=100

izqon=100

deron=100

deron=100

deron=100

izqon=100

Izqoff=3

Izqoff=3

deroff=3

deroff=3

deroff=20

Izqoff=20

Flg velizq=1

Flg velizq=1

Flg velizq=0

Flg velizq=0

Flg velizq=0

Flg velizq=1

Flg IB=0

Flg IS=0

Flg DS=0

Flg DB=0

Flg 3DB=0

Flg 3IB=0

ssiguelo

ssiguelo

ssiguelo

ssiguelo

ssiguelo

ssiguelo

portd=0

portd=0

portd=0

portd=0

portd=0

portd=0

Flga=0

Flga=0

Flga=0

Flga=0

Flga=0

Flga=0

Flgc=

Flgc=0

Flgc=0

Flgc=0

Flgc=0

Flgc=0

Flgc,2=1

Flgc,2=1

Flgc,2=1

Flgc,2=1

Flgc,2=1

Flgc,2=1

Flg IB=1

Flg IS=1

Flg DS=1

Flg DB=1

Flg 3DB=1

Flg 3IB=1

Intcon=b10101000

Intcon=b10101000

Intcon=b10101000

Intcon=b10101000

Intcon=b10101000

Intcon=b10101000

Opcin=b10000111

Opcin=b10000111

Opcin=b10000111 Opcin=b10000111

Opcin=b10000111

Opcin=b10000111

Tmr0=100

Tmr0=100

Tmr0=100

Tmr0=100

B5=0

B5=0

B4=0

B5=0

sigueIB

sigueIS

sigue3DB

sigue3IB

D1=1

D1=1

D3=1

D2=1

ssiguelo

ssiguelo

sigueIS

sigueIB

Tmr0=100

Tmr0=100

B4=0

B4=0

sigueDS

sigueDB

D0=1

D0=1

D0=1

D1=1

D2=1

D3=1

D3=1

D3=1

ssiguelo

ssiguelo

ssiguelo

ssiguelo

sigueDB

sigue3DB

sigueDS

sigue3IB

Flg IB=0

Flg IS=0

Flg DS=0

Flg DB=0

Flg 3DB=0

Flg 3IB=0

Intcon=b10001000

Intcon=b10001000

Intcon=b10001000

Intcon=b10001000

Intcon=b10001000

Intcon=b10001000

ssiguelo

ssiguelo

ssiguelo

119

ssiguelo

ssiguelo

ssiguelo

Diseo y construccin de una tarjeta programable


de adquisicin, procesamiento de datos y control
interrupcio

chkgiro

Chk flg B5

flgsiguelo=0
Flgsigelo=1
velgirohorz
norebot
frenovert
B4=0
Chk flg B4

Flg B4=0

Anexos

Intcon,2=0
Tmr0=200
Flg B4=1
derecha

offlagb4
conti1

velgirohorz

Pasos-=0

Intcon,0=0

Flg velizq=0
bajar

Flg B5=0
velizq

Flg B0=0

conti2
Flg on/off=0
Flg B5=1

Chk flg B5

retfie

offlagb5
conti2

Flg B6=0

Flg on/off=0

Flg ciclosbusq=1

retfie

retfie

D1=1
Flg on/off=0

Tmr0=izqon
B7=0

subir
D2=1

Conti_D
Flg B0=0
decr
Pasos-=0

Intcon,2=0
Intcon=b10001000

retfie

retfie

retfie

subir

Tmr0=izqoff

Flg B0=1
Pasos=4
D2=1

Conti_I

Chk flg B4
Flg B0=0

Flg B7=0

Flg B4=0

decr

offlagb7

conti1

Pasos-=0

retfie
derecha

frenoh
Intcon,2=0

subir

Flg B4=1
chkgiro

Flg B0=1

Flgsiguelo=0
Intcon,0=0

retfie

retfie

para

Intcon,0=0

Intcon,2=0

D3=1

D1=0
Flg on/off=1

On izq

bajar

retfie

Conti_I

Tmr0=deron

Intcon,2=0

Chk flg B7

velizq
ciclsbusq-=0

On izq

offlagb6
conti3

retfie

retfie

para

On der

B6=0
Chk flg B6

D0=0

Tmr0=deroff

retfie

Intcon,2=0

D3=1

Intcon,2=0

Flgsiguelo=0

Flg on/off=0

On der

Flg on/off=1

frenoh

D0=1
Flg B5=0

Pasos=4

Flgposini=1

D1=1
B5=0

decr

Pasos=4
para

D2=1
retfie

ciclsbusq-=0
Conti_D
Flg ciclosbusq=1
retfie

120

D0=1
retfie

Diseo y construccin de una tarjeta programable


de adquisicin, procesamiento de datos y control

Anexos

Flg B6=0

offlagb4

refres

Chk flg B7

Chk flg B6

Flg B7=0

Intcon,0=0
retfie

Flg B4=0
Intcon,0=0

refres

conti3

retfie

Intcon,0=0

Intcon,0=0

Flg B6=1

Flg B7=1

Flg B5=0

Intcon,2=0

Intcon,2=0

Intcon,0=0

Tmr0=

Tmr0=

retfie

Flgposini=1

Flgposini=1

retfie

retfie

portd=0

portd=0

Intcon=b10001000

Intcon=b10001000

Flg limite=1

Flg limite=1

retfie

retfie

offlagb5

offlagb6
Flg B6=0
Intcon,0=0
Intcon,2=0
Tmr0=
retfie

offlagb7
Flg B7=0

posinis

posinib
Portd,2=0
Portd,3=1
retfie

Portd,3=0

Intcon,0=0

Portd,2=1

Intcon,2=0

retfie

Tmr0=
retfie

121

Diseo y construccin de una tarjeta programable


de adquisicin, procesamiento de datos y control

frenovert
Cont1=2
c12
Cont2=100
c11
portD=b00100

frenohorz

portD=b00001

portD=b00101

c15

nop

nop

nop

nop

nop

nop

Cont3=80

Cont3=80

c5

Conta3=250
Conta3-=0
c15

c1

c14

Cont3-=0

Cont3-=0

c5

c1

portD=b00010

portD=b01010

Cont3=80

Cont3=80

Conta1-=0

portD=b01000
Cont3=80

c10

Conta2=250
c14

c3

c6

c13
Retlw 0

c2
Cont3-=0

Cont3-=0

c6

c2

norebot
c23

Cont2-=0
c11

Cont1-=0
c12
portd=0
return

Conta1=1

Conta2-=0

c9

Cont3-=0

c13

Cont2=100

c7

Cont3=80

c10

c4
Cont2=100

nop

Tresseg

Cont1=2

c8

nop

Cont3-=0

Frenohorz/vert

Cont1=20

nop

c9

Anexos

Conta1=2
Conta2=100

Cont2-=0

Cont2-=0

c24

c7

c3

c25

Conta3=100
Conta3-=0
Cont1-=0

Cont1-=0

c8

c4

portd=0

portd=0

return

return

c25
Conta2-=0
c24
Conta1-=0
c23
Retlw 0

122

Diseo y construccin de una tarjeta programable


de adquisicin, procesamiento de datos y control

Anexos

flga

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

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

flgb

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

flgc

0
1
2
3
4
5
6
7

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

flgd

0
1
2
3
4
5
6
7

0
1
2
3
4
5
6
7

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

123

Anexos

PORT A

Diseo y construccin de una tarjeta programable


de adquisicin, procesamiento de datos y control

No empleada
No empleada
No empleada
No empleada
Entrada de pulsos que provienen del encoder
Arranque del sistema
No empleada
No empleada
No empleada

PORT B

0
1
2
3
4
5
6
7

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

PORT D

0
1
2
3
4
5
6
7

0
1
2
3
4
5
6
7

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

124

Diseo y construccin de una tarjeta programable


de adquisicin, procesamiento de datos y control

adcon1
intcon
opcion
estado
tmr0
porta
portb
portd
trisa
trisb
trisd
conta1
conta2
conta3
cont1
cont2
cont3
flga
flgb
flgc
flgd
deron
deroff
izqon
izqoff
pasos
cbusq

equ
equ
equ
equ
equ
equ
equ
equ
equ
equ
equ
equ
equ
equ
equ
equ
equ
equ
equ
equ
equ
equ
equ
equ
equ
equ
equ

9fh
0bh
81h
03h
01h
05h
06h
08h
85h
86h
88h
20h
21h
22h
23h
24h
25h
26h
27h
28h
29h
2ah
2bh
2ch
2dh
2eh
2fh

Anexos

Mnemnicos de las direcciones en la memoria de


datos empleadas en el programa

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

125

Diseo y construccin de una tarjeta programable


de adquisicin, procesamiento de datos y control
chkgiro

onder

onizq

chflgb5

velgirh

velizq

chflgb4

para
decr

retfie
btfsc
goto
call
bcf
movlw
movwf
btfss
goto
bsf
retfie
bsf
bcf
bcf
movf
movwf
retfie
bsf
bcf
bcf
movf
movwf
retfie
bcf
btfsc
goto
bsf
btfss
retfie
call
btfsc
goto
decfsz
goto
bsf
retfie
btfsc
goto
btfsc
goto
bcf
bsf
bcf
movf
movwf
retfie
btfsc
goto
bcf
bsf
bcf
movf
movwf
retfie
bcf
btfsc
goto
call
bsf
btfsc
goto
decfsz
goto
bsf
retfie
movlw
movwf
retfie
decfsz
goto

Anexos

; Retorno de subrutina al programa principal


flgc,2
; Checa bandera sigelo. Si esta desactivada se produce salto de instruccin
velgirh ; Salto a la etiqueta velgirh
frenov
; Llamada a rutina que frena el giro vertical
intcon,2 ; Limpia bandera de interrupcin por desbordamiento del registro tmr0
.200
; Se carga el tmr0=200 para que combinado con el divisor de frecuencia 1:4
tmr0
; y el paso del tornillo sin fin de la planta, produzca un giro vertical de 2.5
flgb,4
; Checa bandera de interruptor de limite derecho. Si esta activada se produce salto de
instruccin
derecha ; Salto a la etiqueta derecha
portd,1 ; Activa giro a la izquierda
; Retorno de la rutina que atiende la interrupcin, al programa principal
portd,0 ; Activa giro a la derecha
flgc,3
; Limpia bandera
intcon,2 ; Limpia bandera de interrupcin por desbordamiento de tmr0
deron,0 ; Se carga el tmr0 con el valor de
tmr0
; la variable deron
; Retorno de la rutina que atiende la interrupcin, al programa principal
portd,1 ; Se active giro a la izquierda
flgc,3
; Limpia bandera on/off
intcon,2 ; Limpia bandera de interrupcin por desbordamiento del registro tmr0
izqon,0 ; Se carga el tmr0 con el valor de
tmr0
; la variable izqon
; Retorno de la rutina que atiende la interrupcin, al programa principal
intcon,0 ; Limpia bandera de interrupcin por cambio de estado en el puerto B
flgb,5
; Checa bandera de interruptor de lmite izquierdo. Si no esta activado se produce salto
de instruccin
conti2
; Salto a la etiqueta conti2
flgb,5
; Activa bandera izquierda
flgd,1
; Checa bandera pos ini. Si esta activada se produce salto de instruccin
; Retorno de la rutina que atiende la interrupcin, al programa principal
frenoh
; Llamada a rutina que frena el giro horizontal
flgc,2
; Checa bandera sigelo. Si esta desactivada se produce salto de instruccin
para
; Salto a la etiqueta para
cbusq,1 ; Decrementa variable cbusq. Si reduce a cero, se produce salto de instruccin
conti_i
; Salto a la etiqueta conti_i
flgb,3
; Activa bandera ciclos de busq
; Retorno de la rutina que atiende la interrupcin, al programa principal
flgd,0
; Checa bandera vel izq. Si esta desactivada se produce salto de instruccin
velizq
; Salto a la etiqueta velizq
flgc,3
; Checa bandera on/off. Si esta desactivada se produce salto de instruccin
onder
; Salto a la etiqueta onder
portd,0 ; Se desactiva giro a la derecha
flgc,3
; Activa bandera on/off
intcon,2 ; Limpia bandera de interrupcin por desbordamiento del registro tmr0
deroff,0 ; Se carga el tmr0 con el valor de
tmr0
; la variable deroff
; Retorno de la rutina que atiende la interrupcin, al programa principal
flgc,3
; Checa bandera on/off. Si esta desactivada se produce salto de instruccin
onizq
; Salto a la etiqueta onizq
portd,1 ; Se desactiva giro a la izquierda
flgc,3
; Activa bandera on/off
intcon,2 ; Limpia bandera de interrupcin por desbordamiento del registro tmr0
izqoff,0 ; Se carga el tmr0 con el valor de
tmr0
; la variable izqoff
; Retorno de la rutina que atiende la interrupcin, al programa principal
intcon,0 ; Limpia bandera de interrupcin por cambio de estado en el puerto B
flgb,4
; Checa bandera derecha. Si esta desactivada se produce salto de instruccin
conti1
; Salto a la etiqueta conti1
frenoh
; Llamada a rutina que frena el giro horizontal
flgb,4
; Activa bandera derecha
flgc,2
; Checa bandera sigelo. Si esta desactivada se produce salto de instruccin
para
; Salto a la etiqueta para
cbusq,1 ; Decrementa variable cbusq. Si reduce a cero, se produce salto de instruccin
conti_d ; Salto a la etiqueta conti_d
flgb,3
; Activa bandera ciclos de busq
; Retorno de la rutina que atiende la interrupcin, al programa principal
b'1000100
; Se activa interrupcin por
intcon
; cambio de estado del puerto B
; Retorno de la rutina que atiende la interrupcin, al programa principal
pasos,1 ; Decrementa variable pasos. Si reduce a cero, se produce salto de instruccin
bajar
; Salto a la etiqueta bajar

126

Diseo y construccin de una tarjeta programable


de adquisicin, procesamiento de datos y control
bcf
movlw
movwf
bsf
retfie
bajar
bsf
retfie
subir
bsf
retfie
conti_d btfsc
goto
decfsz
goto
bsf
movlw
movwf
bsf
retfie
derecha bsf
retfie
conti_i
btfsc
goto
decfsz
goto
bsf
movlw
movwf
bsf
retfie
chflgb6 btfsc
goto
bcf
bsf
bcf
clrf
btfss
retfie
clrf
movlw
movwf
bsf
retfie
chflgb7 btfsc
goto
bcf
bsf
bcf
clrf
btfss
retfie
clrf
movlw
movwf
bsf
retfie
refres
bcf
retfie
offlgb4 bcf
bcf
retfie
offlgb5 bcf
bcf
retfie
offlgb6 bcf
bcf
bcf
clrf
retfie
offlgb7 bcf
bcf
bcf

flgb,0

Anexos

; Limpia bandera inca/decr altura

.4
pasos
portd,3

; Se carga pasos = 4, que es el nmero de veces que el giro vertical


; incrementara / decrementar 2.5
; Se activa giro hacia abajo
; Retorno de la rutina que atiende la interrupcin, al programa principal
portd,3 ; Se activa giro hacia abajo
; Retorno de la rutina que atiende la interrupcin, al programa principal
portd,2 ; Se activa giro hacia arriba
; Retorno de la rutina que atiende la interrupcin, al programa principal
flgb,0
; Checa bandera inca/decr altura. Si esta desactivada se produce salto de instruccin
decr
; Salto a la etiqueta decr
pasos,1 ; Decrementa variable pasos. Si reduce a cero, se produce salto de instruccin
subir
; Salto a la etiqueta subir
flgb,0
; Activa bandera incr/decr altura
.4
; Se carga pasos = 4, que es el numero de veces que el giro vertical
pasos
; que incrementara / decrementar 2.5
portd,2 ; Se activa giro hacia arriba
; Retorno de la rutina que atiende la interrupcin, al programa principal
portd,0 ; Se activa giro a la derecha
; Retorno de la rutina que atiende la interrupcin, al programa principal
flgb,0
; Checa bandera incr/decr altura. Si esta desactivada se produce salto de instruccin
decr
; Salto a la etiqueta decr
pasos,1 ; Decrementa variable pasos. Si reduce a cero, se produce salto de instruccin
subir
; Salto a la etiqueta subir
flgb,0
; Se activa bandera inca/decr altura
.4
; Se carga pasos = 4, que es el numero de veces que el giro vertical
pasos
; que incrementara / decrementar 2.5
portd,2 ; Se activa giro a la derecha
; Retorno de la rutina que atiende la interrupcin, al programa principal
flgb,6
; Checa bandera arriba. Si esta desactivada se produce salto de instruccin
conti3
; Salto a la etiqueta conti3
intcon,0 ; Limpia bandera de interrupcin por cambio de estado en el puerto B
flgb,6
; Activa bandera arriba
intcon,2 ; Limpia bandera de interrupcin por desbordamiento del registro tmr0
tmr0
; Limpia registro tmr0
flgd,1
; Checa bandera pos ini. Si esta desactivada se produce salto de instruccin
; Retorno de la rutina que atiende la interrupcin, al programa principal
portd
; Limpia Puerto D
b'1000100
; Se activa interrupcin por cambio de
intcon
; estado del Puerto B
flgb,1
; Activa bandera limite
; Retorno de la rutina que atiende la interrupcin, al programa principal
flgb,7
; Checa bandera abajo. Si esta desactivada se produce salto de instruccin
refres
; Salto a la etiqueta refres
intcon,0 ; Limpia bandera de interrupcin por cambio de estado en el puerto B
flgb,7
; Activa bandera abajo
intcon,2 ; Limpia bandera de interrupcin por desbordamiento del registro tmr0
tmr0
; Limpia registro tmr0
flgd,1
; Checa bandera pos ini. Si esta activada se produce salto de instruccin
; Retorno de la rutina que atiende la interrupcin, al programa principal
portd
; Limpia Puerto D
b'10001000'
; Se activa interrupcin por cambio de
intcon
; estado del Puerto B
flgb,1
; Activa bandera limite
; Retorno de la rutina que atiende la interrupcin, al programa principal
intcon,0 ; Limpia bandera de interrupcin por cambio de estado en el puerto B
; Retorno de la rutina que atiende la interrupcin, al programa principal
flgb,4
; Limpia bandera derecha
intcon,0 ; Limpia bandera de interrupcin por cambio de estado en el puerto B
; Retorno de la rutina que atiende la interrupcin, al programa principal
flgb,5
; Limpia bandera izquierda
intcon,0 ; Limpia bandera de interrupcin por cambio de estado en el puerto B
; Retorno de la rutina que atiende la interrupcin, al programa principal
flgb,6
; Limpia bandera arriba
intcon,0 ; Limpia bandera de interrupcin por cambio de estado en el puerto B
intcon,2 ; Limpia bandera de interrupcin por desbordamiento del registro tmr0
tmr0
; Limpia registro tmr0
; Retorno de la rutina que atiende la interrupcin, al programa principal
flgb,7
; limpia bandera arriba
intcon,0 ; Limpia bandera de interrupcin por cambio de estado en el puerto B
intcon,2 ; Limpia bandera de interrupcin por desbordamiento del registro tmr0

127

Diseo y construccin de una tarjeta programable


de adquisicin, procesamiento de datos y control

Anexos

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
goto
bcf
btfsc
goto
bcf
btfsc
goto
bcf
bcf
btfsc
goto
bcf
goto

portb,4
onflgb4
flgb,4
portb,5
onflgb5
flgb,5
portb,6
onflgb6
flgb,6
flgd,2
portb,7
onflgb7
flgb,7
home3

; Checa el estado del interruptor de limite derecho, si es 0 brinca una instruccin


; Salto a la etiqueta onflgb4
; Pone acero la bandera del interruptor de limite derecho
; Checa el estado del interruptor de limite izquierdo, si es 0 brinca una instruccin
; Salto a la etiqueta onflgb5
; Pone acero la bandera del interruptor de limite izquierdo
; Checa el estado del interruptor de limite arriba, si es 0 brinca una instruccin
; Salto a la etiqueta onflgb6
; Pone acero la bandera del interruptor de limite arriba
; Pone acero la bandera subeini (se emplea para subir o bajar la placa colectora)
; Checa el estado del interruptor de limite abajo, si es 0 brinca una instruccin
; Salto a la etiqueta onflgb7
; Pone acero la bandera del interruptor de limite abajo
; Salto a la etiqueta home3

bsf
goto
bsf
goto
bsf
bsf
goto
bsf

flgb,4
s1
flgb,5
s2
flgb,6
flgd,2
s3
flgb,7

; Pone a 1 la bandera del interruptor de limite derecho


; Salto a la etiqueta s1
; Pone a 1 la bandera del interruptor de limite izquierdo
; Salto a la etiqueta s2
; Pone a 1 la bandera del interruptor de limite arriba
; Pone a 1 la bandera subeini (se usa para subir o bajar la placa colectora)
; Salto a la etiqueta s3
; Pone a 1 la bandera del interruptor de limite abajo

s1
s2

s3

onflgb4
onflgb5
onflgb6
onflgb7

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

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

clrf
btfss
goto

tmr0
; Limpia el registro tmr0 (temporizador)
portb,3 ; Checa interruptor de posicin horizontal de placa colectora, si esta activado brinca la
siguiente instruccin
sube
; Salto a etiqueta sube

128

Diseo y construccin de una tarjeta programable


de adquisicin, procesamiento de datos y control
home2

call
clrf
btfss
goto
clrf
bsf

frenov
tmr0
portb,5
izq2
portd
flgd,1

Anexos

; Llamado a rutina que frena el giro vertical de la placa colectora


; Limpia el registro tmr0 (temporizador)
; Checa interruptor de limite izquierdo, si esta activado brinca la siguiente instruccin
; Salto a etiqueta izq2
; Limpia registro portd
; 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

129

Diseo y construccin de una tarjeta programable


de adquisicin, procesamiento de datos y control
bsf
btfss

refsube

izq
izq2
sigelo

ssigelo

chcenti

goto
bcf
goto
bcf
bcf
btfss
goto
bcf
goto
bsf
goto
bsf
goto
movlw
movwf
call
bsf
bcf
btfss
goto
btfss
goto
movlw
movwf
call
clrf
clrf
bsf
bcf
goto
bsf
btfsc
goto
btfsc
goto
btfsc

goto
btfsc
goto
bcf
btfsc
goto
bcf
btfsc
goto
bcf
btfsc
goto
bcf
btfsc
goto
bcf
btfsc
goto
bcf
goto
chk24di btfsc
goto
bcf
btfsc
goto
bcf
btfsc
goto
btfsc
goto

Anexos

portd,3 ; Gira hacia abajo la placa colectora


portb,5 ; Checa interruptor de limite izquierdo. Si esta activado se produce un salto a la prxima
instruccin
izq
; Salto a la etiqueta izq
portd,1 ; Se desactiva giro a la izquierda
home3 ; Salto a la etiqueta home3
portd,3 ; Se desactiva giro hacia abajo
flgd,2
; Se limpia bandera sube ini, para que se pueda volver a subir la placa colectora
portb,5 ; Checa interruptor de limite izquierdo. Si esta activado, se produce un salto de
instruccion
izq
; Salto a la etiqueta izq
portd,1 ; Se desactiva giro a la izquierda
home3 ; Salto a la etiqueta home3
portd,1 ; Se active giro a la izquierda
home3 ; Salto a la etiqueta home3
portd,1 ; Se active giro a la izquierda
home2 ; Salto a la etiqueta home2
b'10001000'
; Se activan interrupciones por
intcon
; cambio de estado del Puerto B
frenohv ; Llamada a rutina que frena el giro vertical de la palca colectora
flgc,2
; Se activa bandera siguelo
flgb,2
; Se limpia bandera obj perd
portb,0 ; Checa sensor principal. Si esta activado se produce salto de instruccin
chcenti ; Salto a la etiqueta chcenti
flgb,2
; Checa bandera obj perd
ssigelo ; salto a etiqueta ssigelo
b'10001000'
; Se activa interrupcin por
intcon
; cambio de esta do del Puerto B
frenohv ; Llamada a rutina que frena giro horizontal y vertical
flga
; Se limpia registro de banderas flga
flgc
; Se limpia registro de banderas flgc
flgc,2
; Se activa bandera sigelo
flgb,2
; Se limpia bandera obj perd
ssigelo ; Salto a etiqueta ssigelo
flgb,2
; Se activa bandera obj perd
flgb,1
; Checa bandera limite. Si esta desactivada se produce salto de instruccin
home
; Salto a la etiqueta home
portb,4 ; Checa interruptor de limite derecho. Si esta desactivado se produce salto de instruccin
chk24di ; Salto a la etiqueta chk24di
portb,5 ; Checa interruptor de limite izquierdo. Si esta desactivado se produce salto de
instruccin
chk13di ; Salto a la etiqueta chk13di
portd,4 ; Checa sensor 1. Si esta desactivado se produce salto de instruccin
chkc4td ; Salto a etiqueta chkc4td
flga,0
; Limpia bandera 2DB
portb,2 ; Checa grupo derecho de sensores. Se esta desactivado se produce salto de instruccin
chkc1_2 ; Salto a la etiqueta chkc1_2
flgc,5
; Limpia bandera baj
portd,5 ; Checa sensor 2. si est desactivado se produce salto de instruccin
chkc3td ; Salto a etiqueta chkc3td
flga,1
; Limpia bandera 2DB
portd,6 ; Checa sensor 3. Si esta desactivado se produce salto de instruccin
chkc2ti ; Salto a etiqueta chkc2ti
flga,2
; Limpia bandera 2DS
portb,1 ; Checa grupo izquierdo de sensores. Si esta desactivado se produce salto de instruccin
chkc3_4 ; Salto a etiqueta chkc3_4
flgc,4
; Limpia bandera sub
portd,7 ; Checa sensor 4. Si esta desactivado se produce salto de instruccion
chkc1ti ; Salto a la etiqueta chkc1ti
flga,3
; Limpia bandera 2IS
ssigelo ; Salto a etiqueta ssigelo
portd,5 ; Checa sensor 2. Si esta desactivado se produce salto de instruccin
chkc3td ; Salto a etiqueta chkc3dtd
flga,1
; Limpia bandera 2IB
portd,7 ; Checa sensor 4. Si esta desactivado se produce salto de instruccin
chtiyc4 ; Salto a la etiqueta chtiyc4
flga,3
; Limpia bandera 2IS
portb,2 ; Checa grupo derecho de sensores. Si esta desactivado se produce salto de instruccin
baj
; Salto a la etiqueta baj
portb,1 ; Checa grupo izquierdo de sensores. Si esta desactivado se produce salto de instruccin
sub
; Salto a la etiqueta sub

130

Diseo y construccin de una tarjeta programable


de adquisicin, procesamiento de datos y control
goto
chk13di btfsc
goto
bcf
btfsc
goto
bcf
btfsc
goto
btfsc

chtiyc4

goto
goto
btfsc

goto
goto
chtiyc3 btfsc
goto
goto
chkc3_4 btfsc
goto
bcf
btfsc
goto
bcf
sub
btfsc
goto
clrf
movlw
movwf
clrf
clrf
bsf
bsf
bsf
goto
chkc1_2 btfsc
goto
bcf
btfsc
goto
bcf
baj
btfsc
goto
movlw
movwf
clrf
clrf
clrf
bsf
bsf
bsf
goto
chkc4td btfsc
goto
bcf
btfsc
goto
bcf
movlw
movwf
movlw
movwf
bcf
btfsc
goto
clrf
clrf
clrf

Anexos

ssigelo ; Salto a la etiqueta ssigelo


portd,4 ; Checa el sensor 1. Si esta desactivado se produce salto de instruccin
chkc4td ; Salto a la etiqueta chkc4td
flga,0
; Limpia la bandera 2DB
portd,6 ; Checa el sensor 3. Si esta desactivado se produce salto de instruccin
chtiyc3 ; Salto a la etiqueta chtiyc3
flga,2
; Limpia la bandera 2DS
portb,2 ; Checa el grupo derecho de sensores. Si esta desactivado se produce salto de
instruccin
baj
; Salto a la etiqueta baj
portb,1 ; Checa el grupo izquierdo de sensores. Si esta desactivado se produce salto de
instruccin
sub
; Salto a la etiqueta sub
ssigelo ; Salto a la etiqueta ssigelo
portb,1 ; Checa el grupo izquierdo de sensores. Si esta desactivado se produce salto de
instruccin
izqsub
; Salto a la etiqueta izqsub
dizqsub ; Salto a la etiqueta dizqsub
portb,1 ; Checa grupo izquierdo de sensores. Si esta desactivado se produce salto de instruccin
dersub ; Salto a la etiqueta dersub
ddersub ; Salto a la etiqueta ddersub
portd,6 ;Checa sensor 3. Si esta desactivado se produce salto de instruccin
dersub ; Salto a la etiqueta dersub
flgc,6
; Limpia bandera DS
portd,7 ; Checa sensor 4. Si esta desactivado se produce salto de instruccin
izqsub
; Salto a la etiqueta izqsub
flgc,7
; Limpia bandera IS
flgc,4
; Checa bandera sub
ssigelo ; Salto a etiqueta ssigelo
portd
; Limpia Puerto D
b'10001000'
; Se activa interrupcin por
intcon
;cambio de estado del puerto B
flga
; Se limpia registro de banderas flga
flgc
; Se limpia registro de banderas flgc
flgc,2
; Se activa bandera sigelo. Que indica que el programa se encuentra en esta etapa
flgc,4
; Se activa bandera sub, para que la placa colectora suba
portd,2 ; Giro hacia arriba
ssigelo ; Salto a la etiqueta ssigelo
portd,4 ; Checa sensor 1. Si esta desactivado se produce salto de instruccin
derbaj
; Salto a la etiqueta derbaj
flga,4
; Limpia bandera DB
portd,5 ; Checa sensor 2. Si esta desactivado se produce salto de instruccin
izqbaj
; Salto a la etiqueta izqbaj
flga,5
; Limpia bandera IB
flgc,5
; Checa bandera baj
ssigelo ; Salto a la etiqueta ssigelo
b'10001000'
; Se activa interrupcin por
intcon
; cambio de estado del Puerto B
portd
; Limpia Puerto D
flga
; Limpia registro de banderas flga
flgc
; Limpia registro de banderas flgc
flgc,2
; Se activa bandera sigelo
flgc,5
; Se activa bandera baj
portd,3 ; Gira hacia debajo de la placa colectora
sguelo ; Salto a la etiqueta siguelo
portd,7 ; Checa sensor 4. Si esta desactivado se produce salto de instruccin
tderbaj ; Salto a etiqueta tderbaj (velocidad a la derecha 3 veces mayor que velocidad de giro
hacia abajo)
flga,6
; Limpia bandera 3DB
portb,2 ; Checa grupo derecho de sensores. Si esta desactivado se produce salto de instruccin
derbaj
; Salto a etiqueta derbaj
flga,4
; Limpia bandera DB
.100
; Se carga la variable deron=100 y
deron
; la variable derof=10, para modular
.10
; el ancho de pulso que alimentara al
deroff
; motor de giro horizontal, para una velocidad media
flgd,0
; Limpia bandera velizq
flga,0
; Checa bandera 2DB
ssigelo ; Salto a etiqueta ssigelo
portd
; Limpia Puerto D
flga
; Limpia registro de banderas flga
flgc
; Limpia registro de bandera flgc

131

Diseo y construccin de una tarjeta programable


de adquisicin, procesamiento de datos y control
bsf
bsf
movlw
movwf
bsf
movlw
movwf
bcf
movlw
movwf
btfsc
goto
bsf
bsf
goto
sige2db bcf
movlw
movwf
goto
chkc3td btfsc
goto
bcf
btfsc
goto
bcf
movlw
movwf
movlw
movwf
bsf
btfsc
goto
clrf
clrf
clrf
bsf
bsf
movlw
movwf
bsf
movlw
movwf
bcf
movlw
movwf
btfsc
goto
bsf
bsf
goto
sige2ib bcf
movlw
movwf
goto
chkc2ti btfsc
goto
bcf
btfsc
goto
bcf
ddersub movlw
movwf
movlw
movwf
bcf
btfsc
goto
clrf
clrf
clrf
bsf

Anexos

flgc,2
; Activa bandera sigelo
flga,0
; Activa bandera 2DB
b'10101000'
; Se activan interrupcin por cambio de estado en puerto B e interrupcin
intcon
; por saturacin del temporizador tmr0
estado,5
; Cambio al banco 1
b'10000111'
; Se asigna un divisor de frecuencia de 1:256
opcion ; al temporizador tmr0
estado,5 ; cambio al banco 0
.100
; Se inicia el tmr0 con un valor de 100
tmr0
; igual al valor cargado la variable deron
portb,4 ; Checa interruptor de limite derecho. Si esta desactivado se produce salto de instruccin
sige2db ; Salto a etiqueta sige2db
portd,0 ; se activa giro a la derecha
portd,3 ; se activa giro hacia abajo
sguelo ; Salto a la etiqueta sigelo
flga,0
; Limpia bandera 2DB
b'10001000'
; Se activa solo interrupcin por
intcon
; cambio de estado en el puerto B
sguelo ; Salto a la etiqueta sigelo
portd,6 ; Checa sensor 3. Si esta desactivado se produce salto de instruccin
tizqbaj
; Salto a la etiqueta tizqbaj
flga,7
; Limpia bandera 3IB
portb,2 ;Checa grupo derecho de sensores. Si esta desactivado se produce salto de instruccin
izqbaj
; salto a etiqueta izqbaj
flga,5
; Limpia bandera IB
.100
; Carga la variable izqon=100 y
izqon
; la variable izqoff =10 para modular,
.10
; el ancho de pulso que regula a
izqoff
; una velocidad horizontal media
flgd,0
; Activa bandera vel izq
flga,1
; Checa bandera 2IB. Si esta desactivado se produce salto de instruccin
sguelo ; Salto a la etiqueta sigelo
portd
; Limpia puerto D
flga
; Limpia registro de banderas flga
flgc
; Limpia registro de banderas flgc
flgc,2
; Se activa bandera sigelo
flga,1
; Se activa bandera 2IB
b'10101000'
; Se activan interrupcion por cambio de estado en
intcon
; puerto B e interrupcin por saturacin del temporizador tmr0
estado,5
; Cambio al banco 1
b'10000111'
; Se ajusta eldivisor de frecuencias de 1:256
opcion
; y se le asigna al tmr0
estado,5 ; Se cambia al banco 0
.100
; Se carga el tmr0 con el mismo
tmr0
; valor que se carga la variable izqon
portb,5 ; Checa interruptor de limite izquierdo. Si esta desactivado se produce salto de
instruccin
sige2ib ; Salto a la etiqueta sige2ib
portd,1 ; Se activa giro a la izquierda
portd,3 ; Se activa giro hacia abajo
ssigelo ; Salto a la etiqueta ssigelo
flga,1
; Se limpia bandera 2IB
b'10001000'
; Solo se queda activada la interrupcion
intcon
; por cambio de estadel del Puerto B
ssigelo ; Salto a la etiqueta ssigelo
portd,5 ; Checa el sensor 2. Si esta desactivado se produce salto de instruccin
tizqbaj
; Salto a la etqiueta tizqbaj
flga,7
; Limpia bandera 3IB
portb,1 ; Checa grupo izqueirdo de sensores. Si esta desactivado se produce salto de instruccin
dersub ; Salto a la etiqueta dersub
flgc,6
; Limpia bandera DS
.100
; Carga la variable deron=100 y la
deron
; variable deroff=10para modular
.10
; el ancho de pulso que regula a
deroff
; una velocidad horizontal media
flgd,0
; Limpia bandera vel izq
flga,2
; Checa bandera 2DS. Si esta desactivada se produce salto de instruccin
ssigelo ; Salto a la etiqueta ssigelo
portd
; Limpia Puerto D
flga
; Limpia bandera flga
flgc
; Limpia bandera flgc
flgc,2
; Activa bandera sigelo

132

Diseo y construccin de una tarjeta programable


de adquisicin, procesamiento de datos y control
bsf
movlw
movwf
bsf
movlw
movwf
bcf
movlw
movwf
btfsc
goto
bsf
bsf
goto
sige2ds bcf
movlw
movwf
goto
chkc1ti btfsc
goto
bcf
btfsc
goto
bcf
dizqsub movlw
movwf
movlw
movwf
bsf
btfsc
goto
clrf
clrf
clrf
bsf
bsf
movlw
movwf
bsf
movlw
movwf
bcf
movlw
movwf
btfsc

sige2is

izqbaj

goto
bsf
bsf
goto
bcf
movlw
movwf
goto
movlw
movwf
movlw
movwf
bsf
btfsc
goto
clrf
clrf
clrf
bsf
bsf
movlw
movwf
bsf
movlw
movwf

Anexos

flga,2
; Activa bandera 2DS
b'10101000'
; Se activan interrupcin por cambio de estado en Puerto B e
intcon
; interrupcin por desbordamiento del temporizador tmr0
estado,5
; se pasa al banco 1
b'10000111'
; Se ajusta divisor de frecuencia de 1:256 y
opcion ; se le asigna al tmr0
estado,5 ; Se pasa al banco 0
.100
; Se carga el tmr0 con el mismo valor que
tmr0
; se cargo la variable deron
portb,4 ; Checa el interruptor de limite derecho. Si esta desactivado se produce salto de
instruccin
sige2ds ; Salto a la etiqueta sige2ds
portd,0 ; Se active giro a la dereha
portd,2 ; Se active giro hacia arriba
sguelo ; Salto a la etiqueta sigelo
flga,2
; Limpia bandera 2DS
b'10001000'
; Se activa solo la interrupcion por cambio de
intcon
; estado del puerto B
sguelo ; Salto a la etiqueta sigelo
portd,4 ; Checa sensor 1. Si esta desactivado se produce salto de instruccin
tderbaj ; Salto a etiqueta tderbaj
flga,6
; limpia bandera 3DB
portb,1 ; Checa grupo izquierdo de sensores. Si esta desactivado se produce salto de instruccin
izqsub
; Salto a la eiqueta izqdub
flgc,7
; Limpia IS
.100
; Se carga la variable izqon=100 y la
izqon
; variable izqoff=10, para modular el ancho
.10
; de los pulsos que regulan a un valor medio
izqoff
; la velocidad a la izquierda del motor
flgd,0
; Se activa la bandera vel izq
flga,3
; Checa la bandera 2IS
ssigelo ; Salto a la etiqueta ssigelo
portd
; Limpia Puerto D
flga
; Limpia registro de banderas flga
flgc
; Limpia registro de banderas flgc
flgc,2
; Se activa bandera sigelo
flga,3
; Se activa bandera 2IS
b'10101000'
; Se activan interrupcion por cambio de estado en
intcon
; puerto B e interrupcin por desbordamiento del temporizador tmr0
estado,5
; Cambio al banco 1
b'10000111'
; Se ajusta divisor de frecuencia de 1:256 y
opcion
; se le asigna al tmr0
estado,5
; Salto al banco 0
.100
; Se carga el tmr0 con el mismo valor que
tmr0
; se cargo la variable izqon
portb,5 ; Checa el interruptor de limite izquierdo. Si esta desactivado se produce salto de
instruccin
sige2is ; Salto a la etiqueta sige2is
portd,1 ; Se activa giro a la izquierda
portd,2 ; Se activa giro hacia arriba
ssigelo ; Salto a la etiqueta ssigelo
flga,3
; Limpia bandera 2IS
b'10001000'
; Se activa solo la interrupcion por cambio de
intcon
; estado del puerto B
ssigelo ; Salto a la etiqueta ssigelo
.100
; Se carga la variable izqon=100 y la
izqon
; variable izqoff=3, para modular el ancho
.3
; de los pulsos que regulan a un valor bajo
izqoff
; la velocidad a la izquierda del motor
flgd,0
; Activa la bandera vel izq
flga,5
; Checa bandera IB. Si esta desactivada se produce salto de instruccin
ssigelo ; Salto a la etiqueta ssigelo
portd
; Limpia Puerto D
flag
; Limpia registro de banderas flga
flgc
; Limpia registro de banderas flgc
flgc,2
; Activa la bandera sigelo
flga,5
; Activa la bandera IB
b'10101000'
; Se activa solo la interrupcion por cambio de
intcon
; estado del puerto B
estado,5
; Cambio al banco 1
b'10000111'
; Se ajusta divisor de frecuencia de 1:256 y
opcion
; se le asigna al tmr0

133

Diseo y construccin de una tarjeta programable


de adquisicin, procesamiento de datos y control
bcf
movlw
movwf
btfsc

sigeib

izqsub

sigeis

dersub

goto
bsf
bsf
goto
bcf
movlw
movwf
goto
movlw
movwf
movlw
movwf
bsf
btfsc
goto
clrf
clrf
clrf
bsf
bsf
movlw
movwf
bsf
movlw
movwf
bcf
movlw
movwf
btfsc
goto
bsf
bsf
goto
bcf
movlw
movwf
goto
movlw
movwf
movlw
movwf
bcf
btfsc
goto
clrf
clrf
clrf
bsf
bsf
movlw
movwf
bsf
movlw
movwf
bcf
movlw
movwf
btfsc
goto
bsf
bsf
goto

Anexos

estado,5 ; Cambio al banco 0


.100
; Se carga la variable tmr0 con el mismo valor
tmr0
; que se cargo la variable izqon
portb,5 ; Checa el interruptor de limite izquierdo. Si esta desactivado se produce salto de
instruccin
sigeib
; Salto a la etiqueta sigeib
portd,1 ; Se aciva giro a la izquerda
portd,3 ; Se activa giro hacia abajo
sguelo ; Salto a la etiqueta sigelo
flga,5
; Limpia bandera IB
b'10001000'
; Se activa solo la interrupcin por cambio de
intcon
; estado del puerto B
sguelo ; Salto a la etiqueta sigelo
.100
; Se carga la variable izqon=100 y la
izqon
; variable izqoff=3, para modular el ancho
.3
; de los pulsos que regulan a un valor bajo
izqoff
; la velocidad a la izquierda del motor
flgd,0
; Se activa bandera velizq
flgc,7
; Checa bandera IS. Si esta desactivado se produce salto de instruccin
sguelo ; Salto a la etiqueta sigelo
portd
; Limpia puerto D
flag
; Limpia registro de banderas flga
flgc
; Limpia registro de banderas flgc
flgc,2
; Se activa bandera sigelo
flgc,7
; Se activa la bandera IS
b'10101000'
; Se activa solo la interrupcin por cambio de estado del puerto B
intcon
; y la interrupcin por desbordamiento del tmr0
estado,5
; Cambio al banco 1
b'10000111'
; Se ajusta divisor de frecuencia de 1:256 y
opcion
; se le asigna al tmr0
estado,5 ; Cambio al banco 0
.100
; Se carga el tmr0 con el mismo valor que
tmr0
; se cargo la variable izqon
portb,5 ; Checa interruptor de limite izquierdo. Si esta desactivado se produce salto de
instruccin
sigeis
; Salto a la etiqueta sigeis
portd,1 ; Se activa giro a la izquierda
portd,2 ; se active giro hacia arriba
sguelo ; Salto a la etiqueta sigelo
flgc,7
; Limpia bandera IS
b'10001000'
; Se activa solo la interrupcion por cambio de
intcon
; estado del puerto B
ssigelo
; Salto a la etiqueta sigelo
.100
; Se carga la variable deron=100 y la
deron
; variable deroff=3, para modular el ancho
.3
; de los pulsos que regulan a un valor bajo
deroff
; la velocidad a la derecha del motor
flgd,0
; Limpia bandera veli izq
flgc,6
; Checa bandera DS. Si esta desactivado se produce salto de instruccin
ssigelo ; Salto a la etiqueta ssigelo
portd
; Limpia Puerto D
flga
; Limpia registro de banderas flga
flgc
; Limpia registro de banderas flgd
flgc,2
; Activa bandera sigelo
flgc,6
; Activa bandera DS
b'10101000'
; Se activan interrupcin por cambio de estado en
intcon
; puerto B e interrupcin por desbordamiento del temporizador tmr0
estado,5
; Cambio al banco 1
b'10000111'
; Se ajusta divisor de frecuencia de 1:256 y
opcion
; se le asigna al tmr0
estado,5 ; Cambio al banco 0
.100
; Se carga el tmr0 con el mismo valor que
tmr0
; se cargo la variable deron
portb,4 ; Checa el interruptor de limite derecho. Si esta desactivado se produce salto de
instruccin
sigeds
; Salto a la etiqueta sigeds
portd,0 ; Se active giro a la derecha
portd,2 ; Se active giro hacia arriba
ssigelo ; Salto a la etiqueta ssigelo

134

Diseo y construccin de una tarjeta programable


de adquisicin, procesamiento de datos y control

Anexos

sigeds

bcf
movlw
movwf
goto

flgc,6
; Limpia bandera DS
b'10001000'
; Se activa solo la interrupcion por cambio de
intcon
; estado del puerto B
ssigelo ; Salto a la etiqueta ssigelo

derbaj

movlw
movwf
movlw
movwf
bcf
btfsc
goto
clrf
clrf
clrf
bsf
bsf
movlw
movwf
bsf
movlw
movwf
bcf
movlw
movwf
btfsc

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

sigedb

goto
bsf
bsf
goto
bcf
movlw
movwf
goto

tderbaj

movlw
movwf
movlw
movwf
bcf
btfsc
goto
clrf
clrf
clrf
bsf
bsf
movlw
movwf
bsf
movlw
movwf
bcf
movlw
movwf
btfsc
goto
bsf
bsf
goto
sige3db bcf
movlw
movwf
goto

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

tizqbaj

.100
izqon
.20
izqoff
flgd,0
flga,7

movlw
movwf
movlw
movwf
bsf
btfsc

; Se carga la variable izqon=100 y la


; variable izqoff=20, para modular el ancho
; de los pulsos que regulan a un valor alto
; la velocidad a la izquierda del motor
; Activa bandera vel izq
; Checa bandera 3IB. Si esta desactivado se produce salto de instruccin

135

Diseo y construccin de una tarjeta programable


de adquisicin, procesamiento de datos y control

Anexos

goto
clrf
clrf
clrf
bsf
bsf
movlw
movwf
bsf
movlw
movwf
bcf
movlw
movwf
btfsc

sguelo ; Salto a la etiqueta sigelo


portd
; Limpia puerto D
flga
; Limpia registro de banderas flga
flgc
; Limpia registro de banderas flgc
flgc,2
; Activa bandera sigelo
flga,7
; Activa bandera 3IB
b'10101000'
; Se activan interrupcin por cambio de estado en
intcon
; puerto B e interrupcin por desbordamiento del temporizador tmr0
estado,5
; Cambio al banco 1
b'10000111'
; Se ajusta divisor de frecuencia de 1:256 y
opcion
; se le asigna al tmr0
estado,5 ; Cambio al banco 0
.100
; Se carga el tmr0 con el mismo valor que
tmr0
; se cargo la variable izqon
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

136

Diseo y construccin de una tarjeta programable


de adquisicin, procesamiento de datos y control
movlw
movwf
decfsz
goto
decfsz

Anexos

.80
cont3
cont3,1
c6
cont2,1

; Se carga variable cont3=80


; para generan un retardo
c6
; Retardo por decremento
; de la variable cont3
; 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

137

Diseo y construccin de una tarjeta programable


de adquisicin, procesamiento de datos y control

reposo

Anexos

goto
retlw

c23
0

;
; Retorno al programa principal

clrf
clrf
goto

portd
intcon
arranqe

; Se desactiva el puerto D
; Se limpia el registro intcon (de control de interrupciones)
; Salto a la etiqueta arranque (para poder iniciar nuevamente el arranque de la
planta)

end

; Fin del programa

138

Diseo y construccin de una tarjeta programable


de adquisicin, procesamiento de datos y control

Anexos

Anexo D.5. Diagrama de flujo del programa de control de la cmara trmica con
control de temperatura

139

Diseo y construccin de una tarjeta programable


de adquisicin, procesamiento de datos y control

Anexos

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)
{
PORTCbits.RC0=0;
PORTCbits.RC1=0;
PORTCbits.RC2=0;
PORTCbits.RC5=0;
}

// Subrutina que desactiva los elementos que disminuyen la temperatura de la


// cmara trmica
// Apaga el soplador
// Cierra la compuerta del soplador
// Apaga el extractor
// Cierra la compuerta del extractor

int adquisicion(void)
{
ConvertADC();
while (BusyADC());
PIR1bits.ADIF = 0;
sensor = ReadADC();
return sensor;
}

// Subrutina del conversor AD para la lectura del sensor de temperatura


// Inicia la conversin
// Espera a que la conversin finalice
// Limpia la bandera de interrupcin del conversor AD
// El resultado de la conversin se guarda en la variable sensor
// Regresa al programa principal con el valor de la variable sensor

140

Diseo y construccin de una tarjeta programable


de adquisicin, procesamiento de datos y control

Anexos

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

141

Diseo y construccin de una tarjeta programable


de adquisicin, procesamiento de datos y control

Anexos

{
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)
{
enfriar();
PORTDbits.RD0=0;
Delay10KTCYx(150);
Delay10KTCYx(150);
}

// Si el valor de la variable entrada es mayor o igual al


// valor de setpoint
// se activan el soplador, el extractor y las compuertas
// se asegura que no se active el triac
// y se espera un segundo para el siguiente
// muestreo

}
}

// Fin del programa

142

Diseo y construccin de una tarjeta programable


de adquisicin, procesamiento de datos y control

Anexo D.7.

Anexos

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
PARO
SETPOINT
Kp
Ti
LISTO
ERROR DE CONFIGURACIN
ERROR DE ACCESO DEL PUERTO
rea de grfica
LEYENDO

143

Tipo de variable
Booleana
Entera, sin signo, de 8 bits
Entera, sin signo, de 8 bits
Entera, sin signo, de 8 bits
Booleana
Booleana
Booleana
Doble
Booleana

Diseo y construccin de una tarjeta programable


de adquisicin, procesamiento de datos y control

Anexos

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.

144

Diseo y construccin de una tarjeta programable


de adquisicin, procesamiento de datos y control

Anexos

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.

145

Diseo y construccin de una tarjeta programable


de adquisicin, procesamiento de datos y control

Anexo E.

Anexos

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

1
1
1
2

Regulador
Regulador
Regulador
Capacitor electroltico

Capacitor cermico

Capacitor electroltico

1
3

Capacitor electroltico
LED

Resistencia

2
1
1

1
1

Bobina
Fusible
Diodo
Tira doble en ngulo
(peine)
Tira sencilla en ngulo
(peine)
Tira sencilla en ngulo
(peine)
Buffer
Base C.I.

42

Resistencia

21
21
1
1
1

8
1
1

Tira sencilla (peine)


Resistencia
Resistencia
Capacitor cermico
Tira sencilla (peine)
Tira sencilla en ngulo
(peine)
Resistencia
Amplificador operacional
Base C.I.

Resistencia

Resistencia

Resistencia

2
2

Capacitor cermico
Capacitor cermico

1
1
1

7805
7815
7915
1000 uF / 50V

P. U.
May.
$2.70
$2.70
$2.90
$3.60

Subtotal
May.
$2.70
$2.70
$2.90
$7.20

P. U.
Men.
$6.00
$6.00
$7.00
$8.00

Subtotal
Men.
$6.00
$6.00
$7.00
$16.00

100 nF

$0.20

$1.40

$2.00

$14.00

100 uF / 50 V

$0.55

$3.30

$3.00

$18.00

100 uF / 100 V
Rojo

$0.80
$0.30

$0.80
$0.90

$4.00
$2.00

$4.00
$6.00

470

$0.03

$0.09

$0.50

$1.50

1N4148

$0.00
$0.00
$0.20

$0.00
$0.00
$0.20

$0.00
$0.00
$1.00

$0.00
$0.00
$1.00

JP4

14

$0.03

$0.42

$0.20

$2.80

J32

$0.03

$0.06

$0.20

$0.40

J27

$0.03

$0.09

$0.20

$0.60

74HC245
20 pines

$4.60
$0.45

$4.60
$0.45

$10.00
$3.00

$10.00
$3.00

47 K

$0.03

$1.26

$0.50

$21.00

3
470
10 K
100 nF
2

$0.03
$0.03
$0.03
$0.20
$0.03

$1.89
$0.63
$0.03
$0.20
$0.06

$0.20
$0.50
$0.50
$2.00
$0.20

$12.60
$10.50
$0.50
$2.00
$0.40

$0.03

$0.96

$0.20

$6.40

220
MCP6044
14 pines

$0.03
$18.50
$0.30

$0.24
$18.50
$0.30

$0.50
$18.50
$2.00

$4.00
$18.50
$2.00

470

$0.03

$0.12

$0.50

$2.00

47 K

$0.03

$0.12

$0.50

$2.00

2.2 K

$0.03

$0.12

$0.50

$2.00

10 nF
22 nF

$0.15
$0.15

$0.30
$0.30

$2.00
$2.00

$4.00
$4.00

No. Ref.
U9
U6
U1
C33, C35
C29-C32,
C42-C44
C34, C37C41
C36
D6-D8
R43-R44,
R46
L1, L2
F1
D4

U2
U2
R22-R27,
R42
J1 J21
R1 R18
R21
C28
J26
J38-J45
R47
U7
U7
R35, R38R40
R41
R29, R31,
R36, R37
C21, C25
C22, C26

Especificacin

146

Diseo y construccin de una tarjeta programable


de adquisicin, procesamiento de datos y control
Cantidad

Descripcin

2
2
2
10
2
1
2
2
2
4
1

Tira sencilla en ngulo


(peine)
Tira doble en ngulo
(peine)
Resistencia
Resistencia
LCD
Circuito integrado
Base C.I.
Capacitor de tantalio
Capacitor electroltico
Diodo
Diodo zener
Conector DB9 hembra
para circuito impreso
Memoria EEPROM
Base C.I.
DIPSwitch
Resistencia
Capacitor cermico
Tira sencilla (peine)
Tira sencilla (peine)
Driver
Base C.I.
Resistencia
DIPSwitch

16

Capacitor cermico

2
2
2

Capacitor electroltico
Tira sencilla (peine)
Tira sencilla (peine)
Tira doble en ngulo
(peine)
Tira doble en ngulo
(peine)
Tira doble en ngulo
(peine)

4
1
1
1
1
1
1
5
1
1
1
1

1
1
1
1

Placa fenlica doble cara

No. Ref.

Anexos
Especificacin

P. U.
May.

Subtotal
May.

P. U.
Men.

Subtotal
Men.

J22-J25

$0.03

$0.36

$0.20

$2.40

JP5

14

$0.03

$0.42

$0.20

$2.80

$0.03
$0.03
$300.00
$7.90
$0.40
$4.80
$0.30
$0.20
$0.40

$0.03
$0.03
$300.00
$7.90
$0.40
$24.00
$0.30
$0.20
$0.40

$0.50
$0.50
$300.00
$15.00
$3.00
$11.00
$2.00
$1.00
$3.00

$0.50
$0.50
$300.00
$15.00
$3.00
$55.00
$2.00
$1.00
$3.00

$2.90

$2.90

$9.00

$9.00

24FC512
8 pines
3
4.7 K
100 nF
2
3
L293D
16 pines
10 K
4

$42.16
$0.25
$2.20
$0.03
$0.20
$0.03
$0.03
$35.00
$0.35
$0.03
$2.20

$84.32
$0.50
$4.40
$0.30
$0.40
$0.06
$0.18
$70.00
$0.70
$0.12
$2.20

$42.16
$2.00
$5.00
$0.50
$2.00
$0.20
$0.20
$35.00
$2.00
$0.50
$5.00

$84.32
$4.00
$10.00
$5.00
$4.00
$0.40
$1.20
$70.00
$4.00
$2.00
$5.00

100 nF

$0.20

$3.20

$2.00

$32.00

100 uF / 25 V
3
5

$0.30
$0.03
$0.03

$0.60
$0.18
$0.30

$2.00
$0.20
$0.20

$4.00
$1.20
$2.00

JP1

40

$0.03

$1.20

$0.20

$8.00

JP2

36

$0.03

$1.08

$0.20

$7.20

JP4

14

$0.03

$0.42

$0.20

$2.80

PF

12 cm x 19.5 cm
(15x20)

$22.00

$22.00

$40.00

$40.00

Subtotal
May.

$ 581.94

Subtotal
Men.

$ 869.52

R20
R19
LCD
U3
U3
C1-C5
C7
D2
D3

820
10 K
2x16
MAX232
18 pines
10 uF / 25 V
100 uF / 25 V
1N4148
5.1 v

P1
U8, U10
U8, U10
SW3, SW5
R45, R48
C27, C50
J47
J29, J31
U4, U5
U4, U5
R34
SW4
C8-C20,
C45-C47
C23, C24
J35, J36
J33, J34

147

Diseo y construccin de una tarjeta programable


de adquisicin, procesamiento de datos y control

Anexos

Tabla E.2 Lista de componentes de la tarjeta de procesamiento


Cantidad

Descripcin

No. Ref.

Especificacin

1
1
1

Microcontrolador
Base C.I.
Cristal de cuarzo

U1
U1
XTL

Pulsador

SW1

1
1

Resistencia
Resistencia
Capacitor
cermico
Capacitor
cermico
Capacitor
electroltico
Tira doble en
ngulo (peine)
Placa fenlica
doble cara

R21
R23

PIC18F452
40 pines
12 MHz
Normalmente
abierto
100
10 K

3
2
1
1
1

P. U.
May.
$104.00
$0.90
$5.70

Subtotal
May.
$104.00
$0.90
$5.70

P. U.
Men.
$104.00
$4.00
$13.00

Subtotal
Men.
$104.00
$4.00
$13.00

$0.40

$0.40

$3.00

$3.00

$0.03
$0.03

$0.03
$0.03

$0.50
$0.50

$0.50
$0.50

C1-C3

100 nF

$0.20

$0.60

$2.00

$6.00

C4-C5

22 pF

$0.20

$0.40

$2.00

$4.00

C6

10 uF / 25 V

$0.25

$0.25

$2.00

$2.00

JP1

40

$0.03

$1.20

$0.20

$8.00

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
1
1
1
1
1
1
2
1
1
2
1
1
1
2
1
1

Descripcin
Conversor digitalanalgico
Base C.I.
Amplificador
operacional
Base C.I.
Transmisor 4-20 mA
Receptor 4-20 mA
Base C.I.
Transistor FET
Resistencia
Resistencia
Trimpot
Capacitor
electroltico
Capacitor cermico
Tira sencilla (peine)
Tira doble en ngulo
(peine)
Placa fenlica una
cara

No. Ref.

Especificacin

P. U.
May.

Subtotal
May.

P. U.
Men.

Subtotal
Men.

U2

DAC0808

$16.50

$16.50

$29.00

$29.00

U2

18 pines

$0.40

$0.40

$3.00

$3.00

U4

LF351

$5.00

$5.00

$5.00

$5.00

$0.25
$130.00
$78.00
$0.35
$7.80
$0.03
$0.03
$17.00

$0.25
$130.00
$78.00
$0.70
$7.80
$0.03
$0.06
$17.00

$2.00
$130.00
$78.00
$2.00
$14.00
$0.50
$0.50
$31.00

$2.00
$130.00
$78.00
$4.00
$14.00
$0.50
$1.00
$31.00

U4
J2
J4
J2, J4
Q1
R4
R2, R3
R6

8 pines
XTR110
RCV420
16 pines
MTP2955
1 K
3.3 K
10 K

C1

1 uF

$0.25

$0.25

$2.00

$2.00

C2
J1, J5

33 pF
2

$0.20
$0.03

$0.20
$0.12

$2.00
$0.20

$2.00
$0.80

14

$0.03

$0.42

$0.20

$2.80

5.5 cm x 6.5 cm
(10x10)

$4.40

$4.40

$10.00

$10.00

Subtotal
Men.

$ 315.10

J8

Subtotal
$ 261.13
May.

148

Diseo y construccin de una tarjeta programable


de adquisicin, procesamiento de datos y control

Anexos

Tabla E.4 Lista de componentes de la tarjeta de aplicacin


Cantidad
27
18
1
2
5
3
1
1
5
1
2
4
1
1

Descripcin
LED
Botn pulsador
Circuito integrado
Base C.I.
Pantalla de 7
segmentos
Trimpot
LDR
Sensor LM35
Transistor
Capacitor
electroltico
Capacitor cermico
Tira sencilla en
ngulo (peine)
Tira doble (peine)
Placa fenlica doble
cara

Rojo
SW
74LS48
16 pines

P. U.
May.
$0.30
$0.40
$9.30
$0.35

Subtotal
May.
$8.10
$7.20
$9.30
$0.70

P. U.
Men.
$2.00
$3.00
$17.00
$2.00

Subtotal
Men.
$54.00
$54.00
$17.00
$4.00

DC05

$4.00

$20.00

$9.00

$45.00

10 K
LDR
TO92
2N3904

$17.00
$2.20
$25.00
$0.40

$51.00
$2.20
$25.00
$2.00

$31.00
$2.20
$25.00
$3.00

$93.00
$2.20
$25.00
$15.00

47uF 16V

$0.25

$0.25

$2.00

$2.00

C3-C5

100 nF

$0.20

$0.40

$2.00

$4.00

J1-J4

$0.03

$0.36

$0.20

$2.40

36
9.5 cm x 14.5
cm (10x20)

$0.03

$1.08

$0.20

$7.20

$15.00

$15.00

$27.00

$27.00

Subtotal
May.

$ 142.59

No. Ref.
D1-D27
SW3-SW20
U2
U2,U3
JP1-JP5
R1,R2,R9
R5
U1
Q1-Q5
C4

JP6

Especificacin

Subtotal
$ 351.80
Men.

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
Subtotal tarjeta principal
Subtotal tarjeta procesamiento
Subtotal tarjeta 4-20 mA
Subtotal tarjeta de aplicacin
Costo total de componentes

149

Mayoreo Menudeo
$581.94 $869.52
$113.51 $158.00
$261.13 $315.10
$142.59 $351.80
$1,099.17 $1,694.42

También podría gustarte