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 3 fases: adquisicin de datos, procesamiento o
tratamiento de la informacin y control de elementos actuadores. Existen alternativas
comerciales que permiten realizar una o todas las fases de automatizacin en un solo
componente como tarjetas de adquisicin de datos o controladores lgicos programables
(PLCs).

En este trabajo se presenta el diseo, construccin y prueba de una tarjeta programable


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

Adems de las pruebas funcionales, se disearon, construyeron y probaron 3 plantas


mecatrnicas con la tarjeta programable. Las 3 plantas son: un robot mvil seguidor de
lnea, un modelo a escala de una plataforma de seguimiento solar y una cmara trmica con
temperatura controlada.

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

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

Besides the functional tests, there were designed, built and tested 3 mechatronic plants with
the programmable card. The 3 plants are: a line follower mobile robot, a scale model of a
solar tracer platform and a thermal camera with controlled temperature.
CONTENIDO
LISTA DE FIGURAS ...........................................................................................................iv
LISTA DE TABLAS .............................................................................................................vi
ACRONIMOS Y SIGLAS ...................................................................................................vii
NOMENCLATURA...............................................................................................................x

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

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

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

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


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

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

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


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

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

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

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


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

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

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


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

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

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


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

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

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

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

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


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

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 A.1 Circuito esquemtico de tarjeta principal.......................................................... 88


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

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


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

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


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

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

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


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

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

Tabla 4.1 Pruebas de la tarjeta programable....................................................................... 50


Tabla 4.2 Caracterizacin del receptor de 4-20 mA............................................................ 55
Tabla 4.3 Caracterizacin del transmisor de 4-20 mA. ....................................................... 56

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

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

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

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

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

Tabla E.1 Lista de componentes de la tarjeta principal...................................................... 146


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

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

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

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

ix
NOMENCLATURA
C Capacitor
CPIN Capacitancia de entrada
CRETEN Capacitancia de muestreo y retencin del DAC
E(n) Error en tiempo discreto
E(t) Error en tiempo continuo
F Frecuencia
fc Frecuencia de corte
FOSC Frecuencia de oscilador
hFE Ganancia de corriente
IB Corriente de base
IB(max) Corriente mxima de base
IB(sat) Corriente de base cuando el transistor esta en saturacin
IC(max) Corriente mxima de colector
IC(sat) Corriente de colector cuando el transistor esta en saturacin
If Corriente del fotodiodo en polarizacin directa
IFUGA Corriente de fuga en la terminal debido a varias conexiones
Imax Corriente mxima
KI Ganancia integral
KP Ganancia proporcional
RIC Resistencia de interconexin
R Resistencia
Rs Impedancia de la fuente
Rss Impedancia del interruptor interno de muestreo
SS Interruptor de muestreo
TACQ Tiempo mnimo de adquisicin
TAMP Tiempo de establecimiento del amplificador
TC Tiempo de carga del capacitor de retencin
TCOFF Coeficiente de temperatura
TI
VAIN Voltaje analgico de entrada
VBE(on) Voltaje entre base y emisor cuando el transistor esta en funcionamiento
VCC Voltaje de alimentacin
VCE(on) Voltaje entre colector y emisor cuando el transistor esta en funcionamiento
VCE(sat) Voltaje entre colector y emisor cuando el transistor esta en saturacin
VDD Voltaje del dispositivo
Vef Voltaje eficaz
Vf Voltaje de diodo en polarizacin directa
Vinst Voltaje instantaneo
Vp Voltaje pico
VT Voltaje de umbral
tmax Aumento mximo de temperatura
c Frecuencia de corte

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

CAPTULO 1. INTRODUCCIN

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

1.1. Antecedentes

Los sistemas de adquisicin de datos se utilizan cada vez ms en laboratorios, industria y


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

La mayora de estas aplicaciones usan mdulos de adquisicin de datos compatibles con la


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

1.2. Descripcin del problema

La mayora de las tarjetas de adquisicin de datos comerciales son de aplicacin especfica,


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

En el Departamento de Ciencias Computacionales del cenidet se requiere del uso de tarjetas


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

El grupo de visin artificial del cenidet est en condiciones de modelar y solucionar


problemas de inspeccin elemental, pero no ha encontrado una tarjeta comercial de
adquisicin de datos econmica que trabaje de forma autnoma y satisfaga las condiciones
necesarias para poder aplicar los algoritmos de control e interactuar con un proceso.

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

1.3. Estado del arte de sistemas de adquisicin, procesamiento de datos y control


de procesos

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

Se denomina sistema de adquisicin de datos al conjunto de elementos empleados para


medir una o varias seales analgicas o digitales.

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

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

1.3.1. Transductores y sensores

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

Un transductor es un dispositivo que convierte de un tipo de energa a otro. El sensor es un


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

Sensores digitales
Sensores analgicos

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

Interruptor, botn o pulsador.


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

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

Un sensor analgico es aquel que puede entregar una salida variable dentro de un
determinado intervalo; por ejemplo, entre 0 y 5 Volts. Los sensores analgicos ms
comunes son:

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

1.3.2. Acondicionadores de seales

El problema de varios transductores es que generan seales demasiado difciles o peligrosas


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

1.3.3. Mdulos de adquisicin de datos

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

Seales
Seales de enviadas a
entrada la
PC
Acondicionamiento
de seales Seales
recibidas
Seales de desde la
salida 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.

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

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 Seales
de enviadas a
seales de la
entrada Opto Opto PC
acopla Controlador acopla
dores interno dores Seales
Seales de recibidas
salida 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 Cantidad de entradas/salidas disponibles.
Tipo de entradas/salidas La seal que procesa puede ser analgica o digital.
Resolucin Valor mnimo que puede identificarse de una seal
analgica.
Intervalo Los niveles de voltaje o corriente permitidos en la
entrada/salida.
Frecuencia de muestreo La cantidad de muestras adquiridas en un segundo.
Puerto de conexin El puerto por el que la tarjeta se conecta a la PC o a otra
tarjeta.

5
USB-6008 USB-6009 DT9810 DI-194RS DI-154RS DI-158 DI-148U DI710
Voltaje de alimentacin
USB USB USB RS232 RS232 USB USB 9-36
(V)
Memoria de programa
-- -- -- -- -- -- -- --
(KBytes)

Tarjeta SD
Memoria de datos -- -- -- -- -- -- -- removible
1MB 1GB

Entradas analgicas 8 8 8 4 4 4 8 16
Resolucin de entrada
12 14 10 10 12 12 10 14
(bits)
Frecuencia de muestreo
10,000 48,000 25,000 240 240 14,400 14,400 4,800
de adquisicin, procesamiento de datos y control

(muestras /segundo)
Diseo y construccin de una tarjeta programable

Intervalo de entrada (V) 1 a 20 1 a 20 0 a 2.44 10 10 10 10 10

6
Salidas analgicas 2 2 -- -- -- 2 -- --
Resolucin de salida
12 12 -- -- -- 12 -- --
(bits)
E/S digitales 12 12 20 -- -- 4 6 8

Intervalo de salida (V) 0a5 0a5 0a5 -- -- 0a5 0a5 0a5


Tabla 1.2 Sistemas comerciales de adquisicin de datos.

Puerto de comunicacin USB/E


USB USB USB RS232 RS232 USB USB
con PC THERNET

$5400 a
Precio (pesos mexicanos) $1,600 $2,700 $1,600 $300 $1,650 $1,100 $550
$8700
En la tabla 1.2 se muestran algunas tarjetas comerciales de adquisicin de datos.

National National Data DATAQ DATAQ DATAQ DATAQ DATAQ


Instruments Instruments Translation Instruments Instruments Instruments Instruments Instruments
Fabricante
Captulo 1. Introduccin

T.P. Tarjeta programable


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

1.3.4. Controladores

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

Visualizar las variables provenientes de los sensores.


Procesar las seales de entrada.
Calcular una accin de control.
Registrar y/o graficar las seales de entrada.

Los principales controladores para sistemas de adquisicin de datos son:

Controlador lgico programable (PLC)


Computadora
Asistente digital personal (PDA)
Microcontroladores

1.3.4.1. Puertos para los mdulos de adquisicin de datos

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

En trminos de computacin, un puerto es una forma genrica de denominar a una interfaz


por la cual diferentes tipos de datos pueden ser enviados y recibidos. La interfaz puede ser
fsica o a nivel software (por ejemplo, los puertos que permiten la transmisin de datos
entre diferentes computadoras).

En la tabla 1.3 se muestran los puertos disponibles ordenados por medio de transmisin
(almbrico o inalmbrico), tipo de transmisin (paralelo o serie) y velocidad de
transmisin.

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

Tabla 1.3 Comparacin de puertos de comunicacin. [1]


Nmero Longitud Velocidad
Puerto Formato mximo de mxima mxima Aplicacin tpica
dispositivos (m) (bits/s)
Impresoras,
LPT Paralelo 2 3-9 8M escaners, unidades
de disco
IEEE-488
Paralelo 15 18 8M Instrumentacin
(GPIB)
RS-232 20k (115k con
Serial Modem, ratn,
(EIA/TIA- 2 15-30 hardware
asncrono instrumentacin
232 extra)
Lazo de Msica, control de
MIDI 2 15 31.5k
corriente serial espectculos
Comunicacin
Microwire Serial sncrono 8 3 2M entre
microcontroladores
Comunicacin
SPI Serial sncrono 8 3 2.1M entre
microcontroladores
Comunicacin
I2C Serial sncrono 40 5.5 3.4M entre
microcontroladores
Ratn, unidad de
Serial 1.5M, 12M,
USB 127 5 disco, modem,
asncrono 480M
audio
RS485 Sistemas de
Serial 32 cargas
(TIA/EIA- 1220 10M adquisicin de
asncrono unitarias
485) datos y de control
Ethernet Serial 1024 490 10M/100M/1G PC en red
IEEE- Video,
1394 Serial 64 4.5 400M almacenamiento
(FireWire) masivo
Serial Impresoras,
IrDA asncrono 2 1.8 115k asistente digital
infrarrojo personal (PDA)
Telfonos
Serial
Bluetooth 32 10 723k celulares, PDAs,
radiofrecuencia
videocmara
Wi-Fi
Serial
(IEEE 60 11M, 54M PC en red
radiofrecuencia
802.11x)

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

1.4. Propuesta de solucin

Con la finalidad de resolver problemas tanto de adquisicin de datos y para controlar


diversos procesos con un solo mdulo se plante:

Disear y construir una tarjeta programable de adquisicin, procesamiento de datos


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

Desarrollar los programas necesarios para la interaccin del microcontrolador con


los dems componentes de la tarjeta, la adquisicin, procesamiento de los datos, el
clculo de los valores de la accin de control y el envo de estos valores para el
control de procesos especficos.

1.4.1. Objetivos

1.4.1.1. Objetivo general


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

1.4.1.2. Objetivos especficos


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

1.4.2. Metodologa de solucin

1. Revisar, estudiar y analizar el estado del arte y de la prctica en torno a la


adquisicin y control A/D. As como de los protocolos estndar de comunicacin a
la PC.
2. Estudiar y conocer los diferentes tipos de microcontroladores existentes en el
mercado, su uso, funcionalidad y aplicabilidad en el desarrollo del proyecto.
3. Disear e implementar los circuitos electrnicos para la tarjeta, y de ser necesario,
tambin de los dispositivos sensores.

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

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 Captulo 2. Determinacin de las caractersticas
de adquisicin, procesamiento de datos y control funcionales de la tarjeta programable

CAPTULO 2. DETERMINACIN DE LAS


CARACTERSTICAS FUNCIONALES DE
LA TARJETA PROGRAMABLE

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

2.1. Recursos requeridos por plantas o procesos


La especificacin de la tarjeta programable y la seleccin del microcontrolador se
definieron de acuerdo a los requerimientos de cinco plantas o procesos tpicos a controlar.
Las plantas que se consideraron son: una incubadora, una banda transportadora, un
microbot seguidor de lnea, una plataforma de paneles solares y un brazo robtico. Los
recursos requeridos por las plantas se indican en la tabla 2.1.
Tabla 2.1 Recursos requeridos por plantas o procesos.
Planta o proceso
Banda Plataforma de Brazo Valor
Incubadora Microbot
transportadora paneles solares robtico mximo
Recursos
+ 10%
Tipo de proceso SISO MIMO MIMO MIMO MIMO
Analgicas 1 - 3 - - 4
Entradas
Digitales - 2 3 13 8 14
Digitales 1 - - - - 1
Motor paso
- - 2 - - 3
Salidas a paso
Motor CD
- 2 - 2 4 5
(PWM)
Tiempo de respuesta
2 0.5 0.5 1 1E-05 1E-06
requerido (segundos)
Precisin en entradas
1% - - - - 0.5 %
analgicas
Memoria de programa
90 150 300 1500 6000 8000
(Bytes)

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 Captulo 2. Determinacin de las caractersticas
de adquisicin, procesamiento de datos y control 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
Microchip Atmel ST Microchip Atmel Microchip Microchip Motorola Motorola TI (DSP)
Caractersticas
PIC16F84 ATtiny28 ST7Lite 0 PIC16F877 ATmega103 PIC16C765 dsPIC30F MC68HC11A8 MC68HC12 TMS320LF2407
Mxima
frecuencia de 10 MHz 4 MHz 16 MHz 20 MHz 6MHz 24 MHz 20-30 MHz 3 MHz 8 MHz 40 MHz
operacin
Memoria de
1K 2K 1K 8K 128 K 8K 12 K - 48 K 256 32 K 32 K
programa
Memoria de
68 X 128 368 4K 256 1K2K 8K 1K 2.5 K
datos
Memoria
64 X 128 256 4K X 1K 512 768 X
EEPROM
Juego de
35 90 63 35 121 35 84 145 110
instrucciones
Terminales ES
13 11 13 33 32 33 20 - 30 38 63 41
programables
Terminales E X 8 5 de 13 X 8 X X X X X

Terminales S X 1 X X 8 X X X X X
Contador/ 1 de 8 bits 2 de 8 bits 2 de 8 bits 2 de 8 bits
de adquisicin, procesamiento de datos y control

1 de 8 bits 1 de 8 bits 3 de 16 bits 1 de 8 bits 2 de 16 bits


Diseo y construccin de una tarjeta programable

temporizador 1 de 12 bits 1 de 16 bits 1 de 16 bits 1 de 16 bits


Voltaje de
2.0 6.0 V 2.7 5.5 V 2.4 5.5 V 2.0 5.5 V 4.0 5.5 V 4.35 5.25 V 4.5 5.5 V -0.3 7 V -0.3 6.5 V 3.3 V
operacin

14
5 canales de 8 canales de 8 canales de 8 canales de 8 8 canales de 8 canales de 8 8 canales de 16 canales de 10
ADC bits X X
8 bits 10 bits 10 bits bits 12 bits bits 10 bits bits
PDIP 18 PDIP 28 DIP 16 PDIP 40 TQFP 64 TQFP 44 DIP 18 28 QFP 64 QFP 80 PGE 144
Encapsulado
terminales terminales terminales terminales terminales terminales 40 terminales terminales terminales
Tiempo de ciclo
400 ns 250 ns 200 ns 160 ns 33.3 50 ns 25 ns
de instruccin
Ensamblado
Compiladores C C C C C C Ensamblador Ensamblador C
r
Herramienta de Code Composer
MPLAB AVRStudio MPLAB AVRStudio MPLAB MPLAB MCUez MCUez
programacin Studio
Costo C $ 63.00 $ 16.50 $ 23.50 $ 78.00 $ 251.00 $ 142.00 $ 136.00 $ 287.00 $ 267.00
Proveedor AG Mouser Mouser AG Mouser.com AG Microchip AG electrnica AG AG electrnica
Tabla 2.2 Caractersticas tcnicas de los microcontroladores.

electrnica .com .com electrnica electrnica .com electrnica


Informacin -- -- -- -- -- -- --
Experiencia de
-- -- -- -- -- -- -- --
los tesistas

Niveles: -- Ninguna Bajo Regular Alto


Cambio de dlar = $ 10.30. Precios sin IVA
funcionales de la tarjeta programable
Captulo 2. Determinacin de las caractersticas
Diseo y construccin de una tarjeta programable Captulo 2. Determinacin de las caractersticas
de adquisicin, procesamiento de datos y control funcionales de la tarjeta programable

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 Captulo 2. Determinacin de las caractersticas
de adquisicin, procesamiento de datos y control 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 Captulo 2. Determinacin de las caractersticas
de adquisicin, procesamiento de datos y control 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 Captulo 2. Determinacin de las caractersticas
de adquisicin, procesamiento de datos y control funcionales de la tarjeta programable

2.2.2. Controladores de seal digital

En la actualidad cada vez ms se empieza a desarrollar la tecnologa mezclada entre


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

Un controlador de seal digital (Digital Signal Controller o DSC) es un controlador


incrustado en un solo chip que integra los atributos de control de un microcontrolador con
la eficiencia y rendimiento computacional de un procesador de seal digital.

2.2.2.1. Texas Instruments C2000


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

La familia TMS320C24x de controladores de seal digital ofrece de 20 a 40 MIPS de


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

El conjunto de instrucciones de un ciclo permite calcular funciones matemticas complejas


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

La familia TMS320C28x de controladores de seal digital son los primeros controladores


de 32 bits basados en DSP de la industria con memoria Flash o ROM en tarjeta y
desempeo hasta de 150 millones de instrucciones por segundo (MIPS). Centrados a
motores y controles industriales y aplicaciones automotrices. El ncleo C28x es el ncleo
de mayor desempeo de control optimizado y ofrece hasta 150 MIPS de ancho de banda
computacional para manejar numerosos algoritmos de control sofisticado en tiempo real
como control de velocidad sin sensores, PWM aleatorio y correccin del factor de potencia.

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

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 Controladores de Unidades
punto fijo C24x punto fijo C28x
Frecuencia de trabajo 20 40 150 MHz
Velocidad de 20 40 150 MIPS
procesamientos
Arquitectura Punto fijo de 16 bits Punto fijo de 32 bits
Memoria Flash / ROM 8 32 mil / 4 32 mil Hasta 128 mil / 4 mil Palabra
RAM Hasta 2.5 mil 18 mil Palabra
ADC 10 bit, 500 ns 12 bit, 80 ns
Perifricos SCI, SPI, CAN SCI, SPI, CAN,
McBSP
Administrador de 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 Captulo 2. Determinacin de las caractersticas
de adquisicin, procesamiento de datos y control 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 Captulo 2. Determinacin de las caractersticas
de adquisicin, procesamiento de datos y control funcionales de la tarjeta programable

2.2.3. Herramientas de desarrollo

Las herramientas de desarrollo son los programadores, emuladores y tarjetas de evaluacin


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

En cuanto a software, algunos fabricantes proporcionan de forma gratuita un entorno


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

Buscando mantener la sencillez y economa para la programacin de los


microcontroladores, se muestran las herramientas de desarrollo disponibles para cada
microcontrolador desde algunos que puede armar el usuario hasta los comerciales.

Para el microcontrolador COP8 de National Semiconductor, el ambiente de desarrollo es el


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

El ambiente de trabajo utilizado para los microcontroladores PIC de Microchip es el


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

Los programas para los microcontroladores AVR de Atmel pueden ser desarrollados en
AVRStudio o WinAVR. El programador ms sencillo es una interfaz con un buffer de
proteccin conectado al puerto paralelo, este programador es utilizado junto con el
AVRStudio. Algunas de las herramientas para emular los AVRs son ICE 40, ICE 50 y
JTAG ICE 2.

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

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 Captulo 2. Determinacin de las caractersticas
de adquisicin, procesamiento de datos y control 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 40 40
Requerimiento mnimo 24
20 20
8 10 16
3 6
0 4
5
4

77

52

B
F
11

12

7A
0
03
8

76
F8

30

F-
i te
y2
C

F8

F4

40
a1

30
16

C
7L
H

H
in

16

16

18

F2

PI
eg
68

68

C
t

ST
AT

ds
C

PI
PI

0L
m
C

PI

PI

PI
M

ds
AT

2
S3
TM

Frecuencia de operacin (MHz)


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

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


Numero de E/S

80

70 68
63
60

50
41
40 38
Requerimiento mnimo 32 33 33 33
30
30

20
11 13
13
10

5
4

77

52

B
F

11

12
7A
0

03
8

76
F8

30

F-
i te
y2

C
F8

F4

40
a1

30
16

C
7L

H
in

16

16

18

F2
PI

eg

68

68

C
t

ST
AT

ds

PI
PI

0L
m

C
PI

PI

PI

ds
AT

2
S3
TM

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

40
Requerimiento mnimo 24 32 32
20 16
8
1 1 1 2 8
0
11

12
5

7A
4

B
76
F8

y2

87
ite

0
30

F-
C

C
F4

a1
40
7L

tin

30
C
F
16

C
H

eg
16

18

2
16

PI
68

68
AT
ST

C
C

LF

m
C

ds

PI
C
PI

20
PI

PI

AT
PI
M

ds
S3
TM

Memoria de programa (KB)

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

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

Para obtener el intervalo de la familia dsPIC30F, se graficaron dos elementos de esta


familia, el ms austero y el ms completo.

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

Con base en los valores de los criterios anteriormente mencionados, el microcontrolador


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

Se adquirieron los dsPIC30F pero no se consigui el programador de dsPICs y stos no se


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

Tabla 2.4 Comparacin entre el PIC18F452 y el dsPIC30F.


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

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

2.4. Tiempo de procesamiento del microcontrolador del PIC18F452

El microcontrolador PIC18F452 puede funcionar dentro de un intervalo de velocidad el


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

C1 OSC1
<
A
lgica
interna
XTAL
RF

REPOSO
C2
>
OSC2 PIC18FXXX

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


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

Esquema de tiempo de ejecucin de instrucciones

La entrada de la seal de reloj por OSC1 es internamente dividido en cuatro relojes de


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

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

Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4 Q1 Q2 Q3 Q4

OSC1
Q1
Q2

Q3
Q4

CP CP CP+2 CP+4

Ejecuta instruccin (CP-2) y Ejecuta instruccin (CP) y Ejecuta instruccin (CP+2) y


Busca instruccin (CP) Busca instruccin (CP+2) 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 Tcy1 Tcy2 Tcy3 Tcy4 Tcy5

1 MOVLW 55h Buscar inst.1 Ejecutar inst.1


2 MOVWF PORTB Buscar inst.2 Ejecutar inst.2
3 GOTO 5 Buscar inst.3 Ejecutar inst.3
4 BSF PORTA,BIT3 (NOP forzado) Buscar inst.4 NOP
5 BCF PORTB,6 buscar inst.5 Ejecutar inst.5

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 Captulo 2. Determinacin de las caractersticas
de adquisicin, procesamiento de datos y control 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 Captulo 2. Determinacin de las caractersticas
de adquisicin, procesamiento de datos y control 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 Captulo 2. Determinacin de las caractersticas
de adquisicin, procesamiento de datos y control funcionales de la tarjeta programable

VDD

Interruptor de muestreo
VT = 0.6V
ANx R IC < 1k SS
Rs Rss
IFUGA
VAIN C PIN CRETEN= 120 pF
VT = 0.6V
500 mA
5 pF
VSS

donde: VAIN = Voltaje analgico de entrada 6


RS = Impedancia de la fuente 5
CPIN = Capacitancia de entrada. VDD
4
VT = Voltaje de umbral. [Volts]
3
IFUGA = Corriente de fuga en la terminal
debido a varias conexiones. 2
RIC = Resistencia de interconexin.
SS = Interruptor de muestreo.
CRETEN = Capacitancia de muestreo y retencin 5 6 7 8 9 10 11
(del DAC). 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 = Tiempo mnimo de adquisicin.
TAMP = Tiempo de establecimiento del amplificador.
TC = Tiempo de carga del capacitor de retencin.
TCOFF = 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 Captulo 2. Determinacin de las caractersticas
de adquisicin, procesamiento de datos y control 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 Captulo 2. Determinacin de las caractersticas
de adquisicin, procesamiento de datos y control funcionales de la tarjeta programable

2.5.1. Interfaz de comunicacin entre tarjetas

El bus IIC (Inter Integrated Circuit) es una red muy barata y efectiva utilizada para
interconectar dispositivos perifricos en sistemas embebidos de pequea escala. Tambin se
conoce como 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 Captulo 2. Determinacin de las caractersticas
de adquisicin, procesamiento de datos y control funcionales de la tarjeta programable

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


y control

Las caractersticas de la tarjeta programable se muestran en la tabla 2.6.


Tabla 2.6 Especificacin de la tarjeta programable
Caracterstica Cantidad Tipo Intervalo Unidad
De programa 32 Kbytes
Memoria
De datos 1 MBytes
4 Analgicas 0-5 V
Entradas 16(1) Digitales 0,5 V
1 Corriente 4-20 mA
16(1) Digitales 0,5 V
Salidas 8 Potencia 0-20(2) V
1 Corriente 4-20 mA
Muestreos/
Frecuencia de muestreo 13800
segundo
Resolucin AD 10 Bits
Precisin mxima AD 0.1 %
Tiempo de ciclo
100(3) ns
de instruccin
Alimentacin 15 V
Consumo mximo 150 mA
-Ensamblador
Compilador
-C
Puerto de comunicacin RS232
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 Captulo 3. Diseo electrnico de la tarjeta
de adquisicin, procesamiento de datos y control

CAPTULO 3. DISEO ELECTRNICO DE LA


TARJETA

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

3.1. Descripcin a bloques de la tarjeta programable

La tarjeta programable se encuentra dividida en mdulos de acuerdo a la funcin que


realizan, adems que permite un mejor anlisis y verificacin de operacin. Los mdulos de
la tarjeta programable se muestran en la figura 3.1.

1 - Tarjeta principal

Mdulo de
Mdulo de comunicacin
alimentacin con la PC
Mdulo de (5 y 15 VCD) (RS232)
E/S digitales
Mdulo de
Mdulo de comunicacin
3 - Tarjeta de E/S memoria entre tarjetas
de 4-20 mA Mdulo de EEPROM (I2C)
Mdulo de E/S entradas
de 4-20 mA analgicas Pantalla de Mdulo de
cristal lquido 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 Captulo 3. Diseo electrnico de la tarjeta
de adquisicin, procesamiento de datos y control

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.

VCC
10K

47K

C28
100 nF
A la tarjeta de

RB0
R21

R42
procesamiento

470 U2
R1 9 11 B0 VCC
R2 8 A8 B8 12 B1
R3 7 A7 B7 13 B2
R4 6 A6 B6 14 B3
A5 B5
1
R5 5 15 B4
R6 4 A4 B4 16 B5
C

R47
3 A3 B3 17 B6
2 A2 B2 18 B7
A1 B1 220
1
9
8
7
6
5
4
3
2

2 19 DIR
1 OE
J26
74HC245
B7

B6

B5

B4

B3

B2

B1

B0
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

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 Captulo 3. Diseo electrnico de la tarjeta
de adquisicin, procesamiento de datos y control

5V
R=
25 mA
R = 200

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 (3.2)
0.707
R= (3.3)
cC1
0.707
R= = 2, 251.6 2.2 K
(31,400)(10x10-9 )

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 Captulo 3. Diseo electrnico de la tarjeta
de adquisicin, procesamiento de datos y control

VAN C22
J22
R29 R31 U7A
3 22nF 3 R35
2 C21
+
1
1 AN1
2K2 2K2 10nF 2
-
MCP6044 470
J23
C26
3
2 R37 R36 U7B
1 5 R39
+
C25 7
J24 AN2
6
-
470
3
2
1 U7D
12 R40
J25 +
14
AN3
13
3 -
470
2
1
R41 U7C
10 R38
47K +
8
C

AN0
9
-
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.
VCC1
U6 U9 VCC
LM7815C/TO220 D4 LM7805C/TO220 L1
1 3 1 3
IN OUT IN OUT 0.5mH
1N4148 R43 C41 C36
GND

GND

D6 C32
F1 470
100uF/100v

1A C33 C29 C30 C38 C31 C39 C40


100uF/50v
0.1uF
2

D7
1000uF/50v

0.1uF

0.1uF

100uF/50v

0.1uF

100uF/50v

100uF/50v

R44
J27
470
3 L2 VAN
2
1 0.5mH
D8 C37 C42
CON3 VCC JP4
C35 C43 C44 C34
100uF/50v

1 2
0.1uF

3 4
1

D7
1000uf/50v

0.1uF

0.1uF

100uF/50v

R46 RA5 5 6
D0 D6
GND

D1 7 8 D5
470 D2 9 10 D4
2 3 11 12 D3
IN OUT 13 14
LM7915C/TO220 CONECTOR A TARJETA 4-20 mA
U1

Figura 3.4 Circuito electrnico del mdulo de alimentacin.

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

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.

VCC C50

R48
100nF
6
5
4

4K7 SW5
SW DIP-3
1
2
3

C4
U10
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 Captulo 3. Diseo electrnico de la tarjeta
de adquisicin, procesamiento de datos y control

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

R28
VCC RESET POR PC
R32
330 D2
RC7
C2 C7
100uF/25V 1N4148 330 P1
5
9
4
C1 U3 8
13 12 3
10uF/25V 8 R1IN R1OUT 9 7
11 R2IN R2OUT 14 2
RC6 T1IN T1OUT
10 7 6
C4 T2IN T2OUT 1
1
10uF/25V 3 C+
4 C1-
C3 5 C2+ D3
2 C2- R33
6 V+ 4.7
5V1
V-
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 Captulo 3. Diseo electrnico de la tarjeta
de adquisicin, procesamiento de datos y control

VCC C27

100nF

6
5
4
R45

4K7 SW3

1
2
3
C4
U8
A0 24FC512
A1
A2 SCL
J47
SDA
1
C3 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 Captulo 3. Diseo electrnico de la tarjeta
de adquisicin, procesamiento de datos y control

VCC1 VCC2
VCC
J35

1
2
3
8
7
6
5
SW4
C10 C24

100nF 100uF/25V C11 C12 C13 C14 C20 C45


100nF
1
2
3
4
J33

8
U4
C1 2 3

VCC2
C0 7 1A 1Y 6 5
RB0 10 2A 2Y 11 4

CON5
C5 15 3A 3Y 14 3
4A 4Y 2
1 1
10K 9 1,2EN VCC
3,4EN VCC1 VCC2
L293
J36 C15 C8
C

R34 100nF
C9 C23

1
2
3
J34
8

U5
C2 2 3
VCC2

B6 7 1A 1Y 6 5
B7 10 2A 2Y 11 4

CON5
A4 15 3A 3Y 14 3
4A 4Y 2
1 1
9 1,2EN
3,4EN C47 C46 C16 C17 C18 C19
L293 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.

JP5
B0 B7
B1 1 2
3 4 RE2
B2 VCC
5 6 RE1
B3
7 8 RE0
B4
B5 9 10
B6 11 12
13 14
HEADER 7X2 R20 R19

820 10K

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

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

Mdulo de procesamiento.

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

U1
2
3 RA0/AN0
4 RA1/AN1 VCC
5 RA2/AN2/VREF-
6 RA3/AN3/VREF+ S1
7 RA4/TOCKI 1
A la tarjeta principal

33 RA5/AN4/SS# MCLR/Vpp
34 RB0/INT
35 RB1
36 RB2 11 R23
37 RB3PGM VCC 10K
38 RB4
39 RB5 32
40 RB6/PGC VCC
15 RB7/PGD D1
16 RC0/T1OSI/T1CKI
17 RC1/T1OSO/CCP2 1N4148
18 RC2/CCP1 R21
23 RC3/SCK/SCL
24 RC4/SDI/SDA
25 RC5/SDO 14 100
26 RC6/TX/CK OSC2/CLKOUT
RC7/RX/DT

2
19
20 RD0/PSP0 13 SW1 C3
21 RD1/PSP1 OSC1/CLKIN C1 C2 C6 10uF
22 RD2/PSP2
27 RD3/PSP3 100 nF 100 nF 10 uF / 16V
28 RD4/PSP4
1
29 RD5/PSP5
30 RD6/PSP6 C5
8 RD7/PSP7
9 RE0/RD#/AN5 12MHz 22pF
10 RE1/WR#/AN6
RE2/CS#/AN7 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 Captulo 3. Diseo electrnico de la tarjeta
de adquisicin, procesamiento de datos y control

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
16 1
15 V+ - In 2 J1
14 Rcv f B CT 3
13 Rcv Out + In 4 1
12 Rcv Com V- 5 2
11 Ref In Ref Com 6 ENTRADA 4-20 mA
10 Ref Out NC1 7
-15VCC +5VCC +15VCC 9 Ref f B Ref Noise Red 8
NC2 Ref Trim

RCV420
JP1
1 2
3 4 +15VCC
5 6 R3 1K R4
7 8 +5VCC
9 10
11 12 R1 -15VCC 10K
13 14
HEADER 7X2 3K3 U3
1 16
13

U1 2 Source Res + Vcc 15


Comm Vref Force 1 Q1

4
5
12 4 3 14 3
V+

11 A8 IOUT 2 U4 4 Vref In Gate Driv e 13 MOSFET MTP2955


A7 Vin1(10V) SourceSense
-
10 6 5 12 2
9 A6 2 3 6 Vin2(5V) Vref Sense 11 C2 + J2
A5 IOUT Zero Adj1 Vref Adj
+
8 LF351 7 10
7 A4 8 Zero Adj2 4mA Span 9 1 uF 1
6 A3 Zero Adj3 16mA Span 2

7
1
5 A2 16 XTR110 SALIDA 4-20 mA
A1 COMP
14
VR+ C1
15
V-

VR- 33pF +15VCC


DAC0808
3

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 Captulo 3. Diseo electrnico de la tarjeta
de adquisicin, procesamiento de datos y control

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.


J1 J2 J3 J4
VCC VCC1

1
2
3

1
2
3

1
2
3

1
2
3

RB0
R12

A4
VCC R14
VCC1 220 470

SW19

SW20
AN3
D26 D27
U1 VCC
1 2 LED
VS+ VOUT

SW10

SW11

SW12

SW13

SW14

SW15

SW16

SW17

SW18
SW3

SW4

SW5

SW6

SW7

SW8

SW9
LM35/TO
R3
2

1 10K 3
R1 D0 B0

D10
VAN

D18
2

D1 B1
3 10K 1

D11

D19
R2 D2 B2
D1

D12
3
D3 B3

D20
U3
R4 R5 1 15

D13

D21
AIN0 AOUT A5
4K7 LDR 2 R9 D4 B4
3 AIN1 14 2

D14

D22
4 AIN2 VREF 10K D5 B5
AN3 AIN3
R6 R7 C1

D15

D23
220 220 13 R10 D6 B6 R11
5 AGND 100n 1 2 9

D16

D24
C

1
6 A0 3 D7 B7 8
7 A1 12 4 7

D17

D25
3 Q1 A2 EXT 5 6
2 10K 9 6 5
C5 C4 SDA
1 R8 10 11 7 4
C3 SCL OSC
2N3904 8 3
VCC PCF8591 9 2 1
J5 C
VCC
1
2 VCC C4
47uF/16v JP6

VCC1 A5 1 2
C5 3 4 A2
5 6
7 8 C4
C3 9 10 RB0
11 12 A4
U2 JP2 JP3 JP4 JP5 13 14
B0 15 16
4 13 S0 S0 7 S0 7 S0 7 S0 7 C5
B1 BI OA a a a a 17 18
5 12 S1 S1 6 S1 6 S1 6 S1 6 D6 D7
B2 RBI OB b b b b 19 20
3 11 S2 S2 4 S2 4 S2 4 S2 4 D4 D5
B3 LT OC c c c c 21 22
JP1 10 S3 S3 2 S3 2 S3 2 S3 2 D2 D3
7 7 OD 9 S4 S4 1 d S4 1 d S4 1 d S4 1 d D0 23 24 D1
a 6 1 A OE 15 S5 S5 9 e S5 9 e S5 9 e S5 9 e 25 26
b 4 2 B OF 14 S6 S6 10 f S6 10 f S6 10 f S6 10 f B4 27 28 B5
c 2 6 C OG S7 5 g S7 5 g S7 5 g S7 5 g R13 B2 29 30 B3 R15
d D dp dp dp dp 31 32
3
8

3
8

3
8

3
8

1 B0 B1
e B4 33 34
9 74LS48 1k 1k
f B5 35 36
10 3 Q2 3 Q3 3 Q4 3 Q5 B6 B7
g B6
5 2 2 2 2
dp B7 B7 B6 B5 B4
8
3

1 1 1 1 VAN
2N3904 2N3904 2N3904 2N3904

D2 D3 D4 D5 D6 D7 D8 D9 J7
1
2
CON2
J6

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 Captulo 3. Diseo electrnico de la tarjeta
de adquisicin, procesamiento de datos y control

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 Largo (mm) Ancho (mm)
1. Principal 195 120
2. De procesamiento 80 55
3. De E/S de 4 20 mA 65 55
4. De aplicacin 145 95

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

CAPTULO 4. CONSTRUCCIN Y PRUEBAS


DE LAS TARJETAS ELECTRNICAS

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

4.1. Construccin de las tarjetas electrnicas

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

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

Las tarjetas de circuito impreso que se realizaron son:

1. Tarjeta principal. (Ver figura 4.1).


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

Figura 4.1 Tarjeta principal.

48
Diseo y construccin de una tarjeta programable Captulo 4. Construccin y pruebas de las tarjetas
De adquisicin, procesamiento de datos y control 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 Captulo 4. Construccin y pruebas de las tarjetas
De adquisicin, procesamiento de datos y control 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.


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

50
Diseo y construccin de una tarjeta programable Captulo 4. Construccin y pruebas de las tarjetas
De adquisicin, procesamiento de datos y control 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 Captulo 4. Construccin y pruebas de las tarjetas
De adquisicin, procesamiento de datos y control 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(); // Inicia la conversin


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

Despus de una conversin se necesita un tiempo de espera de 2 veces el tiempo de


adquisicin por bit (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 Captulo 4. Construccin y pruebas de las tarjetas
De adquisicin, procesamiento de datos y control 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 Captulo 4. Construccin y pruebas de las tarjetas
De adquisicin, procesamiento de datos y control 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:

12i106
SSPADD = 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 Captulo 4. Construccin y pruebas de las tarjetas
De adquisicin, procesamiento de datos y control 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 Salida (V)
corriente (mA) Prueba 1 (Ascendente) Prueba 2 (Descendente)
4 0.02 0.00
6 0.63 0.64
8 1.27 1.27
10 1.89 1.90
12 2.52 2.52
14 3.16 3.17
16 3.80 3.80
18 4.42 4.43
20 5.05 5.05

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

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

4
Voltaje de salida (Volts)

0
2 4 6 8 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 Salida (mA) Error
(hexadecimal) Valor ideal Valor real (%)
0x00 4 4 0.00
0x20 6 6 0.00
0x40 8 8 0.00
0x60 10 10.1 1.00
0x80 12 12.1 0.83
0x9F 14 14.1 0.71
0xBF 16 16.2 1.25
0xDF 18 18.2 1.11
0xFF 20 20.2 1.00

56
Diseo y construccin de una tarjeta programable Captulo 4. Construccin y pruebas de las tarjetas
De adquisicin, procesamiento de datos y control 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 Captulo 5. Diseo y construccin de plantas
de adquisicin, procesamiento de datos y control

CAPTULO 5. DISEO Y CONSTRUCCIN DE


PLANTAS

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

5.1. Descripcin de plantas a controlar

Para demostrar la funcionalidad y versatilidad de la tarjeta programable, se disearon y


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

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

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

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

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

Tabla 5.1 Descripcin de plantas fabricadas


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

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

5.2. Robot mvil seguidor de lnea

5.2.1. Objetivo

El robot mvil debe seguir una lnea negra trazada sobre una superficie blanca. Esto se
logra mediante dos sensores pticos de reflexin (cada uno de estos consta de un LED
infrarrojo y un fototransistor). Los sensores son activados por el reflejo sobre el transistor
de la luz infrarroja emitida por el LED. Es por esto que se deben emplear superficies que
contrasten en color; ya sea lnea obscura sobre fondo claro o viceversa. El robot emplea dos
motores de corriente directa (CD) para poderse mover, cada motor se controla de forma
independiente para que el robot pueda girar. Ver figura 5.1
Giro del motor Chasis
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 Captulo 5. Diseo y construccin de plantas
de adquisicin, procesamiento de datos y control

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.

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

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

5 VCC

R1
75
CNY 70

RD0
RC2
SENSOR IZQ R2
47 K
RB6
5 VCC

PROGRAMABLE
MOTOR

TARJETA
IZQUIERDO
R1 15 VCD
75 RA4
CNY 70

RB7
RD1

SENSOR DER R2 MOTOR


47 K 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 Captulo 5. Diseo y construccin de plantas
de adquisicin, procesamiento de datos y control

Posicin 1 Posicin 2
Avanza en lnea recta Gira a la derecha

Posicin 3
Posicin 4 Gira a la izquierda
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 Captulo 5. Diseo y construccin de plantas
de adquisicin, procesamiento de datos y control
24 VCD

MOTOR GIRO
TIP125 HORIZONTAL TIP125
R1 24 VCD R1
RD0 3k3 3k3 RD1
R2 R2
150k 150k
BC548 BC548

TIP120 TIP120

24 VCD

MOTOR GIRO
TIP125 VERTICAL TIP125
R1 24 VCD R1
RD2 3k3 3k3 RD3
R2 R2
150k 150k
BC548 BC548

TIP120 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
VCE(sat)=0.6 V, Ic(max)=500 mA, hFE=800, IB=0.625 mA, VBE(on)=0.77 V

TIP120 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 Captulo 5. Diseo y construccin de plantas
de adquisicin, procesamiento de datos y control

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 Captulo 5. Diseo y construccin de plantas
de adquisicin, procesamiento de datos y control

Placa
colectora
Poleas de
placa colectora

Dados
deslizantes Motor giro
vertical
Bujes de Motor giro
polea Soporte horizontal
vertical
Polea
Varilla roscada Buje
roscada

Modelo completo del modelo a escala


Mecanismo de giro vertical de plataforma de seguimiento solar

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 Captulo 5. Diseo y construccin de plantas
de adquisicin, procesamiento de datos y control

Sensor 4 Sensor
central Sensor 1

Grupo izquierdo
de 8 sensores
conectados en
paralelo
Grupo derecho
de 8 sensores
Sensor 3
conectados en
paralelo
Sensor 2

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

Giro
Sensores horizontal
10
Placa semicircular
de acrlico Placa colectora
Interruptor de
lmite inferior Interruptor de
Giro lmite superior
vertical
Motor de giro Interruptor de
vertical lmite central

Soporte vertical Motor giro


horizontal

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 Captulo 5. Diseo y construccin de plantas
de adquisicin, procesamiento de datos y control

5 VCC

SENSOR 4 SENSOR 1

5 VCC 5 VCC

PRINCIPAL
GRUPO IZQUIERDO DE SENSORES GRUPO DERECHO DE SENSORES

SENSOR
330
R1

R1
330
R1 5 VCC R1

SENSOR 3

SENSOR 2
330 5 VCC S6 5 VCC 330

R1 330
INT DE ARRANQUE
R1
330 R1 R1
R1 330 330
330
ENCODER
MOTOR DE 24 VCC
GIRO SUB/BAJ

RA4 RB1 RD6 RD7 RB0 RD4 RD5 RB2 RA5


RD2

RD3 TARJETA DE
TARJETA POTENCIA
PROGRAMABLE RD0 (2 PUENTES H)
RD1
RB5 RB4 RB3 RB7 RB6

MOTOR DE 24 VCC
GIRO IZQ/DER

R1 R1 R1 R1 R1
330 330 330 330 330
INT LIM IZQ

INT LIM DER

INT LIM INF

INT LIM SUP


CENTRAL
INT LIM

5 VCC

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 Captulo 5. Diseo y construccin de plantas
de adquisicin, procesamiento de datos y control

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 Detalle A
Grupo der. Vista superior de la planta
Grupo izq.
sensores
sensores Sensor 4 Sensor 1
Sube Giro izq.

lmite giro abajo Sensor


Lmite giro arriba Sensor
Baja grupo izq.
Sensor
Motor / giro vertical grupo der. principal
Lmite central

Giro der. Giro izq. Giro der.


Sensor 3 Sensor 2
Lmite Lmite
giro izquierda 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 Captulo 5. Diseo y construccin de plantas
de adquisicin, procesamiento de datos y control

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 Solenoide de
temperatura apertura de
compuerta

Cubo externo

Soplador Extractor
de aire de aire

Calefactor

Agitador Cubo
de aire interno

Figura 5.12 Cmara trmica con temperatura controlada.

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

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)

REFERENCIA DE
120 VCA - +
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 Captulo 5. Diseo y construccin de plantas
de adquisicin, procesamiento de datos y control

180 CARGA

470
MOC3010 100
SEAL DE
DISPARO 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.

+5V VS+ VOUT


TARJETA PROGRAMABLE

LM35
AN0 RC1
COMPUERTA COMPUERTA
RC0 SOPLADOR EXTRACTOR

RA4
+ +

RC2 A SOPLADOR EXTRACTOR A


RC5 - -

120 VCA CALEFACTOR


AGITADOR
- +
RD0
A
+

-
120 VCA

RB0

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 Captulo 5. Diseo y construccin de plantas
de adquisicin, procesamiento de datos y control

5.4.5. Algoritmo de control

La parte central del algoritmo de control es el controlador proporcional-integral. Para


deducir la frmula de control PI a programar se realiz el siguiente proceso.

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

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

Considerando la aproximacin 5.3 para la parte integral:

N
E (t )dt Ts E (n)
t
0
0
(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

N

C (n) K E (n) + TS TI E (n) (5.4)
0
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 Captulo 5. Diseo y construccin de plantas
de adquisicin, procesamiento de datos y control

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 Captulo 5. Diseo y construccin de plantas
de adquisicin, procesamiento de datos y control

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 Captulo 6. Experimentacin y anlisis de resultados
de adquisicin, procesamiento de datos y control

CAPTULO 6. EXPERIMENTACIN Y
ANLISIS DE RESULTADOS

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

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


lnea

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

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

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

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

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

6.2. Pruebas y resultados de la tarjeta programable con el modelo a escala de la


plataforma de seguimiento solar

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

La definicin de la direccin de los sensores fotoelctricos se logr mediante tubo termo


contrctil (thermofit).

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

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

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

Los resultados de las pruebas realizadas se consideran satisfactorios, considerando la falta


de maquinaria y equipo para la fabricacin de los mecanismos de la planta, adems del
mnimo presupuesto empleado para su fabricacin.

El ajuste de la longitud de los tubos que direccionan la luz del foco hacia los sensores
fotoelctricos es diferente a la que deben de tener estos para direccionar la luz del sol,
debido a la diferencia de intensidades luminosas entre ambos. La direccin perpendicular
del sol a la placa colectora se puede optimizar mediante un ajuste fino del tubo colocado en
el sensor principal, que es el que debe apuntar hacia el sol.

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

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 Captulo 6. Experimentacin y anlisis de resultados
de adquisicin, procesamiento de datos y control

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:

1 t
T 0
Vef = f (t )dt (6.1)

Aplicando la ecuacin 6.1 para el clculo del voltaje eficaz de la onda recortada se obtiene:

Vef =
1 T2
T t1
(
(175sin(120 ) ) dt +
2

(
T

T 2 ) + t1
(175sin(120 ) ) dt
2
)
sin ( 240 t1 ) 1
Vef = 175 30 2t1 +
120 60

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

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

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 Captulo 6. Experimentacin y anlisis de resultados
de adquisicin, procesamiento de datos y control

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 Captulo 7. Conclusiones
de adquisicin, procesamiento de datos y control

CAPTULO 7. CONCLUSIONES

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

7.1. Conclusiones

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

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

Existen sistemas comerciales de adquisicin de datos que pueden realizar la lectura de


varios sensores e interactuar con la computadora, pero estn limitadas nicamente a
transmitir los datos hacia sta, no permiten trabajar de forma independiente a la
computadora y tomar decisiones con respecto a los valores de los sensores conectados.

La tarjeta programable puede interactuar con programas comerciales de instrumentacin


como LabVIEW comparado con otros mdulos de adquisicin de datos que funcionan
solamente con el programa del fabricante.

Por su diseo modular, la tarjeta programable puede funcionar con cualquier


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

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

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

Tarjeta de procesamiento intercambiable.


Tarjeta de aplicacin para emulacin, pruebas y prcticas con la tarjeta programable.
Plantas para demostrar la funcionalidad de la tarjeta, incluyendo los programas de
control de cada una:
o Robot mvil seguidor de lnea.
o Modelo a escala de plataforma de seguimiento solar.
o Cmara trmica con temperatura controlada.

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

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 Referencias
de adquisicin, procesamiento de datos y control

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 Referencias
de adquisicin, procesamiento de datos y control

[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
VCC1
U6 U9 VCC
LM7815C/TO220 D4 LM7805C/TO220 L1 VAN C22
1 3 1 3 J22
IN OUT IN OUT 0.5mH R29 R31 U7A
R43 C41 C36 3 22nF 3 R35
1N4148 +
D6 C32 2 C21 1

GND
GND
470 1 AN1
F1 2K2 2K2 10nF 2
-
1A C33 C29 C30 C38 C31 C39 C40 MCP6044 470
J23

2
2
VCC2
D7 C26

0.1uF
J32 3

100uF/100v
R44

0.1uF
0.1uF
0.1uF
100uF/50v
J27 2 R37 R36 U7B
470 1 1 5 R39

100uF/50v
100uF/50v
100uF/50v
3 2 +

1000uF/50v
L2 VAN C25 7
2 J24 AN2
6
1 -
0.5mH 470
D8 C37 C42 3
CON3 VCC JP4 FTE. VCD EXT. 2
Anexo A.

C35 C43 C44 C34 1 U7D


1 2 12 R40

1
3 4 J25 +
D7 14

0.1uF
R46 RA5 5 6 AN3
D0 D6 13

0.1uF
0.1uF
100uF/50v
7 8 3 -
D1 D5 470

GND
470 D2 9 10 D4 2

100uF/50v

1000uf/50v
2 3 11 12 D3 1
IN OUT 13 14 R41 U7C
LM7915C/TO220 CONECTOR A TARJETA 4-20 mA 10 R38
U1 47K +

C
8
AN0
9
-
470
R22 47K R23 R24 R25 R27 R26

VCC

VCC C27

L1
L9
L8
L7
L6
L5
L4
L3
L2

H9
H8
H7
H6
H5
H4
H3
H2
H1
L13
L10
L11
L12
L21
L20
L19
L18
L17
L16
L15
L14

H14
H15
H16
H17
H18
H19
H20
H21
H13
H10
H11
H12
100nF
6
5
4

R45

J1 J2 J3 J4 J5 J6 J7 J8 J9 J10 J11 J12 J13 J14 J15 J16 J17 J18 J19 J20 J21
4K7 SW3

1
2
3
1
2
3
1
2
3
1
2
3
1
2
3
1
2
3
1
2
3
1
2
3
1
2
3
1
2
3
1
2
3
1
2
3
1
2
3
1
2
3
1
2
3
1
2
3
1
2
3
1
2
3
1
2
3
1
2
3
1
2
3
1
2
3

H1
L1
H2
L2
H3
L3
H4
L4
H5
L5
H6
L6
H7
L7
H8
L8
H9
L9
H12
H19

H10
L10
H11
L11
L12
H13
L13
H14
L14
H15
L15
H16
L16
H17
L17
H18
L18
L19
H20
L20
H21
L21
C4

B3
C1
C2
C5
C0
D0
D1
D2
D3
D4
D5
D6
D7

A4
B0
B1
B2
B4
B5
B6
B7
U8
A0 24FC512
A1
A2 SCL
J47
VCC VCC1 VCC2 SDA
VCC 1
C3 2
JP3 VCC J35

10K
VPP/MCLR# C28 I2C

47K
1
2
3
RB3/PGM 1 2 RB7/PGD VCC C50

8
7
6
5
3 4 RB6/PGC 100 nF
de adquisicin, procesamiento de datos y control

5 6 RB0 R48
SW4

R21
Diseo y construccin de una tarjeta programable

R42
ENT. PROG C10 C24 100nF
6
5
4

470 U2
R1 9 11 B0 100nF 100uF/25V C11 C12 C13 C14 C20 C45 4K7 SW5
AN0 A8 B8
R2 8 12 B1 100nF
AN1 A7 B7 SW DIP-3

1
2
3
4
R3 7 13 B2

8
AN2 A6 B6 J33
R4 6 14 B3 U4
AN3 R5 5 A5 B5 15 B4 C1 2 3
A4 B4 1A 1Y 5

88
1
2
3

R6 4 16 B5 C0 7 6
RA5 A3 B3 2A 2Y 4

VCC2
3 17 B6 RB0 10 11
2 A2 B2 18 B7 C5 15 3A 3Y 14 3
CON5

A1 B1 4A 4Y 2
1 1 1
2 DIR 1,2EN C4
19 10K 9 VCC U10
1 OE 3,4EN VCC1 VCC2
J26 L293 A0 24FC512
A1

C
74HC245 J36 C15 C8
R34 100nF A2 SCL
1
2
3

470 A4 C9 C23 SDA


R7 C0
C3
R8 C1
8

RC3
RC4
RE0
RE1
RE2
R9 C2 U5 J34
R10 C5 C2 2 3
B6 7 1A 1Y 6 5
RC6 2A 2Y 4
VCC2

B7 10 11
RC7 470 3A 3Y 3
R18 D0 A4 15 14
CON5

4A 4Y 2

2
4
6
8
R11 D1

10
12
14
16
18
20
22
24
26
28
30
32
34
36
38
40
R12 D2 1 1
JP1 CONECTOR A TARJETA DE uC R16 D3 9 1,2EN
R17 D4 3,4EN C47 C46 C16 C17 C18 C19

1
3
5
7
9
11
13
15
17
19
21
23
25
27
29
31
33
35
37
39
R15 D5 L293 100nF
R13 D6
R14 D7 VCC
JP2

VCC1 RA5 1 2 VCC J29 J30 VCC


3 4
JP5
1
2
3
1
2
3

VCC B0 B7 5 6
B1 1 2 7 8 C4
1

3 4 RE2 9 10

Figura A.1 Circuito esquemtico de tarjeta principal.


B2 VCC C3 RB0
C

5 6 RE1 11 12 C4
B3 A4 R47 J28
7 8 RE0 13 14 5
B4 1
9 10 15 16 RC4 VBUS
B5 C5 R30 1K5 2
B6 11 12 D6 17 18 D7 220 C5 3 D-
13 14 19 20 RC3 D+
9
8
7
6
5
4
3
2

D4 D5 4
R20 R19 D2 21 22 D3 C48 C49 GND
HEADER 7X2 C3
D0 23 24 D1 6USB
25 26
3
2
1

820 10K B6 B7 100nF


R28 B4 27 28 B5
RESET POR PC B2 29 30 B3 J31
R32 B0 31 32 B1
Circuitos esquemticos de la tarjeta programable

330 D2 33 34
B7
B6
B5
B4
B3
B2
B1
B0

RC7 35 36
C2 C7
100uF/25V 1N4148 330 P1 HEADER 18X2
5
9 VAN
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

4
C1 U3 8
13 12 3 J45 J44 J43 J42 J41 J40 J39 J38
10uF/25V 8 R1IN R1OUT 9 7
11 R2IN R2OUT 14 2
RC6 T1IN T1OUT
10 7 6
C4 T2IN T2OUT 1
1
10uF/25V 3 C+
4 C1-
C3 5 C2+ D3
2 C2- R33
6 V+ 4.7
5V1
V-
MAX232

C6
Anexos

10uF/25V
U1
2
3 RA0/AN0
4 RA1/AN1 VCC
5 RA2/AN2/VREF-
6 RA3/AN3/VREF+ S1
7 RA4/TOCKI 1
33 RA5/AN4/SS# MCLR/Vpp
34 RB0/INT
35 RB1
36 RB2 11 R23
37 RB3PGM VCC 10K
38 RB4
39 RB5 32
40 RB6/PGC VCC
15 RB7/PGD D1
16 RC0/T1OSI/T1CKI
17 RC1/T1OSO/CCP2 1N4148
18 RC2/CCP1 R21
23 RC3/SCK/SCL
24 RC4/SDI/SDA
de adquisicin, procesamiento de datos y control

RC5/SDO
Diseo y construccin de una tarjeta programable

25 14 100
26 RC6/TX/CK OSC2/CLKOUT
2

19 RC7/RX/DT
20 RD0/PSP0 13 SW1 C3

89
21 RD1/PSP1 OSC1/CLKIN C1 C2 C6 10uF
22 RD2/PSP2
27 RD3/PSP3 100 nF 100 nF 10 uF / 16V
RD4/PSP4
1

28
RD5/PSP5

2
4
6
8
29

10
12
14
16
18
20
22
24
26
28
30
32
34
36
38
40
30 RD6/PSP6 C5
JP1 HEADER 20X2 8 RD7/PSP7
9 RE0/RD#/AN5 22pF

1
3
5
7
9
11
13
15
17
19
21
23
25
27
29
31
33
35
37
39
10 RE1/WR#/AN6 XTL
RE2/CS#/AN7 C4
PIC18F452
22pF

Figura A.2 Circuito esquemtico de tarjeta de procesamiento.


VCC
Anexos
+15VCC -15VCC

U2
16 1
15 V+ - In 2 J1
14 Rcv f B CT 3
13 Rcv Out + In 4 1
12 Rcv Com V- 5 2
11 Ref In Ref Com 6 ENTRADA 4-20 mA
10 Ref Out NC1 7
-15VCC +5VCC +15VCC 9 Ref f B Ref Noise Red 8
NC2 Ref Trim

RCV420
JP1
1 2
3 4 +15VCC
5 6
de adquisicin, procesamiento de datos y control

R3 1K R4
Diseo y construccin de una tarjeta programable

7 8 +5VCC
9 10
11 12 R1 -15VCC 10K
13 14

90
HEADER 7X2 3K3 U3
1 16

13
U1 2 Source Res + Vcc 15

4
5
12 4 3 Comm Vref Force 14 1 Q1 3
A8 IOUT Vref In Gate Driv e

V+
11 2 - U4 4 13 MOSFET MTP2955
10 A7 6 5 Vin1(10V) SourceSense 12 2
9 A6 2 3 6 Vin2(5V) Vref Sense 11 C2 +
+ J2
8 A5 IOUT LF351 7 Zero Adj1 Vref Adj 10
7 A4 8 Zero Adj2 4mA Span 9 1 uF 1
A3 7 Zero Adj3 16mA Span 2
1
6
5 A2 16 XTR110 SALIDA 4-20 mA
A1 COMP
14
VR+ C1
15

V-
VR- 33pF +15VCC
DAC0808

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


R2
3K3
Anexos
J1 J2 J3 J4
VCC VCC1

1
2
3
1
2
3
1
2
3
1
2
3
A4
RB0

VCC R12 R14


VCC1 3K9 3K9
AN3
SW19
SW20

D26 D27
U1 VCC
1 2 LED
VS+ VOUT

LM35/TO R3

SW10
SW11
SW12
SW13
SW14
SW15
SW16
SW17

SW3
SW4
SW5
SW6
SW7
SW8
SW9
SW18

10K

2
1 10K 3
R1 D0 B0

D10
VAN

2
D18

R2 D1 B1
3 1

D11
D19

10K D2 B2
D1

3
D12
R4 R5 U3 D3 B3
D20

1 15
AIN0 AOUT A5

D13
D21

2 R9 D4 B4
470 LDR 3 AIN1 14 2
AIN2 VREF D14
D22

4 10K D5 B5
AN3 AIN3
R6 R7 C1
D15
D23

220 3K9 13 R10 D6 B6 R11


AGND

1
C
5 100n 1 2 9
A0
D16
D24

6 3 D7 B7 8
A1
de adquisicin, procesamiento de datos y control

7 12 4 7
A2 EXT
Diseo y construccin de una tarjeta programable

D17
D25

3 Q1 R8 5 6
2 9 6 5
C5 C4 SDA
1 10 11 7 4
C3 SCL OSC
2N3904 10K 8 3
VCC PCF8591 9 2 1

91
J5 C
470 VCC 470
1
2 VCC C4
47uF/16v JP6

VCC1 A5 1 2
3 4 A2
C5 5 6
100n 7 8 C4
C3 9 10 RB0
11 12 A4
U2 JP2 JP3 JP4 JP5 13 14
B0 15 16
4 13 S0 S0 7 S0 7 S0 7 S0 7 C5
B1 BI OA a a a a 17 18
5 12 S1 S1 6 S1 6 S1 6 S1 6 D6 D7
B2 RBI OB b b b b 19 20
3 11 S2 S2 4 S2 4 S2 4 S2 4 D4 D5
B3 LT OC c c c c 21 22
JP1 10 S3 S3 2 S3 2 S3 2 S3 2 D2 D3
7 7 OD 9 S4 S4 1 d S4 1 d S4 1 d S4 1 d D0 23 24 D1
a 6 1 A OE 15 S5 S5 9 e S5 9 e S5 9 e S5 9 e 25 26
b 4 2 B OF 14 S6 S6 10 f S6 10 f S6 10 f S6 10 f B4 27 28 B5
c 2 6 C OG S7 5 g S7 5 g S7 5 g S7 5 g R13 B2 29 30 B3 R15

3
8
3
8
3
8
3
8

d 1 D dp dp dp dp B0 31 32 B1

Figura A.4 Circuito esquemtico de tarjeta de aplicacin.


e B4 33 34
9 74LS48 1k 1k
f B5 35 36
10 3 Q2 3 Q3 3 Q4 3 Q5 B6 B7
g B6
5 2 2 2 2
B7 B7 B6 B5 B4

8
3
dp 1 1 1 1 VAN
2N3904 2N3904 2N3904 2N3904

D2 D3 D4 D5 D6 D7 D8 D9 J7
1
2
CON2
J6

1
2
Anexos
Diseo y construccin de una tarjeta programable Anexos
de adquisicin, procesamiento de datos y control
Anexo B. 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 Anexos
de adquisicin, procesamiento de datos y control

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

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

A B C D

1 1

2 2

3 3

4 4

5 5

A B C D
Figura B.3 Capa de leyenda de componentes de la tarjeta principal

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

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

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

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

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

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

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

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

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

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

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 Anexos
de adquisicin, procesamiento de datos y control

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 Anexos
de adquisicin, procesamiento de datos y control

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

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

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

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

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

103
Diseo y construccin de una tarjeta programable Anexos
de adquisicin, procesamiento de datos y control
Anexo C. Programas de prueba de la tarjeta programable
Los programas de este anexo corresponden a los programas realizados para las pruebas
funcionales de la tarjeta programable. En la tabla C.1 se enlistan los programas as como la
prueba que realizan.

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


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

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

Programa 1.A Entradas/salidas digitales


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

void main (void)


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

while (1)
{

104
Diseo y construccin de una tarjeta programable Anexos
de adquisicin, procesamiento de datos y control
PORTD = ~PORTB; // PORTD = complemento a 1 de PORTB
}
}

Programa 1.B Entradas/salidas digitales


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

void main (void)


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

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

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

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

RS=0; EN=1; //Transmisin 8 bits, una lnea, 5x8 puntos


PORTB=0x38;
Delay1KTCYx(3);
EN=0;
Delay1KTCYx(3);

RS=0; EN=1; //Mensaje fijo


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

RS=0; EN=1; //Enciende display


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

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

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

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


PORTB=0xC0;
Delay10TCYx(3);
EN=0;
Delay10TCYx(3);

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

Programa 5 Comunicacin RS232


#include <p18f452.h>
#include <usart.h>
#include <delays.h>
int A1=0;
void main(void)
{
// Configuracion USART
OpenUSART( USART_TX_INT_OFF &
USART_RX_INT_OFF &
USART_ASYNCH_MODE &
USART_EIGHT_BIT &
USART_CONT_RX &
USART_BRGH_HIGH,
38 ); //BGR = 19200
TRISD=0xFF;LATD=0x00;
while(1)
{
Delay10KTCYx(0);
A1=PORTD+0x30;
WriteUSART(A1); //Enva el valor de PORTD

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

SSPCON2bits.SEN = 1; // Enva bit de inicio


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

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

SSPBUF = 0x00; // Se enva el byte alto


while(!PIR1bits.SSPIF); // de la direccin 0x0000
PIR1bits.SSPIF = 0; //

SSPBUF = 0x00; // Se enva el byte bajo


while(!PIR1bits.SSPIF); // de la direccin 0x0000
PIR1bits.SSPIF = 0; //

SSPCON2bits.RSEN = 1; // enva el bit de inicio repetido


while(SSPCON2bits.RSEN); // y espera por el para limpiar

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

SSPCON2bits.RCEN = 1; // empieza a recibir


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

SSPCON2bits.RCEN = 1; // Empieza a recibir


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

110
Diseo y construccin de una tarjeta programable Anexos
de adquisicin, procesamiento de datos y control
while(SSPCON2bits.ACKEN); // espera a que la secuencia
ACK termine

SSPCON2bits.RCEN = 1; // Empieza a recibir


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

SSPCON2bits.RCEN = 1; // Empieza a recibir


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

SSPCON2bits.PEN = 1; // enva bit de paro


PORTD=buffer[0];
while(1);
}

Programa 7.A Entrada de 4-20 mA


// Leer la entrada de 4-20 mA y mostrarla en puerto B

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

void main (void)


{
PORTC=0;LATC=0;TRISC=0x00; // PORTC salida
PORTD=0;LATD=0;TRISD=0x00; // PORTD salida
PORTB=0;LATB=0;TRISB=0x00; // PORTB salida
INTCON=0; // Deshabilita las interrupciones
PORTA=0;LATA=0;TRISA=0xEF; // RA4 SALIDA
INTCON2=0x80;
OpenADC(ADC_FOSC_RC & ADC_LEFT_JUST &
ADC_5ANA_0REF,ADC_CH4 & ADC_INT_OFF);
while(1)
{
ConvertADC(); // Inicia la conversin

111
Diseo y construccin de una tarjeta programable Anexos
de adquisicin, procesamiento de datos y control
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 Anexos
de adquisicin, procesamiento de datos y control
Anexo D. Documentacin de los programas de control de las plantas

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

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

// Programa de control del seguidor de lnea


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

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

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

void apagado(void) // Subrutina de apagado de motores


{
PORTCbits.RC2=0; // Desactiva los
PORTBbits.RB6=0; // motores
PORTBbits.RB7=0; // izquierdo y
PORTAbits.RA4=0; // derecho
}

void main (void) // Inicio de programa principal


{
PORTA = 0;LATA = 0; // Asigna un valor inicial de 0 al puerto A
ADCON1 = 0x02; // El puerto A acta con 5 entradas analgicas y 3 E/S digitales
TRISA = 0x00; // Configura puerto A como salidas digitales
PORTB = 0;LATB = 0; // Asigna un valor inicial de 0 al puerto B
INTCON2 = 0x80; // Deshabilita las interrupciones

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

115
Diseo y construccin de una tarjeta programable Anexos
de adquisicin, procesamiento de datos y control
Anexo D.3. Diagrama de flujo del programa de control del modelo a escala de la
plataforma de seguimiento solar
baja busqueda
Inicio refsube
D2=0
D3=0
flg ciclsbusq=0
Portd=0
B7=0 flgd,2=0
arranqe
Intcon
Porta,5=1 refsube
B5=1

flgd,2=1 Flg lim=0


arranqe iz
home D3=1
Intcon=b10001000 D1= home

tmr0=0 B5=1
home3
obj=0
Portd=0 izq

flga=0 siguelo
izq
D1=0
Flgb=0 D1=
home3 trampI=0
Flgc=0 home3

izq2 subelo
Flgd=0
1
D1=1
Portb,4=0 trampD=0
Portd=0 home2
flgB,4=0
flgB,4=1 Flgd,1=1 bajalo

Ciclos busq=8 busqueda


Portb,5=0
Pasos=4 subelo
flgB,5=0
flgB,5=1 flg subelo=0
3 seg

Intcon=b10101000 busqueda
Portb,6=0
opcion=b10100001
flgB,6=1 flgB,6=0 Portd=0
Tmr0=200
Freno horz
Portb,7=0 D0=1
Intcon=b10001000
flgB,7=0 busqueda
flgB,7=1
D2=
home3
tmr0=0 Flg subelo=1
Flg bajalo=0
Horz=1
reposo busqueda
Sube Intcon=0 bajalo

frenovert Portd=0 flg bajalo=0


home2
sleep busqueda
tmr0=0

fin
B5=1 Portd=0

Freno horz
izq2
b10001000
1
D3=1

Flg subelo=0
Flg bajalo=1
116 busqueda
Diseo y construccin de una tarjeta programable Anexos
de adquisicin, procesamiento de datos y control

2
siguelo
chk13DI
Intcon=b10001000 chktrpI/4
trpD=0
Cent1=0
Frenovert/horz trpI=0
Chkcent1/2
Flgsiguelo=1 Chkcent4/trpD
izqsub
Flgbaj=0
Flg_obj_perd=0 Flg2DB=0
2izqsub
ssiguelo
Cent2=0
Obj=1 Cent3=0
chktrpI/3
Chkcent3/trpD
chkcenti chktrpI/3 trpI=0
Flg2IB=0
Flg2DS=0 dersub
Flg_obj_perd=1
cent3=0
trpD=0 2dersub
ssiguelo
Chkcent2/trpI
baja
CHK13DI
flg2DS=0
trpI=0
Frenovert/horz
trampI=0
Flga=0 sube
Chkcent3/4
Flgc=0 ssiguelo
Intcon=b
Flgc,2=1
Chkcent3/4
Flg_obj_perd=0 Cent4=0
Cent3=0
ssiguelo Chkcent1/trpI
dersub
Flg2IS=0
chkcenti FlgDS=0
ssiguelo
Flg_obj_perd=1 cent4=0
chk24DI
flg limite=0 izqsub
Cent2=0

home FlgIS=0
Chkcent3/trpD sub

Flgsub=0
B4=0 Flg2IB=0
ssiguelo
chk24DI
Cent4=0
Portd=0
B5=0
chktrpI/4
Intcon=b10001000
Flgsub=0 Flg2IS=0
Flga=0

Cent1=0 trpD=0 Flgc=0

Flgsiguelo=1
Chkcent4/trpD baj
Flgsub=1
flg2DB=0 trpI=0
D2=1
2
sub ssiguelo

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

Chkcent1/2 Chkcent4/trpD Chkcent3/trpD Chkcent2/trpI Chkcent1/trpI

Cent1=0 Cent4=0 Cent3=0 Cent2=0 Cent1=0

Derbaj 3derbaj 3izqbaj 3izqbaj 3derbaj

FlgDB=0 Flg3IB=0 Flg3DB=0


Flg3DB=0 Flg3IB=0

cent2=0 trpD=0 trpI=0 trpI=0


trpD=0

izqbaj Derbaj izqbaj dersub izqsub

FlgIB=0 FlgDS=0 FlgIS=0


FlgDB=0 FlgIB=0
baj 2dersub 2izqsub
2derbaj 2izqbaj 2dersub 2izqsub
Flgbaj=0
deron=100 izqon=100 deron=100 izqon=100
ssiguelo
der off=10 Izq off=10 deroff=10 Izq off=10
Intcon=b10001000
Flg velizq=0 Flg velizq=1 Flg velizq=0 Flg velizq=1
Portd=0
Flg 2DS=0 Flg 2IS=0
Flg 2DB=0 Flg 2IB=0
Flga=0

ssiguelo ssiguelo
Flgc=0 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


ssiguelo 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

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

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

izqbaja izqsube dersube derbaja 3derbaja 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 Tmr0=100 Tmr0=100

B5=0 B5=0 B4=0 B5=0


B4=0 B4=0

sigueIB sigueIS sigue3DB sigue3IB


sigueDS sigueDB

D1=1 D1=1 D0=1 D0=1 D1=1


D0=1
D3=1 D2=1 D3=1 D3=1 D3=1
D2=1
ssiguelo ssiguelo ssiguelo ssiguelo ssiguelo
ssiguelo

sigueIB sigueIS sigueDS sigueDB sigue3DB 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 ssiguelo ssiguelo ssiguelo

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

B7=0 retfie D2=1


Conti_I
Chk flg B4
Chk flg B7 retfie
Intcon,0=0 Flg B0=0
derecha
Flg B7=0 Flg B4=0 decr
D0=1

offlagb7 conti1 Pasos-=0 retfie

frenoh
Intcon,2=0 subir
Flg B4=1
chkgiro Flg B0=1
Flgsiguelo=0
Intcon,0=0 Pasos=4
para
Intcon,2=0 D2=1

retfie ciclsbusq-=0 retfie

Conti_D

Flg ciclosbusq=1

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

refres offlagb4
Chk flg B6 Chk flg B7
Flg B4=0
Intcon,0=0
Flg B6=0 Flg B7=0
Intcon,0=0
retfie
conti3 refres
retfie

Intcon,0=0 Intcon,0=0
offlagb5
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
offlagb6

retfie retfie Flg B6=0

Intcon,0=0
portd=0 portd=0
Intcon,2=0
Intcon=b10001000 Intcon=b10001000
Tmr0=
Flg limite=1 Flg limite=1
retfie
retfie retfie

offlagb7
Flg B7=0
posinis
posinib
Portd,3=0 Intcon,0=0
Portd,2=0

Portd,2=1 Intcon,2=0
Portd,3=1

retfie Tmr0=
retfie

retfie

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

frenovert
frenohorz Frenohorz/vert Tresseg
Cont1=2
Cont1=20 Cont1=2 Conta1=1
c12 c13
c8 c4
Cont2=100 Conta2=250
c11 Cont2=100 Cont2=100 c14
c7 c3
portD=b00100 Conta3=250
portD=b00001 portD=b00101 c15
nop
nop nop Conta3-=0
nop
nop nop
c15
nop
nop nop
Cont3=80 Conta2-=0
Cont3=80 Cont3=80
c9
c5 c1 c14
Cont3-=0
Cont3-=0 Cont3-=0

c9 Conta1-=0
c5 c1
portD=b01000 c13
portD=b00010 portD=b01010
Cont3=80 Retlw 0
c10 Cont3=80 Cont3=80
c6 c2
Cont3-=0
Cont3-=0 Cont3-=0

c10 norebot
c6 c2 Conta1=2
c23
Cont2-=0 Conta2=100
Cont2-=0 Cont2-=0 c24
c11 Conta3=100
c7 c3 c25

Conta3-=0
Cont1-=0
Cont1-=0 Cont1-=0
c12 c25
c8 c4
portd=0 Conta2-=0
portd=0 portd=0
return
return return c24

Conta1-=0

c23

Retlw 0

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

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
flga

0 FLG 2DB Bandera que indica: La placa colectora se mueve con velocidad a la derecha dos veces mayor a la velocidad con que baja
1 FLG 2IB Bandera que indica: La placa colectora se mueve con velocidad a la izquierda dos veces mayor a la velocidad con que baja
2 FLG 2DS Bandera que indica: La placa colectora se mueve con velocidad a la derecha dos veces mayor a la velocidad con que sube
3 FLG 2IS Bandera que indica: La placa colectora se mueve con velocidad a la izquierda dos veces mayor a la velocidad con que sube
4 FLG DB Bandera que indica: La placa colectora se mueve con velocidad a la derecha igual a la velocidad con que baja
5 FLG IB Bandera que indica: La placa colectora se mueve con velocidad a la izquierda igual a la velocidad con que baja
6 FLG 3DB Bandera que indica: La placa colectora se mueve con velocidad a la derecha tres veces mayor a la velocidad con que baja
7 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 FLG INCR/DECR ALTURA. Bandera que indica: 0 = sube placa colectora o 1 = baja placa colectora
1 FLG LMITE. Bandera que indica: que en la etapa de seguimiento se ha llegado a algn lmite de giro vertical
2 FLG OBJ PERD. Bandera que indica: sensor principal ha dejado de sensar luz
3 FLG CICLOS DE BUSQ. Bandera que indica: ya se realizaron el nmero de barridos de bsqueda
4 FLG DERECHA. Bandera a la que se le asigna el estado del interruptor de lmite derecho
5 FLG IZQUIERDA. Bandera a la que se le asigna el estado del interruptor de lmite izquierdo
6 FLG ARRIBA. Bandera a la que se le asigna el estado del interruptor de lmite superior
7 FLG ABAJO. Bandera a la que se le asigna el estado del interruptor de lmite inferior
flgc

0 FLG SUBELO. Bandera que indica: girar hacia arriba 2.5 la placa colectora (en la etapa de bsqueda)
1 FLG BAJALO. Bandera que indica: girar hacia abajo 2.5 la placa colectora (en la etapa de bsqueda)
2 FLG SIGELO. Bandera que indica: que el programa se encuentra en la etapa de bsqueda
3 FLG ON/OFF. Bandera que se emplea para generar el ancho de pulso modulado, para ajustar la velocidad de giro horizontal
4 FLG SUB. Bandera que indica: que la placa colectora esta subiendo (en la etapa de seguimiento)
5 FLG BAJ. Bandera que indica: que la placa colectora esta bajando (en la etapa de seguimiento)
6 FLG DS. Bandera que indica: La placa colectora se mueve con velocidad a la derecha igual a la velocidad con que sube
7 FLG IS. Bandera que indica: La placa colectora se mueve con velocidad a la izquierda igual a la velocidad con que sube
flgd

0 FLG VEL IZQ. Bandera que indica: 1= placa colectora gira a la izquierda, 0= placa colectora gira a la derecha
1 FLG POS INI. Bandera que indica: que el programa se encuentra en la etapa de posicionamiento inicial de la planta
2 FLG SUBE INI. Bandera que indica: 0= sube placa colectora, 1= baja placa colectora (etapa de posicionamiento inicial)
3 No empleada
4 No empleada
5 No empleada
6 No empleada
7 No empleada

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

PORT A

0 No empleada
1 No empleada
2 No empleada
3 No empleada
4 Entrada de pulsos que provienen del encoder
Arranque del sistema
5
No empleada
6 No empleada
7 No empleada
PORT B

0 Entrada de seal proveniente del sensor principal


1 Entrada de seal proveniente del grupo izquierdo de sensores
2 Entrada de seal proveniente del grupo derecho de sensores
3 Entrada de seal proveniente del interruptor de lmite central
4 Entrada de seal proveniente del interruptor de lmite derecho
5 Entrada de seal proveniente del interruptor de lmite izquierdo
6 Entrada de seal proveniente del interruptor de lmite arriba
7 Entrada de seal proveniente del interruptor de lmite abajo
PORT D

0 Salida a motor: giro a la derecha


1 Salida a motor: giro a la izquierda
2 Salida a motor: giro arriba
3 Salida a motor: giro abajo
4 No empleada
5 No empleada
6 No empleada
7 No empleada

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

adcon1 equ 9fh


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

org 00h ; Posicin a la que apunta el contador de programa al iniciar la operacin del
microcontrolador
goto inicio ; salto a la etiqueta inicio
;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
;Atencin de interrupcin Debido a que el accionamiento (apertura o cierre) de los interruptores de lmite produce una
;interrupcin en el programa Este bloque de programa detecta si un interruptor se abri o cerr:
;En la etapa de ajustes de banderas, cada bandera se le asigno un cero o un uno dependiendo si el interruptor de limite
estaba abierto o ;cerrado respectivamente.
;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
org 04h ; Vector de interrupcin (si ocurre alguna interrupcin el programa salta a esta lnea)
btfss flgc,2 ; Checa si el programa esta en la etapa de seguimiento, si los esta brinca la prxima
instruccin
call norebot ; Llamada a rutina que elimina los efectos de rebotes mecnicos de interruptores de lmite
btfsc portb,4 ; Checa interruptor de lmite derecho. Si no esta activado se produce salto de instruccin
goto chflgb4 ; Salto a la etiqueta chflgb4
btfsc flgb,4 ; Checa bandera de interruptor de lmite derecho. Si no esta activado se produce salto de
instruccin
goto offlgb4 ; Salto a la etiqueta offlgb4
conti1 btfsc portb,5 ; Checa interruptor de lmite izquierdo. Si no esta activado se produce salto de instruccin
goto chflgb5 ; Salto a la etiqueta chflgb5
btfsc flgb,5 ; Checa bandera de interruptor de lmite izquierdo. Si no esta activado se produce salto
de instruccin
goto offlgb5 ; Salto a la etiqueta offlgb5
conti2 btfsc portb,6 ; Checa interruptor de lmite superior. Si no esta activado se produce salto de instruccin
goto chflgb6 ; Salto a la etiqueta chflgb6
btfsc flgb,6 ; Checa bandera de interruptor de lmite superior. Si no esta activado se produce salto de
instruccin
goto offlgb6 ; Salto a la etiqueta offlgb6
conti3 btfsc portb,7 ; Checa interruptor de lmite inferior. Si no esta activado se produce salto de instruccin
goto chflgb7 ; Salto a la etiqueta chflgb7
btfsc flgb,7 ; Checa bandera de interruptor de lmite inferior. Si no esta activado se produce salto de
instruccin
goto offlgb7 ; Salto a la etiqueta offlgb7
btfsc intcon,2 ; Checa bandera de interrupcin por desbordamiento de registro tmr0
goto chkgiro ; Salto a la etiqueta chkgiro
bcf intcon,0 ; Limpia bandera de interrupcin por cambio de estado en el puerto B
bcf intcon,2 ; Limpia bandera de interrupcin por desbordamiento del registro tmr0

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

126
Diseo y construccin de una tarjeta programable Anexos
de adquisicin, procesamiento de datos y control
bcf flgb,0 ; Limpia bandera inca/decr altura

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


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

127
Diseo y construccin de una tarjeta programable Anexos
de adquisicin, procesamiento de datos y control
clrf tmr0 ; Limpia registro tmr0
retfie ; Retorno de la rutina que atiende la interrupcin, al programa principal
;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
inicio
;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
; Configuracin de puertos
;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
bsf estado,5 ; Se ubica en el
bcf estado,6 ; banco uno
movlw b'00000111' ; Se configura el microcontrolador para que todos
movwf adcon1 ; sus canales operen como entradas o salidas digitales
movlw b'00111100' ; Se configura el puerto A para que las terminales 0 y 1 sean
movwf trisa ; salidas y las dems sean entradas
movlw 0ffh ; Se configura el puerto B para que todas sus terminales sean
movwf trisb ; entradas
movlw b'11110000' ; Se configura el puerto D para que sus primeras cuatro terminales
movwf trisd ; sean salidas y las restantes sean salidas
bcf estado,5 ; se pasa al banco cero
;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
; programa principal
;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
clrf portd ; Se ponen todas las salidas a cero
;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
; ETAPA DE ARRANQUE
;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

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

btfsc portb,4 ; Checa el estado del interruptor de limite derecho, si es 0 brinca una instruccin
goto onflgb4 ; Salto a la etiqueta onflgb4 A cada interruptor de
bcf flgb,4 ; Pone acero la bandera del interruptor de limite derecho lmite de sobregiro le
s1 btfsc portb,5 ; Checa el estado del interruptor de limite izquierdo, si es 0 brinca una instruccin corresponde una
goto onflgb5 ; Salto a la etiqueta onflgb5 bandera, la cual se
bcf flgb,5 ; Pone acero la bandera del interruptor de limite izquierdo debe ajustar al estado
s2 btfsc portb,6 ; Checa el estado del interruptor de limite arriba, si es 0 brinca una instruccin que tenga su
goto onflgb6 ; Salto a la etiqueta onflgb6 correspondiente
bcf flgb,6 ; Pone acero la bandera del interruptor de limite arriba interruptor. Esto es:
bcf flgd,2 ; Pone acero la bandera subeini (se emplea para subir o bajar la placa colectora)
s3 btfsc portb,7 ; Checa el estado del interruptor de limite abajo, si es 0 brinca una instruccin Si el interruptor de
goto onflgb7 ; Salto a la etiqueta onflgb7 lmite esta cerrado, su
bcf flgb,7 ; Pone acero la bandera del interruptor de limite abajo bandera se pondr a
goto home3 ; Salto a la etiqueta home3 1

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

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

home3 clrf tmr0 ; Limpia el registro tmr0 (temporizador)


btfss portb,3 ; Checa interruptor de posicin horizontal de placa colectora, si esta activado brinca la
siguiente instruccin
goto sube ; Salto a etiqueta sube

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

129
Diseo y construccin de una tarjeta programable Anexos
de adquisicin, procesamiento de datos y control
bsf portd,3 ; Gira hacia abajo la placa colectora
btfss portb,5 ; Checa interruptor de limite izquierdo. Si esta activado se produce un salto a la prxima
instruccin
goto izq ; Salto a la etiqueta izq
bcf portd,1 ; Se desactiva giro a la izquierda
goto home3 ; Salto a la etiqueta home3
refsube bcf portd,3 ; Se desactiva giro hacia abajo
bcf flgd,2 ; Se limpia bandera sube ini, para que se pueda volver a subir la placa colectora
btfss portb,5 ; Checa interruptor de limite izquierdo. Si esta activado, se produce un salto de
instruccion
goto izq ; Salto a la etiqueta izq
bcf portd,1 ; Se desactiva giro a la izquierda
goto home3 ; Salto a la etiqueta home3
izq bsf portd,1 ; Se active giro a la izquierda
goto home3 ; Salto a la etiqueta home3
izq2 bsf portd,1 ; Se active giro a la izquierda
goto home2 ; Salto a la etiqueta home2

sigelo movlw b'10001000' ; Se activan interrupciones por


movwf intcon ; cambio de estado del Puerto B
call frenohv ; Llamada a rutina que frena el giro vertical de la palca colectora
bsf flgc,2 ; Se activa bandera siguelo
bcf flgb,2 ; Se limpia bandera obj perd
ssigelo btfss portb,0 ; Checa sensor principal. Si esta activado se produce salto de instruccin
goto chcenti ; Salto a la etiqueta chcenti
btfss flgb,2 ; Checa bandera obj perd
goto ssigelo ; salto a etiqueta ssigelo
movlw b'10001000' ; Se activa interrupcin por
movwf intcon ; cambio de esta do del Puerto B
call frenohv ; Llamada a rutina que frena giro horizontal y vertical
clrf flga ; Se limpia registro de banderas flga
clrf flgc ; Se limpia registro de banderas flgc
bsf flgc,2 ; Se activa bandera sigelo
bcf flgb,2 ; Se limpia bandera obj perd
goto ssigelo ; Salto a etiqueta ssigelo
chcenti bsf flgb,2 ; Se activa bandera obj perd
btfsc flgb,1 ; Checa bandera limite. Si esta desactivada se produce salto de instruccin
goto home ; Salto a la etiqueta home
btfsc portb,4 ; Checa interruptor de limite derecho. Si esta desactivado se produce salto de instruccin
goto chk24di ; Salto a la etiqueta chk24di
btfsc portb,5 ; Checa interruptor de limite izquierdo. Si esta desactivado se produce salto de
instruccin
goto chk13di ; Salto a la etiqueta chk13di
btfsc portd,4 ; Checa sensor 1. Si esta desactivado se produce salto de instruccin
goto chkc4td ; Salto a etiqueta chkc4td
bcf flga,0 ; Limpia bandera 2DB
btfsc portb,2 ; Checa grupo derecho de sensores. Se esta desactivado se produce salto de instruccin
goto chkc1_2 ; Salto a la etiqueta chkc1_2
bcf flgc,5 ; Limpia bandera baj
btfsc portd,5 ; Checa sensor 2. si est desactivado se produce salto de instruccin
goto chkc3td ; Salto a etiqueta chkc3td
bcf flga,1 ; Limpia bandera 2DB
btfsc portd,6 ; Checa sensor 3. Si esta desactivado se produce salto de instruccin
goto chkc2ti ; Salto a etiqueta chkc2ti
bcf flga,2 ; Limpia bandera 2DS
btfsc portb,1 ; Checa grupo izquierdo de sensores. Si esta desactivado se produce salto de instruccin
goto chkc3_4 ; Salto a etiqueta chkc3_4
bcf flgc,4 ; Limpia bandera sub
btfsc portd,7 ; Checa sensor 4. Si esta desactivado se produce salto de instruccion
goto chkc1ti ; Salto a la etiqueta chkc1ti
bcf flga,3 ; Limpia bandera 2IS
goto ssigelo ; Salto a etiqueta ssigelo
chk24di btfsc portd,5 ; Checa sensor 2. Si esta desactivado se produce salto de instruccin
goto chkc3td ; Salto a etiqueta chkc3dtd
bcf flga,1 ; Limpia bandera 2IB
btfsc portd,7 ; Checa sensor 4. Si esta desactivado se produce salto de instruccin
goto chtiyc4 ; Salto a la etiqueta chtiyc4
bcf flga,3 ; Limpia bandera 2IS
btfsc portb,2 ; Checa grupo derecho de sensores. Si esta desactivado se produce salto de instruccin
goto baj ; Salto a la etiqueta baj
btfsc portb,1 ; Checa grupo izquierdo de sensores. Si esta desactivado se produce salto de instruccin
goto sub ; Salto a la etiqueta sub

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

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

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

133
Diseo y construccin de una tarjeta programable Anexos
de adquisicin, procesamiento de datos y control
bcf estado,5 ; Cambio al banco 0
movlw .100 ; Se carga la variable tmr0 con el mismo valor
movwf tmr0 ; que se cargo la variable izqon
btfsc portb,5 ; Checa el interruptor de limite izquierdo. Si esta desactivado se produce salto de
instruccin
goto sigeib ; Salto a la etiqueta sigeib
bsf portd,1 ; Se aciva giro a la izquerda
bsf portd,3 ; Se activa giro hacia abajo
goto sguelo ; Salto a la etiqueta sigelo
sigeib bcf flga,5 ; Limpia bandera IB
movlw b'10001000' ; Se activa solo la interrupcin por cambio de
movwf intcon ; estado del puerto B
goto sguelo ; Salto a la etiqueta sigelo

izqsub movlw .100 ; Se carga la variable izqon=100 y la


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

dersub movlw .100 ; Se carga la variable deron=100 y la


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

134
Diseo y construccin de una tarjeta programable Anexos
de adquisicin, procesamiento de datos y control
sigeds bcf flgc,6 ; Limpia bandera DS
movlw b'10001000' ; Se activa solo la interrupcion por cambio de
movwf intcon ; estado del puerto B
goto ssigelo ; Salto a la etiqueta ssigelo

derbaj movlw .100 ; Se carga la variable deron=100 y la


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

tderbaj movlw .100 ; Se carga la variable deron=100 y la


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

tizqbaj movlw .100 ; Se carga la variable izqon=100 y la


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

135
Diseo y construccin de una tarjeta programable Anexos
de adquisicin, procesamiento de datos y control
goto sguelo ; Salto a la etiqueta sigelo
clrf portd ; Limpia puerto D
clrf flga ; Limpia registro de banderas flga
clrf flgc ; Limpia registro de banderas flgc
bsf flgc,2 ; Activa bandera sigelo
bsf flga,7 ; Activa bandera 3IB
movlw b'10101000' ; Se activan interrupcin por cambio de estado en
movwf intcon ; puerto B e interrupcin por desbordamiento del temporizador tmr0
bsf estado,5 ; Cambio al banco 1
movlw b'10000111' ; Se ajusta divisor de frecuencia de 1:256 y
movwf opcion ; se le asigna al tmr0
bcf estado,5 ; Cambio al banco 0
movlw .100 ; Se carga el tmr0 con el mismo valor que
movwf tmr0 ; se cargo la variable izqon
btfsc portb,5 ; Checa interruptor de limite izquierdo. Si esta desactivado se produce salto de
instruccin
goto sige3ib ; Salto a la etiqueta sige3ib
bsf portd,1 ; Se activa giro a la izquierda
bsf portd,3 ; Se activa giro hacia abajo
goto siguelo ; Salto a la etiqueta sigelo
sige3ib bcf flga,7 ; Limpia bandera 3IB
movlw b'10001000' ; Se activa solo la interrupcion por cambio de
movwf intcon ; estado del puerto B
goto sguelo ; Salto a la etiqueta sigelo
;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
; freno de horizontal y vertical
;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
frenohv movlw .2 ; Se carga la variable cont1=2
movwf cont1 ; y la variable cont2=100 ambas
c4 movlw .100 ; se emplean para repetir el ciclo
movwf cont2 ; de activacin alternada de giros
c3 movlw b'00000101' ; Se activan simultneamente giro a
movwf portd ; la derecha y giro hacia arriba
nop ; No operacin
nop ; No operacin
nop ; No operacin
movlw .80 ; Se carga variable cont3=80
movwf cont3 ; para generan un retardo
c1 decfsz cont3,1 ; Retardo por decremento
goto c1 ; de la variable cont3
movlw b'00001010' ; Se activan simultneamente giro a
movwf portd ; la izquierda y giro hacia abajo
movlw .80 ; Se carga variable cont3=80
movwf cont3 ; para generan un retardo
c2 decfsz cont3,1 ; Retardo por decremento
goto c2 ; de la variable cont3
decfsz cont2,1 ; Decrementa el valor de la variable cont2. Si llega a cero se produce salto de
instruccin
goto c3 ; Salto a la etiqueta c3
decfsz cont1,1 ; Decrementa el valor de la variable cont1. Si llega a cero se produce salto de
instruccin
goto c4 ; Salto a la etiqueta c4
clrf portd ; Limpia Puerto D
retlw 0 ; Regreso al programa principal
;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
; freno horizontal
;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
frenoh movlw .20 ; Se carga la variable cont1=2
movwf cont1 ; y la variable cont2=100 ambas
c8 movlw .100 ; se emplean para repetir el ciclo
movwf cont2 ; de activacin alternada de giros
c7 movlw b'00000001' ; Se activa giro a
movwf portd ;la derecha
nop ; No operacin
nop ; No operacin
nop ; No operacin
movlw .80 ; Se carga variable cont3=80
movwf cont3 ; para generan un retardo
c5 decfsz cont3,1 ; Retardo por decremento
goto c5 ; de la variable cont3
movlw b'00000010' ; Se active giro a
movwf portd ; la izquierda

136
Diseo y construccin de una tarjeta programable Anexos
de adquisicin, procesamiento de datos y control
movlw .80 ; Se carga variable cont3=80
movwf cont3 ; para generan un retardo
c6 decfsz cont3,1 ; Retardo por decremento
goto c6 ; de la variable cont3
decfsz cont2,1 ; Decrementa el valor de la variable cont2. Si llega a cero se produce salto de
instruccin
goto c7 ; Salto a la etiqueta c7
decfsz cont1,1 ; Decrementa el valor de la variable cont2. Si llega a cero se produce salto de
instruccin
goto c8 ; Salto a la etiqueta c8
clrf portd ; Limpia Puerto D
retlw 0 ; Retorno a programa principal
;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
; freno vertical
;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
frenov movlw .2 ; Se carga la variable cont1=2
movwf cont1 ; y la variable cont2=100 ambas
c12 movlw .100 ; se emplean para repetir el ciclo
movwf cont2 ; de activacin alternada de giros
c11 movlw b'00000100' ; Se active giro
movwf portd ; hacia arriba
nop ; No operacin
nop ; No operacin
nop ; No operacin
movlw .80 ; Se carga variable cont3=80
movwf cont3 ; para generan un retardo
c9 decfsz cont3,1 ; Retardo por decremento
goto c9 ; de la variable cont3
movlw b'00001000' ; Se desactiva giro hacia arriba
movwf portd ; y se activa giro hacia abajo
movlw .80 ; Se carga variable cont3=80
movwf cont3 ; para generan un retardo
c10 decfsz cont3,1 ; Retardo por decremento
goto c10 ; de la variable cont3
decfsz cont2,1 ; Decrementa el valor de la variable cont2. Si llega a cero se produce salto de
instruccin
goto c11 ; Salto a la etiqueta c11
decfsz cont1,1 ; Decrementa el valor de la variable cont1. Si llega a cero se produce salto de
instruccin
goto c12 ; Salto a la etiqueta c12
clrf portd ; Limpia Puerto D
retlw 0 ; Retorno a programa principal
;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
; Rutina antirrebote
;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
norebot movlw .2 ; Se cargan las variables conta1=2, canta2=100 y conta3=100
movwf conta1 ; para generar un retardo, mayor al
c13 movlw .100 ; tiempo que duran los rebotes
movwf conta2 ; mecnicos que se presentan
c14 movlw .100 ; en accionamientos de los
movwf conta3 ; interruptores de limite
c15 decfsz conta3,1 ; Retardo por
goto c15 ; decremento de
decfsz conta2,1 ; las variables
goto c14 ; conta3,conta2 y
decfsz conta1,1 ; conta1
goto c13 ; salto a la etiqueta c13
retlw 0 ; Retorno a programa principal
;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
; Rutina de retardo de tiempo
;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
tress movlw .1 ; Se cargan las
movwf conta1 ; variables conta1=2
c23 movlw .250 ; canta2=250 y
movwf conta2 ; conta3=250
c24 movlw .250 ; para generar
movwf conta3 ; un retardo
c25 decfsz conta3,1 ; Retardo por
goto c25 ; decremento
decfsz conta2,1 ; de las variables
goto c24 ; conta3 conta2
decfsz conta1,1 ; y conta1

137
Diseo y construccin de una tarjeta programable Anexos
de adquisicin, procesamiento de datos y control
goto c23 ;
retlw 0 ; Retorno al programa principal

reposo clrf portd ; Se desactiva el puerto D


clrf intcon ; Se limpia el registro intcon (de control de interrupciones)
goto arranqe ; Salto a la etiqueta arranque (para poder iniciar nuevamente el arranque de la
planta)
end ; Fin del programa

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

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

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

140
Diseo y construccin de una tarjeta programable Anexos
de adquisicin, procesamiento de datos y control
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 Anexos
de adquisicin, procesamiento de datos y control
{
while(!INTCONbits.INT0IF); //se espera el flanco de subida del detector de cruce por cero
INTCONbits.INT0IF=0; //Se limpia la bandera de interrupcin externa
Delay100TCYx(15); // Retardo fijo de 0.6 ms
Delay100TCYx(pwm); // Se aplica el retardo para el corte del semiciclo
PORTDbits.RD0=1; // Se dispara el triac con un
Delay10TCYx(68); // ancho de pulso de disparo = 226 useg
PORTDbits.RD0=0;
i++; // se incrementa el valor de la variable i en 1
INTCONbits.INT0IF=0; //Se limpia la bandera de interrupcin externa
}
}
if (entrada>=setpoint) // Si el valor de la variable entrada es mayor o igual al
{ // valor de setpoint
enfriar(); // se activan el soplador, el extractor y las compuertas
PORTDbits.RD0=0; // se asegura que no se active el triac
Delay10KTCYx(150); // y se espera un segundo para el siguiente
Delay10KTCYx(150); // muestreo
}
}
} // Fin del programa

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

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

El programa utilizado para la configuracin y monitoreo de la cmara trmica esta


realizado en LabView. LabView utiliza un lenguaje grfico de programacin. En la figura
D.1 se muestra el panel frontal del instrumento virtual.

Figura D.1 Panel frontal.

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

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


Icono Nombre de la variable Tipo de variable
PARO Booleana
SETPOINT Entera, sin signo, de 8 bits
Kp Entera, sin signo, de 8 bits
Ti Entera, sin signo, de 8 bits
LISTO Booleana
ERROR DE CONFIGURACIN Booleana
ERROR DE ACCESO DEL PUERTO Booleana
rea de grfica Doble
LEYENDO Booleana

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

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 Anexos
de adquisicin, procesamiento de datos y control

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 Anexos
de adquisicin, procesamiento de datos y control
Anexo E. Lista de componentes
Los componentes fueron cotizados para compra por mayoreo y menudeo en la tienda
electrnica Steren. En las tablas E.1, E.2, E.3 y E.4 se muestra la lista de componentes
detallada por cada tarjeta electrnica.

Tabla E.1 Lista de componentes de la tarjeta principal


P. U. Subtotal P. U. Subtotal
Cantidad Descripcin No. Ref. Especificacin
May. May. Men. Men.
1 Regulador U9 7805 $2.70 $2.70 $6.00 $6.00
1 Regulador U6 7815 $2.70 $2.70 $6.00 $6.00
1 Regulador U1 7915 $2.90 $2.90 $7.00 $7.00
2 Capacitor electroltico C33, C35 1000 uF / 50V $3.60 $7.20 $8.00 $16.00
C29-C32,
7 Capacitor cermico 100 nF $0.20 $1.40 $2.00 $14.00
C42-C44
C34, C37-
6 Capacitor electroltico 100 uF / 50 V $0.55 $3.30 $3.00 $18.00
C41
1 Capacitor electroltico C36 100 uF / 100 V $0.80 $0.80 $4.00 $4.00
3 LED D6-D8 Rojo $0.30 $0.90 $2.00 $6.00
R43-R44,
3 Resistencia 470 $0.03 $0.09 $0.50 $1.50
R46
2 Bobina L1, L2 $0.00 $0.00 $0.00 $0.00
1 Fusible F1 $0.00 $0.00 $0.00 $0.00
1 Diodo D4 1N4148 $0.20 $0.20 $1.00 $1.00
Tira doble en ngulo
1 JP4 14 $0.03 $0.42 $0.20 $2.80
(peine)
Tira sencilla en ngulo
1 J32 2 $0.03 $0.06 $0.20 $0.40
(peine)
Tira sencilla en ngulo
1 J27 3 $0.03 $0.09 $0.20 $0.60
(peine)
1 Buffer U2 74HC245 $4.60 $4.60 $10.00 $10.00
1 Base C.I. U2 20 pines $0.45 $0.45 $3.00 $3.00
R22-R27,
42 Resistencia 47 K $0.03 $1.26 $0.50 $21.00
R42
21 Tira sencilla (peine) J1 J21 3 $0.03 $1.89 $0.20 $12.60
21 Resistencia R1 R18 470 $0.03 $0.63 $0.50 $10.50
1 Resistencia R21 10 K $0.03 $0.03 $0.50 $0.50
1 Capacitor cermico C28 100 nF $0.20 $0.20 $2.00 $2.00
1 Tira sencilla (peine) J26 2 $0.03 $0.06 $0.20 $0.40
Tira sencilla en ngulo
8 J38-J45 4 $0.03 $0.96 $0.20 $6.40
(peine)
8 Resistencia R47 220 $0.03 $0.24 $0.50 $4.00
1 Amplificador operacional U7 MCP6044 $18.50 $18.50 $18.50 $18.50
1 Base C.I. U7 14 pines $0.30 $0.30 $2.00 $2.00
R35, R38-
4 Resistencia 470 $0.03 $0.12 $0.50 $2.00
R40
4 Resistencia R41 47 K $0.03 $0.12 $0.50 $2.00
R29, R31,
4 Resistencia 2.2 K $0.03 $0.12 $0.50 $2.00
R36, R37
2 Capacitor cermico C21, C25 10 nF $0.15 $0.30 $2.00 $4.00
2 Capacitor cermico C22, C26 22 nF $0.15 $0.30 $2.00 $4.00

146
Diseo y construccin de una tarjeta programable Anexos
de adquisicin, procesamiento de datos y control
P. U. Subtotal P. U. Subtotal
Cantidad Descripcin No. Ref. Especificacin
May. May. Men. Men.
Tira sencilla en ngulo
4 J22-J25 3 $0.03 $0.36 $0.20 $2.40
(peine)
Tira doble en ngulo
1 JP5 14 $0.03 $0.42 $0.20 $2.80
(peine)
1 Resistencia R20 820 $0.03 $0.03 $0.50 $0.50
1 Resistencia R19 10 K $0.03 $0.03 $0.50 $0.50
1 LCD LCD 2x16 $300.00 $300.00 $300.00 $300.00
1 Circuito integrado U3 MAX232 $7.90 $7.90 $15.00 $15.00
1 Base C.I. U3 18 pines $0.40 $0.40 $3.00 $3.00
5 Capacitor de tantalio C1-C5 10 uF / 25 V $4.80 $24.00 $11.00 $55.00
1 Capacitor electroltico C7 100 uF / 25 V $0.30 $0.30 $2.00 $2.00
1 Diodo D2 1N4148 $0.20 $0.20 $1.00 $1.00
1 Diodo zener D3 5.1 v $0.40 $0.40 $3.00 $3.00
Conector DB9 hembra
1 P1 $2.90 $2.90 $9.00 $9.00
para circuito impreso
2 Memoria EEPROM U8, U10 24FC512 $42.16 $84.32 $42.16 $84.32
2 Base C.I. U8, U10 8 pines $0.25 $0.50 $2.00 $4.00
2 DIPSwitch SW3, SW5 3 $2.20 $4.40 $5.00 $10.00
10 Resistencia R45, R48 4.7 K $0.03 $0.30 $0.50 $5.00
2 Capacitor cermico C27, C50 100 nF $0.20 $0.40 $2.00 $4.00
1 Tira sencilla (peine) J47 2 $0.03 $0.06 $0.20 $0.40
2 Tira sencilla (peine) J29, J31 3 $0.03 $0.18 $0.20 $1.20
2 Driver U4, U5 L293D $35.00 $70.00 $35.00 $70.00
2 Base C.I. U4, U5 16 pines $0.35 $0.70 $2.00 $4.00
4 Resistencia R34 10 K $0.03 $0.12 $0.50 $2.00
1 DIPSwitch SW4 4 $2.20 $2.20 $5.00 $5.00
C8-C20,
16 Capacitor cermico 100 nF $0.20 $3.20 $2.00 $32.00
C45-C47
2 Capacitor electroltico C23, C24 100 uF / 25 V $0.30 $0.60 $2.00 $4.00
2 Tira sencilla (peine) J35, J36 3 $0.03 $0.18 $0.20 $1.20
2 Tira sencilla (peine) J33, J34 5 $0.03 $0.30 $0.20 $2.00
Tira doble en ngulo
1 JP1 40 $0.03 $1.20 $0.20 $8.00
(peine)
Tira doble en ngulo
1 JP2 36 $0.03 $1.08 $0.20 $7.20
(peine)
Tira doble en ngulo
1 JP4 14 $0.03 $0.42 $0.20 $2.80
(peine)
12 cm x 19.5 cm
1 Placa fenlica doble cara PF $22.00 $22.00 $40.00 $40.00
(15x20)
Subtotal Subtotal
$ 581.94 $ 869.52
May. Men.

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

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


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

Tabla E.3 Lista de componentes de la tarjeta de E/S de 4-20 mA


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

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

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


P. U. Subtotal P. U. Subtotal
Cantidad Descripcin No. Ref. Especificacin
May. May. Men. Men.
27 LED D1-D27 Rojo $0.30 $8.10 $2.00 $54.00
18 Botn pulsador SW3-SW20 SW $0.40 $7.20 $3.00 $54.00
1 Circuito integrado U2 74LS48 $9.30 $9.30 $17.00 $17.00
2 Base C.I. U2,U3 16 pines $0.35 $0.70 $2.00 $4.00
Pantalla de 7
5 JP1-JP5 DC05 $4.00 $20.00 $9.00 $45.00
segmentos
3 Trimpot R1,R2,R9 10 K $17.00 $51.00 $31.00 $93.00
1 LDR R5 LDR $2.20 $2.20 $2.20 $2.20
1 Sensor LM35 U1 TO92 $25.00 $25.00 $25.00 $25.00
5 Transistor Q1-Q5 2N3904 $0.40 $2.00 $3.00 $15.00
Capacitor
1 C4 47uF 16V $0.25 $0.25 $2.00 $2.00
electroltico
2 Capacitor cermico C3-C5 100 nF $0.20 $0.40 $2.00 $4.00
Tira sencilla en
4 J1-J4 3 $0.03 $0.36 $0.20 $2.40
ngulo (peine)
1 Tira doble (peine) JP6 36 $0.03 $1.08 $0.20 $7.20
Placa fenlica doble 9.5 cm x 14.5
1 $15.00 $15.00 $27.00 $27.00
cara cm (10x20)
Subtotal Subtotal
$ 142.59 $ 351.80
May. 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 Mayoreo Menudeo
Subtotal tarjeta principal $581.94 $869.52
Subtotal tarjeta procesamiento $113.51 $158.00
Subtotal tarjeta 4-20 mA $261.13 $315.10
Subtotal tarjeta de aplicacin $142.59 $351.80
Costo total de componentes $1,099.17 $1,694.42

149

También podría gustarte