Documentos de Académico
Documentos de Profesional
Documentos de Cultura
21-22 Felix Vicente Jimenez Rios - Joaquin Rivero Juarez PDF
21-22 Felix Vicente Jimenez Rios - Joaquin Rivero Juarez PDF
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:
DIRECTORES DE TESIS:
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
i
3.3. Diagramas esquemticos electrnicos de la tarjeta de aplicacin ...................44
3.4. Diseo de las tarjetas de circuito impreso .......................................................45
Captulo 7. Conclusiones....................................................................................................83
ii
7.1. Conclusiones....................................................................................................84
7.2. Trabajos futuros...............................................................................................85
REFERENCIAS ...................................................................................................................86
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
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
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
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
2
Diseo y construccin de una tarjeta programable Captulo 1. Introduccin
de adquisicin, procesamiento de datos y control
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.
Transductores y sensores
Acondicionadores de seal
Mdulo de adquisicin de datos
Controlador (controlador lgico programable o PLC, computadora, asistente digital
personal, microcontrolador)
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.
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:
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)
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
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
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
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.
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
6
Salidas analgicas 2 2 -- -- -- 2 -- --
Resolucin de salida
12 12 -- -- -- 12 -- --
(bits)
E/S digitales 12 12 20 -- -- 4 6 8
$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.
1.3.4. Controladores
Los mdulos de adquisicin de datos pueden utilizar uno o varios puertos para comunicarse
con un controlador o con otros dispositivos.
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
8
Diseo y construccin de una tarjeta programable Captulo 1. Introduccin
de adquisicin, procesamiento de datos y control
1.4.1. Objetivos
9
Diseo y construccin de una tarjeta programable Captulo 1. Introduccin
de adquisicin, procesamiento de datos y control
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
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.2.1. Microcontroladores
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.
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
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.
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]
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
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
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]
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
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
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
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.
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]
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
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.
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
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.
140
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
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
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
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
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.
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
C1 OSC1
<
A
lgica
interna
XTAL
RF
REPOSO
C2
>
OSC2 PIC18FXXX
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.
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
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.
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
Todos los temporizadores pueden ser ledos y se puede escribir un nuevo valor en ellos sin
importar el valor que tengan previamente.
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 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 configurar y usar el microcontrolador para las seales de PWM deben de seguirse los
siguientes pasos:
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
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.
Con la ecuacin 2.4 se calcula el tiempo de carga del capacitor de retencin para el clculo
del tiempo mnimo de adquisicin.
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.
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
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.
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
33
Diseo y construccin de una tarjeta programable Captulo 3. Diseo electrnico de la tarjeta
de adquisicin, procesamiento de datos y control
34
Diseo y construccin de una tarjeta programable Captulo 3. Diseo electrnico de la tarjeta
de adquisicin, procesamiento de datos y control
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
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.
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.
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
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.
fc = 5KHz
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 )
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
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
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
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.
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
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
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
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
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
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
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
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.
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
4
5
12 4 3 14 3
V+
7
1
5 A2 16 XTR110 SALIDA 4-20 mA
A1 COMP
14
VR+ C1
15
V-
R2
3K3
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:
44
Diseo y construccin de una tarjeta programable Captulo 3. Diseo electrnico de la tarjeta
de adquisicin, procesamiento de datos y control
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
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
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.
46
Diseo y construccin de una tarjeta programable Captulo 4. Construccin y pruebas de las tarjetas
De adquisicin, procesamiento de datos y control 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
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.
48
Diseo y construccin de una tarjeta programable Captulo 4. Construccin y pruebas de las tarjetas
De adquisicin, procesamiento de datos y control electrnicas
49
Diseo y construccin de una tarjeta programable Captulo 4. Construccin y pruebas de las tarjetas
De adquisicin, procesamiento de datos y control electrnicas
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.
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.
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 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.
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.
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
Para esta prueba se envi a la pantalla de cristal lquido (LCD) el mensaje CENIDET
MECATRNICA.
Por lo que las instrucciones para cada uno de los retardos son:
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
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
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.
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
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)
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.
56
Diseo y construccin de una tarjeta programable Captulo 4. Construccin y pruebas de las tarjetas
De adquisicin, procesamiento de datos y control electrnicas
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.
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
58
Diseo y construccin de una tarjeta programable Captulo 5. Diseo y construccin de plantas
de adquisicin, procesamiento de datos y control
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.
59
Diseo y construccin de una tarjeta programable Captulo 5. Diseo y construccin de plantas
de adquisicin, procesamiento de datos y control
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
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.
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
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
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.
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.
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.
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
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
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
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
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
La placa colectora tiene instalada una placa semicircular de acrlico con 21 sensores
fotoelctricos distribuidos de la siguiente manera:
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
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
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
5 VCC
Figura 5.10 Circuito elctrico del modelo a escala de la plataforma de seguimiento solar.
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
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.
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.1. Objetivo
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
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.
(1)
REFERENCIA DE
120 VCA - +
CRUCE POR CERO
(2)
CD4093
Las seales de entrada y salida del circuito anterior se muestran en la figura 5.14.
+9V F = 60 Hz
t
+5V
2
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
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]
LM35
AN0 RC1
COMPUERTA COMPUERTA
RC0 SOPLADOR EXTRACTOR
RA4
+ +
-
120 VCA
RB0
GND
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
t
C (t ) = K P E (t ) + K I E (t )dt (5.2)
0
N
E (t )dt Ts E (n)
t
0
0
(5.3)
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
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
Este instrumento virtual es utilizado para configurar los valores de las variables requeridas
para que el controlador funcione y opera de la siguiente manera:
74
Diseo y construccin de una tarjeta programable Captulo 5. Diseo y construccin de plantas
de adquisicin, procesamiento de datos y control
La tarjeta programable sigue funcionando sin importar que se haya presionado el botn de
PARO en el instrumento virtual.
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
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.
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
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.
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.
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.
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.
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.
79
Diseo y construccin de una tarjeta programable Captulo 6. Experimentacin y anlisis de resultados
de adquisicin, procesamiento de datos y control
V p = 175 Volts
F = 60 Hertz
f (t ) = 175sin(120 )
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.
80
Diseo y construccin de una tarjeta programable Captulo 6. Experimentacin y anlisis de resultados
de adquisicin, procesamiento de datos y control
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.
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.
81
Diseo y construccin de una tarjeta programable Captulo 6. Experimentacin y anlisis de resultados
de adquisicin, procesamiento de datos y control
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.
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.
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:
84
Diseo y construccin de una tarjeta programable Captulo 7. Conclusiones
de adquisicin, procesamiento de datos y control
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:
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.
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.
[4] Jos Mara ngulo Usategui e Ignacio ngulo Martnez. Microcontroladores PIC:
Diseo prctico de aplicaciones 1 parte. McGraw-Hill, Espaa, 2003.
[6] Motorola. MC68HC12B family data sheet. Motorola Inc, Estados Unidos de
Amrica, 2004.
[10] Hen Chan. Electronic Circuitry EE303, Notas de clase. Mohawk College, Canada,
2000.
[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
[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.
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.
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
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
VCC B0 B7 5 6
B1 1 2 7 8 C4
1
3 4 RE2 9 10
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
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
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
1
2
3
1
2
3
1
2
3
1
2
3
A4
RB0
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
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
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
92
Diseo y construccin de una tarjeta programable Anexos
de adquisicin, procesamiento de datos y control
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
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
96
Diseo y construccin de una tarjeta programable Anexos
de adquisicin, procesamiento de datos y control
97
Diseo y construccin de una tarjeta programable Anexos
de adquisicin, procesamiento de datos y control
98
Diseo y construccin de una tarjeta programable Anexos
de adquisicin, procesamiento de datos y control
99
Diseo y construccin de una tarjeta programable Anexos
de adquisicin, procesamiento de datos y control
100
Diseo y construccin de una tarjeta programable Anexos
de adquisicin, procesamiento de datos y control
101
Diseo y construccin de una tarjeta programable Anexos
de adquisicin, procesamiento de datos y control
102
Diseo y construccin de una tarjeta programable Anexos
de adquisicin, procesamiento de datos y control
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.
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
}
}
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>
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=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=1;
for(i=0;i<11;i++)
{
EN=1;
PORTB=mensaje2[i];
Delay1KTCYx(3);
EN=0;
Delay1KTCYx(3);
}
while(1);
108
Diseo y construccin de una tarjeta programable Anexos
de adquisicin, procesamiento de datos y control
if(TXSTAbits.TRMT == 1)
break;
}
CloseUSART();
}
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();
}
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;
PIR1bits.SSPIF = 0;
SSPBUF = 0xA0; // 10100000 - Comando
de escritura
while(!PIR1bits.SSPIF); // espera la interrupcin
PIR1bits.SSPIF = 0; // entonces limpia la bandera.
PIR1bits.SSPIF = 0;
SSPBUF = 0xA1; // 10100001 - comando
de lectura
while(!PIR1bits.SSPIF); // espera por la interrupcin
PIR1bits.SSPIF = 0; // entonces limpia la bandera.
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
#include <p18f452.h>
#include <timers.h>
#pragma config OSC = HS
#pragma config BOR = OFF
#pragma config WDT = OFF
#pragma config LVP = OFF
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
}
}
#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 on (void)
{
PORTD=0xFF;
}
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
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; //
}
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
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
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
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
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
ssiguelo ssiguelo
Flgc=0 ssiguelo ssiguelo
118
Diseo y construccin de una tarjeta programable Anexos
de adquisicin, procesamiento de datos y control
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
Flg IB=1 Flg IS=1 Flg DS=1 Flg DB=1 Flg 3DB=1 Flg 3IB=1
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
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
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
Flgposini=1 Flgposini=1
offlagb6
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
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
124
Diseo y construccin de una tarjeta programable Anexos
de adquisicin, procesamiento de datos y control
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
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
;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
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
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
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
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
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
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.
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.
144
Diseo y construccin de una tarjeta programable Anexos
de adquisicin, procesamiento de datos 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.
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
148
Diseo y construccin de una tarjeta programable Anexos
de adquisicin, procesamiento de datos y control
En la tabla E.5 se muestra concentrado el subtotal por cada tarjeta y el costo total de los
componentes por mayoreo y menudeo.
149