Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Pic18f452 Adquisicion de Datos
Pic18f452 Adquisicion de Datos
S.E.S.
D.G.E.S.T.
cenidet
DISEO Y CONSTRUCCIN DE UNA TARJETA
PROGRAMABLE DE ADQUISICIN,
PROCESAMIENTO DE DATOS Y CONTROL
T
E
S
I
S
PARA OBTENER EL GRADO DE
MAESTRO EN CIENCIAS EN
M E C A T R N I C A
PRESENTAN:
FLIX VICENTE JMENEZ ROS
JOAQUN RIVERO JUREZ
DIRECTORES DE TESIS:
M.C. JOS LUIS GONZLEZ RUBIO SANDOVAL
DR. RAL PINTO ELAS
FEBRERO DE 2006
RESUMEN
La automatizacin industrial se divide en
tratamiento de la informacin y control
comerciales que permiten realizar una o
componente como tarjetas de adquisicin
(PLCs).
ABSTRACT
The industrial automation is divided in 3 phases: acquisition of data, processing or
treatment of information and control of actuator elements. There exist commercial
alternatives to carry out one or all the automation phases in a single component such as
cards of data acquisition or programmable logic controllers (PLCs).
This work shows up the design, construction and test of a programmable card able to carry
out the 3 automation functions of a process with the capacity to work in an autonomous
way. An application card was designed for testing the modules of: digital inputs/outputs,
analog inputs, power for motors, communication between the computer and EEPROM
memories.
Besides the functional tests, there were designed, built and tested 3 mechatronic plants with
the programmable card. The 3 plants are: a line follower mobile robot, a scale model of a
solar tracer platform and a thermal camera with controlled temperature.
CONTENIDO
LISTA DE FIGURAS ...........................................................................................................iv
LISTA DE TABLAS .............................................................................................................vi
ACRONIMOS Y SIGLAS ...................................................................................................vii
NOMENCLATURA...............................................................................................................x
Captulo 1. Introduccin.......................................................................................................1
1.1.
1.2.
1.3.
1.3.1.
1.3.2.
1.3.3.
1.3.4.
1.4.
1.4.1.
1.4.2.
1.4.3.
1.5.
Antecedentes......................................................................................................2
Descripcin del problema..................................................................................2
Estado del arte de sistemas de adquisicin, procesamiento de datos y control
de procesos ........................................................................................................3
Transductores y sensores ...................................................................................3
Acondicionadores de seales.............................................................................4
Mdulos de adquisicin de datos ......................................................................4
Controladores ....................................................................................................7
Propuesta de solucin ........................................................................................9
Objetivos............................................................................................................9
Metodologa de solucin ...................................................................................9
Aportacin o contribucin ...............................................................................10
Organizacin de la tesis...................................................................................10
3.3.
3.4.
Captulo 7. Conclusiones....................................................................................................83
ii
7.1.
7.2.
Conclusiones....................................................................................................84
Trabajos futuros...............................................................................................85
REFERENCIAS ...................................................................................................................86
Anexo A.
Anexo B.
Anexo C.
Anexo D.
Anexo E.
iii
LISTA DE FIGURAS
Figura 1.1 Mdulo de adquisicin de datos............................................................................ 4
Figura 1.2 Diagrama a bloques de un sistema de adquisicin, procesamiento de datos y
control..................................................................................................................................... 5
Figura 2.1 Comparacin de microcontroladores en cuanto a frecuencia de operacin........ 23
Figura 2.2 Comparacin de microcontroladores en cuanto a nmero de terminales de E/S.24
Figura 2.3 Comparacin de microcontroladores en cuanto a memoria de programa........... 24
Figura 2.4 Circuito oscilador del microcontrolador ............................................................. 26
Figura 2.5 Flujo de ejecucin de instrucciones. ................................................................... 27
Figura 2.6 Flujo paralelo de bsqueda/ejecucin (pipelining). ............................................ 27
Figura 2.7 Salida PWM. ....................................................................................................... 28
Figura 2.8 Modelo de la entrada analgica........................................................................... 30
Figura 3.1 Mdulos que conforman la tarjeta programable. ................................................ 35
Figura 3.2 Circuito electrnico del mdulo de entradas/salidas digitales. ........................... 36
Figura 3.3 Circuito electrnico del mdulo de entradas analgicas..................................... 38
Figura 3.4 Circuito electrnico del mdulo de alimentacin. .............................................. 38
Figura 3.5 Circuito electrnico del mdulo de memoria EEPROM..................................... 39
Figura 3.6 Circuito electrnico del mdulo de comunicacin con la PC. ............................ 40
Figura 3.7 Circuito electrnico del mdulo de comunicacin I2C. ...................................... 41
Figura 3.8 Circuito electrnico del mdulo de potencia para motores................................. 42
Figura 3.9 Circuito electrnico del conector para pantalla de cristal lquido....................... 42
Figura 3.10 Circuito electrnico del mdulo de procesamiento........................................... 43
Figura 3.11 Circuito electrnico del mdulo de E/S de 4-20 mA. ....................................... 44
Figura 3.12 Circuito electrnico de la tarjeta de aplicacin ................................................. 45
Figura 4.1 Tarjeta principal. ................................................................................................. 48
Figura 4.2 Tarjeta de procesamiento. ................................................................................... 49
Figura 4.3 Tarjeta de entrada/salida de 4-20 mA. ................................................................ 49
Figura 4.4 Tarjeta de aplicacin. .......................................................................................... 50
Figura 4.5 Grfica de respuesta del receptor de 4-20 mA. ................................................... 56
Figura 5.1 Robot mvil seguidor de lnea ............................................................................ 60
Figura 5.2 Robot mvil seguidor de lnea ........................................................................... 61
Figura 5.3 Circuito electrnico del robot mvil seguidor de lnea...................................... 62
Figura 5.4 Diferentes acciones del robot de acuerdo al estado de sus sensores. .................. 63
Figura 5.5 Circuito de potencia (puente H) para alimentar dos motores de 24 VCD. ......... 64
Figura 5.6 Circuito de operacin simplificado del puente H................................................ 64
Figura 5.7 Diseo mecnico del modelo a escala de la plataforma de seguimiento solar.... 66
Figura 5.8 Vista superior del modelo a escala de la plataforma de seguimiento solar......... 67
Figura 5.9 Fotografa del modelo a escala de la plataforma de seguimiento solar............... 67
Figura 5.10 Circuito elctrico del modelo a escala de la plataforma de seguimiento solar. 68
Figura 5.11 Referencia de giros e identificacin de sensores............................................... 69
Figura 5.12 Cmara trmica con temperatura controlada..................................................... 70
iv
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
Figura
LISTA DE TABLAS
Tabla 1.1 Caractersticas ms importantes de las tarjetas de adquisicin de datos. .............. 5
Tabla 1.2 Sistemas comerciales de adquisicin de datos. ..................................................... 6
Tabla 1.3 Comparacin de puertos de comunicacin............................................................ 8
Tabla
Tabla
Tabla
Tabla
Tabla
Tabla
vi
ACRONIMOS Y SIGLAS
A/D
ADC
ADCON0
ADCON1
ADFM
ADRESH
ADRESL
bms
CA
CAN
CCP1
CCP1CON
CCPR1L
CD
CMOS
COP8
CP
CPU
D/A
DAC
DIP
DSC
DSP
E/S
EEPROM
EIA
FFT
gcc
GNU
GPIB
HCMOS
ICD
ICE
IDE
IEEE
IIC o I2C
Analgico/digital
Analog-digital converter (Convertidor analgico-digital)
Registro 0 de control del convertidor analgico-digital
Registro 1 de control del convertidor analgico-digital
Bit selector de formato de resultado del convertidor analgico-digital
Byte alto del registro de resultado del convertidor analgico- digital
Byte bajo del registro de resultado del convertidor analgico- digital
Bit menos significativo
Corriente alterna
Controller Area Network (Red de rea de controlador)
Terminal del mdulo 1 de captura, comparacin y modulacin por ancho
de pulsos
Registro de control del mdulo 1 de captura, comparacin y modulacin
por ancho de pulso
Byte bajo del registro 1 de captura, comparacin y modulacin por ancho
de pulso
Corriente directa
Complementary Metal-Oxide Semiconductor (Semiconductor de oxido
de metal complementario)
Control Oriented Processor (Procesador orientado a control)
Contador de programa
Central processing unit (Unidad central de procesamiento)
Digital/analgico
Digital-analog converter (Convertidor digital-analgico)
Dual Inline Package (Encapsulado doble en lnea)
Digital signal controller (Controlador digital de seales)
Digital signal processor (Procesador digital de seales)
Entradas y salidas
Electrically erasable programmable read-only memory (Memoria de solo
lectura programable elctricamente borrable)
Electronic Industries Association (Asociacin de industrias de
electrnica)
Fast Fourier Transform (Transformada rpida de Fourier)
Gnu c compiler (Compilador C de gnu)
GNU is not Unix (GNU no es Unix)
General purpose input board (Placa de entrada de propsito general)
High-density
Complementary
Metal-Oxide
Semiconductor
(Semiconductor de oxido de metal complementario de alta densidad)
In-Circuit Debugger (Depurador en circuito)
In-Circuit Emulator (Emulador en circuito)
Integrated development environment (Ambiente integrado de desarrollo)
Institute for Electrical and Electronics Engineers (Instituto para
ingenieros elctricos y electrnicos)
Inter Integrated Circuit (Interconexin de circuitos integrados)
vii
IrDA
ISA
ISP
kHz
LCD
LED
LPT
mA
MHz
MIDI
MIMO
MIPS
MN
MOSFET
nF
PC
PCI
PCMCIA
PDA
pF
PI
PIC
PLC
PLCC
PR2
PWM
RAM
RC
RISC
ROM
SCI
SCL
SD
SDA
SISO
spbrg
SPI
T2CON
TI
TIA
TOSC
TTL
C
F
UPS
s
USART
USB
VCD
Wi-Fi
Tiempo de oscilacin
Transistor-transistor logic (Lgica transistor-transistor)
Microcontrolador
Microfaradio
Uninterruptible power supply (Fuente de poder ininterrrumpible)
Microsegundo
Universal synchronous/asynchronous receiver transmitter (Transmisorreceptor universal sncrono/asncrono)
Universal Serial Bus (Bus serie universal)
Volts corriente directa
Wireless Fidelity (Fidelidad inalmbrica)
ix
NOMENCLATURA
C
CPIN
CRETEN
E(n)
E(t)
F
fc
FOSC
hFE
IB
IB(max)
IB(sat)
IC(max)
IC(sat)
If
IFUGA
Imax
KI
KP
RIC
R
Rs
Rss
SS
TACQ
TAMP
TC
TCOFF
TI
VAIN
VBE(on)
VCC
VCE(on)
VCE(sat)
VDD
Vef
Vf
Vinst
Vp
VT
tmax
c
Capacitor
Capacitancia de entrada
Capacitancia de muestreo y retencin del DAC
Error en tiempo discreto
Error en tiempo continuo
Frecuencia
Frecuencia de corte
Frecuencia de oscilador
Ganancia de corriente
Corriente de base
Corriente mxima de base
Corriente de base cuando el transistor esta en saturacin
Corriente mxima de colector
Corriente de colector cuando el transistor esta en saturacin
Corriente del fotodiodo en polarizacin directa
Corriente de fuga en la terminal debido a varias conexiones
Corriente mxima
Ganancia integral
Ganancia proporcional
Resistencia de interconexin
Resistencia
Impedancia de la fuente
Impedancia del interruptor interno de muestreo
Interruptor de muestreo
Tiempo mnimo de adquisicin
Tiempo de establecimiento del amplificador
Tiempo de carga del capacitor de retencin
Coeficiente de temperatura
Voltaje analgico de entrada
Voltaje entre base y emisor cuando el transistor esta en funcionamiento
Voltaje de alimentacin
Voltaje entre colector y emisor cuando el transistor esta en funcionamiento
Voltaje entre colector y emisor cuando el transistor esta en saturacin
Voltaje del dispositivo
Voltaje eficaz
Voltaje de diodo en polarizacin directa
Voltaje instantaneo
Voltaje pico
Voltaje de umbral
Aumento mximo de temperatura
Frecuencia de corte
Captulo 1. Introduccin
CAPTULO 1. INTRODUCCIN
1.1.
Captulo 1. Introduccin
Antecedentes
1.3.
Captulo 1. Introduccin
En esta seccin se describen los diferentes sistemas empleados slo para adquisicin de
datos o bien, para la adquisicin, procesamiento de datos y control, as como las partes que
los conforman.
Se denomina sistema de adquisicin de datos al conjunto de elementos empleados para
medir una o varias seales analgicas o digitales.
Las etapas de un sistema de adquisicin, procesamiento de datos y control son:
1.3.1.
Transductores y sensores
Acondicionadores de seal
Mdulo de adquisicin de datos
Controlador (controlador lgico programable o PLC, computadora, asistente digital
personal, microcontrolador)
Transductores y sensores
La adquisicin de datos comienza con el fenmeno fsico a ser medido. Este fenmeno
fsico podra ser la temperatura de un recinto, la intensidad de una fuente luminosa, la
presin dentro de una cmara, la fuerza aplicada a un objeto, etctera. Un sistema de
adquisicin de datos efectivo puede medir todos estos diferentes fenmenos.
Un transductor es un dispositivo que convierte de un tipo de energa a otro. El sensor es un
transductor que convierte una magnitud fsica a otra para facilitar su medicin,
especficamente a una seal elctrica para mdulos de adquisicin de datos. La capacidad
de un sistema de adquisicin de datos para medir diferentes fenmenos depende de los
sensores. Los sensores se clasifican de acuerdo al tipo de seal de salida en dos grupos:
Sensores digitales
Sensores analgicos
Un sensor digital es aquel que entrega una salida del tipo discreta. Los sensores digitales
entregan una salida de tipo binaria las cuales poseen dos estados posibles (0 y 1). Los
sensores digitales ms comunes son:
Captulo 1. Introduccin
Un sensor analgico es aquel que puede entregar una salida variable dentro de un
determinado intervalo; por ejemplo, entre 0 y 5 Volts. Los sensores analgicos ms
comunes son:
1.3.2.
Resistencia variable.
Sensor de temperatura.
Fotorresistencia. (Mide la intensidad de la luz)
Acondicionadores de seales
La mayora de los mdulos de adquisicin de datos tienen entradas, tanto analgicas como
digitales y funcionan solamente con conexin a la computadora. Estos mdulos operan
nicamente en lazo abierto para el monitoreo de variables. Otros mdulos con conexin a la
computadora tienen tanto entradas como salidas (analgicas y digitales). stas no pueden
ser programadas para calcular una accin de control. La activacin de las salidas depende
de las acciones de control provenientes de la computadora. Ver figura 1.1.
Seales de
entrada
Acondicionamiento
de seales
Seales de
salida
Seales
enviadas a
la
PC
Seales
recibidas
desde la
PC
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.
Captulo 1. Introduccin
Acondicio
namiento
de
seales de
entrada
Opto
acopla
dores
Controlador
interno
Opto
acopla
dores
Seales de
salida
Seales
enviadas a
la
PC
Seales
recibidas
desde la
PC
Respecto a los mdulos de adquisicin de datos, stos pueden clasificarse en dos grandes
grupos: las tarjetas internas, conectadas internamente a un bus de una computadora como el
bus PCI; y los mdulos externos, que se conectan a la computadora por medio de un puerto
de comunicacin como el puerto paralelo, el puerto serie RS232, el puerto Firewire y el
puerto USB, el cual es el ms usado actualmente.
Actualmente, las tarjetas de adquisicin de datos se aplican en la industria, existen varias
empresas que se dedican a la fabricacin de dichas tarjetas en una amplia variedad de
caractersticas y precios.
Las caractersticas ms importantes de las tarjetas de adquisicin de datos son:
Tabla 1.1 Caractersticas ms importantes de las tarjetas de adquisicin de datos.
Nmero de entradas/salidas
Tipo de entradas/salidas
Resolucin
Intervalo
Frecuencia de muestreo
Puerto de conexin
1 a 20
2
12
12
0a5
$2,700
National
Instruments
8
12
10,000
1 a 20
2
12
12
0a5
USB
$1,600
National
Instruments
Entradas analgicas
Resolucin de entrada
(bits)
Frecuencia de muestreo
(muestras /segundo)
Salidas analgicas
Resolucin de salida
(bits)
E/S digitales
Puerto de comunicacin
con PC
Fabricante
48,000
--
Memoria de datos
USB
14
--
--
--
Memoria de programa
(KBytes)
USB
USB
USB-6009
Voltaje de alimentacin
(V)
USB-6008
Data
Translation
$1,600
USB
0a5
20
--
--
0 a 2.44
25,000
10
--
--
USB
DT9810
DATAQ
Instruments
$300
RS232
--
--
--
--
10
240
10
--
--
RS232
DI-194RS
$1,100
USB
0a5
12
10
14,400
12
--
--
USB
DI-158
$550
USB
0a5
--
--
10
14,400
10
--
--
USB
DI-148U
DATAQ
DATAQ
DATAQ
Instruments Instruments Instruments
$1,650
RS232
--
--
--
--
10
240
12
--
--
RS232
DI-154RS
DATAQ
Instruments
$5400 a
$8700
USB/E
THERNET
0a5
--
--
10
4,800
14
16
Tarjeta SD
removible
1MB 1GB
--
9-36
DI710
1.3.4.
Captulo 1. Introduccin
Controladores
Captulo 1. Introduccin
Puerto
Formato
Nmero
Longitud
mximo de mxima
dispositivos
(m)
Velocidad
mxima
(bits/s)
Aplicacin tpica
3-9
8M
Impresoras,
escaners, unidades
de disco
15
18
8M
Instrumentacin
15-30
Modem, ratn,
instrumentacin
15
SPI
Serial sncrono
I2C
Serial sncrono
40
5.5
USB
Serial
asncrono
127
Serial
asncrono
32 cargas
unitarias
1220
LPT
Paralelo
IEEE-488
Paralelo
(GPIB)
RS-232
Serial
(EIA/TIAasncrono
232
Lazo de
MIDI
corriente serial
RS485
(TIA/EIA485)
Ethernet
IEEE1394
(FireWire)
Serial
1024
490
Serial
64
4.5
IrDA
Serial
asncrono
infrarrojo
1.8
Bluetooth
Serial
radiofrecuencia
32
10
Wi-Fi
(IEEE
802.11x)
Serial
radiofrecuencia
60
Msica, control de
espectculos
Comunicacin
2M
entre
microcontroladores
Comunicacin
2.1M
entre
microcontroladores
Comunicacin
3.4M
entre
microcontroladores
Ratn, unidad de
1.5M, 12M,
disco, modem,
480M
audio
Sistemas de
10M
adquisicin de
datos y de control
10M/100M/1G PC en red
Video,
400M
almacenamiento
masivo
Impresoras,
115k
asistente digital
personal (PDA)
Telfonos
723k
celulares, PDAs,
videocmara
31.5k
11M, 54M
PC en red
1.4.
Captulo 1. Introduccin
Propuesta de solucin
1.4.1.
Objetivos
Metodologa de solucin
Captulo 1. Introduccin
Aportacin o contribucin
1.5.
Organizacin de la tesis
11
2.1.
Incubadora
Banda
transportadora
Microbot
Plataforma de
paneles solares
Brazo
robtico
SISO
1
1
MIMO
2
-
MIMO
3
3
-
MIMO
13
-
MIMO
8
-
0.5
0.5
1E-05
1E-06
1%
0.5 %
90
150
300
1500
6000
8000
Valor
mximo
+ 10%
4
14
1
Microcontroladores
Las E/S ms comunes son de tipo digital. Estas se agrupan en puertos y pueden ser
configuradas por software como entrada o salida. Las terminales configuradas como
entradas pueden ser usadas para leer el estado de interruptores, botones pulsadores o de otro
dispositivo. Las terminales configuradas como salidas pueden ser utilizadas para encender o
apagar dispositivos externos o transmitir estados a otro dispositivo.
Varios microcontroladores tienen otros subsistemas adems de las E/S digitales, pero si no
se requiere la funcionalidad de dichos subsistemas se proporciona la capacidad de convertir
las terminales de stos a E/S digitales. Para un diseador de sistemas, esto da gran
versatilidad en como usar un microcontrolador dentro de una aplicacin.
Varios microcontroladores tienen adems entradas analgicas, lo que permite muestrear
sensores para propsitos de monitoreo o registro. Algunos tienen puertos seriales que les
permiten ser comunicados con una computadora u otro microcontrolador. Las formas
estandarizadas de interfaz serial, como la Interfaz Perifrica Serial (Serial Peripheral
Interface o SPI) y la Interconexin de Circuitos Integrados (Inter-Integrated Circuit o I2C),
proporcionan una manera sencilla de expandir la funcionalidad del microcontrolador.
La mayora de microcontroladores tienen temporizadores y contadores. stos pueden ser
usados para generar interrupciones internas a intervalos regulares, para generar disparos a
dispositivos externos al microcontrolador o para proporcionar pulsos de control para
motores. Alternativamente pueden ser usados para contar disparos externos (pulsos) de otro
dispositivo.
La mezcla de subsistemas de E/S que tienen los microcontroladores puede variar
considerablemente. Algunos microcontroladores estn dirigidos para control digital simple
y pueden tener solamente E/S digitales. Otros pueden estar dirigidos a aplicaciones
industriales y pueden tener E/S digitales, entradas analgicas, control de motores y
comunicacin con otros dispositivos de control. La seleccin de un microcontrolador (ya
que hay literalmente miles de familias disponibles de varios fabricantes) depende de las
necesidades de procesamiento y los requerimientos de comunicacin.
Los microcontroladores ms comunes en Mxico son los PIC de Microchip, los 68HCxx de
Motorola, los COP8 de National y los AVR de Atmel, que son los que se presentan en la
tabla 2.2.
13
90
11
35
13
14
PDIP 28
terminales
PDIP 18
terminales
400 ns
MPLAB
$ 63.00
AG
electrnica
Encapsulado
Tiempo de ciclo
de instruccin
Compiladores
Herramienta de
programacin
Costo C
Proveedor
Informacin
Experiencia de
los tesistas
8 canales de
10 bits
PDIP 40
terminales
5 canales de
8 bits
DIP 16
terminales
--
--
Mouser
.com
$ 23.50
AG
electrnica
$ 78.00
MPLAB
-- Ninguna
Ensamblado
r
2.0 5.5 V
2.4 5.5 V
200 ns
2 de 8 bits
1 de 16 bits
33
35
256
368
8K
20 MHz
Microchip
PIC16F877
1 de 8 bits
1 de 12 bits
5 de 13
13
63
128
128
1K
16 MHz
ST
ST7Lite 0
Niveles:
--
--
Mouser
.com
$ 16.50
AVRStudio
250 ns
2.7 5.5 V
2.0 6.0 V
1 de 8 bits
1 de 8 bits
ADC bits
Contador/
temporizador
Voltaje de
operacin
64
Terminales S
68
2K
1K
4 MHz
Atmel
ATtiny28
10 MHz
Microchip
PIC16F84
Terminales E
Mxima
frecuencia de
operacin
Memoria de
programa
Memoria de
datos
Memoria
EEPROM
Juego de
instrucciones
Terminales ES
programables
Caractersticas
--
--
--
--
AG
electrnica
$ 251.00
MPLAB
--
Microchip
.com
$ 142.00
MPLAB
33.3 50 ns
8 canales de
12 bits
DIP 18 28
40
4.5 5.5 V
3 de 16 bits
20 - 30
84
1K
1K2K
12 K - 48 K
20-30 MHz
Microchip
dsPIC30F
Regular
8 canales de 8
bits
TQFP 44
terminales
4.35 5.25 V
2 de 8 bits
1 de 16 bits
33
35
256
8K
24 MHz
Microchip
PIC16C765
Bajo
Mouser.com
AVRStudio
160 ns
8 canales de
10 bits
TQFP 64
terminales
4.0 5.5 V
2 de 8 bits
1 de 16 bits
32
121
4K
4K
128 K
6MHz
Atmel
ATmega103
--
--
--
--
AG
electrnica
$ 287.00
MCUez
Ensamblador
8 canales de
10 bits
QFP 80
terminales
-0.3 6.5 V
63
110
768
1K
32 K
8 MHz
Motorola
MC68HC12
Alto
AG electrnica
$ 136.00
MCUez
Ensamblador
8 canales de 8
bits
QFP 64
terminales
-0.3 7 V
1 de 8 bits
38
145
512
8K
256
3 MHz
Motorola
MC68HC11A8
--
--
AG electrnica
$ 267.00
Code Composer
Studio
25 ns
16 canales de 10
bits
PGE 144
terminales
3.3 V
2 de 16 bits
41
2.5 K
32 K
40 MHz
TI (DSP)
TMS320LF2407
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]
15
16
17
2.2.2.
18
Parmetro
Controladores de
punto fijo C24x
Frecuencia de trabajo
20 40
Velocidad
de 20 40
procesamientos
Arquitectura
Punto fijo de 16 bits
Memoria Flash / ROM 8 32 mil / 4 32 mil
RAM
Hasta 2.5 mil
ADC
10 bit, 500 ns
Perifricos
SCI, SPI, CAN
Controladores de
punto fijo C28x
150
150
Unidades
MHz
MIPS
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
2.2.3.
Herramientas de desarrollo
Para realizar la compilacin de los programas para el MC68HC11 se utiliza el IASM11, los
programas disponibles para simulacin son SIM68 para DOS y WOOKIE para Windows.
El ambiente de desarrollo MCUeZ sirve para editar y compilar los programas para el
MC68HC12. Las tarjetas de evaluacin del MC68HC11 y MC68HC12 son sistemas
mnimos y pueden conectarse a la computadora para programar dichos microcontroladores
por medio del MCUeZ. Existen emuladores comerciales para estos microcontroladores
como son BDM Multilink y Ciclone Pro.
El Code Composer Studio es el ambiente de desarrollo utilizado para los controladores de
seal digital C2000 de Texas Instruments. Utiliza el lenguaje C para la programacin de los
dispositivos. Estos controladores ya vienen ensamblados en tarjetas de desarrollo o
mdulos de evaluacin donde se pueden conectar a la computadora y programarse
directamente. El fabricante vende distintos emuladores que pueden estar conectados en el
bus PCI o en el puerto paralelo o USB.
Los programas para el controlador dsPIC30F pueden ser editados, ensamblados y
simulados en MPLAB IDE de la misma forma que para un PIC. Algunos de los
programadores de Microchip pueden grabar los programas a los dsPIC como son MPLAB
PM3 y MPLAB ICD 2. Los emuladores para los controladores dsPIC30F son MPLAB ICE
4000 y MPLAB ICD 2. Tambin el fabricante provee un software compilador de lenguaje
C para los dsPIC30F que es el C30.
Existen otros programas y herramientas de desarrollo fabricadas por empresas distintas a
los fabricantes de los microcontroladores. Los productos pueden ser compiladores de
lenguaje C o Pascal, simuladores, tarjetas de evaluacin, tarjetas de desarrollo,
programadores y emuladores especficos para una familia de microcontroladores o
solamente para un microcontrolador.
2.3.
22
120
120
100
80
60
40
23
B
30
Fds
PI
C
30
F
ds
PI
C
0L
F2
40
7A
TM
S3
2
76
5
16
C
18
F4
52
24
20
PI
C
PI
C
16
F8
77
16
ST
7L
i te
0
16
F8
4
PI
C
12
C
68
H
in
y2
8
AT
t
68
H
11
10
M
C
AT
m
eg
a1
03
20
M
C
40
Requerimiento mnimo
PI
C
40
Numero
de E/S
80
70
68
63
60
50
41
40
Requerimiento mnimo
30
20
13
11
10
33
32
30
38
33
33
13
B
ds
PI
C
30
F-
12
C
68
H
M
C
0L
F2
40
7A
11
C
68
H
M
C
PI
C
PI
C
TM
S3
2
18
F4
52
76
5
16
C
16
F8
77
PI
C
AT
m
eg
a1
03
30
F
ds
PI
C
ST
7L
i te
0
PI
C
AT
t
in
y2
8
16
F8
4
Numero
de E/S
Figura 2.2 Comparacin de microcontroladores en cuanto a nmero de terminales de E/S.
140
128
120
100
80
60
32
F-
ds
PI
C
30
a1
0
AT
m
eg
40
7A
TM
S3
20
LF
2
C
68
H
C
12
M
ds
PI
C
30
F
2
18
F4
5
PI
C
76
5
16
C
7
PI
C
87
16
F
tin
y2
8
11
C
68
H
C
32
24
16
PI
C
AT
PI
C
16
F8
4
Requerimiento mnimo
20
ST
7L
ite
40
24
Caractersticas
Memoria de programa Flash
Velocidad de procesamiento
Nmero de terminales de
entradas/salidas digitales
Nmero de terminales de
entradas analgicas
Conjunto de instrucciones
optimizado para compilador
C
Memoria de datos EEPROM
Nmero de instrucciones
PIC18F452
32 KBytes
10 MIPS
dsPIC30F
12 144 KBytes
20 o 30 MIPS
24
13
13
Si
Si
256 Bytes
75
1 4 KBytes
84
25
2.4.
OSC1
<
A
lgica
interna
XTAL
RF
REPOSO
C2
>
PIC18FXXX
OSC2
La tabla 2.5 indica el valor de los capacitores cermicos que se deben emplear de acuerdo
al valor de frecuencia del cristal oscilador. El cristal empleado en la tarjeta programable es
de 12 MHz, por lo que se emplearon dos capacitores de 22 nF.
Tabla 2.5 Seleccin de capacitores
MODO
LP
(Cristal de baja potencia)
XT
(Cristal)
HS
(Cristal de alta velocidad)
FRECUENCIA
DEL CRISTAL
(MHz)
0.032
0.200
0.200
1
4
4
8
20
25
C1
(pF)
C2
(pF)
33
15
22-68
15
15
15
15-33
15-33
15-33
33
15
22-68
15
15
15
15-33
15-33
15-33
26
Q2
Q3
Q4
Q1
Q3
Q4
Q1
Q2
Q3
Q4
OSC1
Q1
Q2
Q3
Q4
CP+2
CP
CP
CP+4
Tcy1
Tcy2
Tcy4
Tcy5
3 GOTO 5
Buscar inst.4
Tcy3
NOP
buscar inst.5 Ejecutar inst.5
PORTB,6
2.4.1.
Los temporizadores internos del microcontrolador tienen varias funciones. Pueden ser
usados como contadores o como una base de tiempo para otros mdulos dentro del
microcontrolador.
En el caso del microcontrolador PIC18F452, se tienen 4 temporizadores que son:
27
Todos los temporizadores pueden ser ledos y se puede escribir un nuevo valor en ellos sin
importar el valor que tengan previamente.
2.4.2.
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.
(2.1)
La ecuacin 2.2 sirve para calcular el ciclo til de la seal PWM en tiempo:
Ciclo til PWM = (CCPR1L:CCP1CON<5:4>) TOSC (Valor de prescala TMR2) (2.2)
28
2.4.3.
29
VDD
Rs
VAIN
ANx
VT = 0.6V
C PIN
VT = 0.6V
5 pF
Interruptor de muestreo
SS
R IC < 1k
Rss
IFUGA
CRETEN= 120 pF
500 mA
VSS
donde:
VAIN
RS
CPIN
VT
IFUGA
RIC
SS
CRETEN
6
5
VDD
4
[Volts]
3
2
5 6 7 8 9 10 11
Interruptor de muestreo [k]
Se puede utilizar la ecuacin 2.3 para calcular el tiempo mnimo de adquisicin. Esta
ecuacin supone que se utiliza el error de bit menos significativo o bms (1024 pasos para
el conversor A/D). El error de bms es el mximo error permitido por el conversor A/D
para alcanzar su resolucin especfica.
TACQ = TAMP + TC + TCOFF
(2.3)
Donde:
TACQ
TAMP
TC
TCOFF
Con la ecuacin 2.4 se calcula el tiempo de carga del capacitor de retencin para el clculo
del tiempo mnimo de adquisicin.
TC = -(120 pF)(1 k + RSS + RS) ln(1/2048)
(2.4)
El tiempo de conversin A/D por bit se denomina TAD. La conversin A/D requiere 12
veces el tiempo TAD por cada conversin de 10 bits. Para una correcta conversin A/D, se
debe seleccionar el reloj de conversin para asegurar un tiempo mnimo de 1.6 s.
30
El resultado de la conversin se guarda en dos registros por ser un dato de 10 bits. Puede
configurarse si el resultado guardado se justifica a la izquierda o a la derecha segn el
estado del bit ADFM.
Para iniciar la conversin A/D se deben seguir los siguientes pasos:
1. Configurar el mdulo A/D:
Configurar los pines analgicos, las referencias de voltaje y las E/S digitales
(ADCON1).
Seleccionar el canal de entrada analgica (ADCON0).
Seleccionar el reloj de conversin A/D (ADCON0).
Encender el mdulo A/D (ADCON0).
2. Configurar la interrupcin del conversor A/D (si se desea).
3. Esperar el tiempo requerido de adquisicin.
4. Iniciar la conversin:
Poner a uno el bit GO/DONE del registro (ADCON0).
5. Esperar que se complete la conversin, ya sea por:
Verificando que el bit GO/DONE se ponga a cero.
Esperar la interrupcin del conversor A/D.
6. Leer los registros de resultado del conversor A/D (ADRESH/ADRESL).
7. Para otra conversin, ir al paso 1 o 2 si se requiere cambiar o no el canal del
conversor A/D. Se requiere una espera mnima de 2 TAD antes de iniciar otra
conversin.
2.5.
Interfases de comunicacin
31
2.5.1.
El bus IIC (Inter Integrated Circuit) es una red muy barata y efectiva utilizada para
interconectar dispositivos perifricos en sistemas embebidos de pequea escala. Tambin se
conoce como I2C y ha existido por ms de 20 aos. Es equivalente al SPI (Serial Peripheral
Interface), pero su operacin es un poco diferente.
El I2C es un bus de dos lneas en el que se pueden conectar varios dispositivos. El bus es
bidireccional, de baja velocidad y sincronizado a un reloj comn. Un dispositivo puede ser
agregado o retirado del bus I2C en operacin sin afectar otros dispositivos. Varios
fabricantes como Microchip, Philips e Intel producen microcontroladores con una interfaz
I2C integrada. La tasa de datos del bus I2C es 100 kbps en modo estndar y 400 kbps en
modo rpido.
Las dos lneas usadas para interconectar con el bus I2C son SDA (dato serial) y SCL (reloj
serial). Ambas lneas estn a drenaje abierto (la terminal de drenaje del MOSFET del
dispositivo no esta conectado internamente) por lo que necesitan estar conectadas a una
fuente de voltaje positivo por medio de una resistencia (resistencia de pull-up) y entonces
permanece en nivel alto cuando no se utiliza. Cada dispositivo conectado al bus I2C tiene
una direccin nica y puede operar como transmisor (maestro del bus), como receptor
(esclavo del bus) o ambos. El bus I2C es de tipo multimaestro, es decir, ms de un
dispositivo puede asumir el rol de maestro del bus.
2.5.2.
32
2.6.
Caracterstica
Cantidad
Frecuencia de muestreo
13800
Resolucin AD
Precisin mxima AD
Tiempo de ciclo
de instruccin
Alimentacin
Consumo mximo
10
0.1
Unidad
Kbytes
MBytes
V
V
mA
V
V
mA
Muestreos/
segundo
Bits
%
100(3)
ns
15
150
V
mA
Memoria
Entradas
Salidas
Compilador
4
16(1)
1
16(1)
8
1
Tipo
De programa
De datos
Analgicas
Digitales
Corriente
Digitales
Potencia
Corriente
-Ensamblador
-C
RS232
Intervalo
32
1
0-5
0,5
4-20
0,5
0-20(2)
4-20
Puerto de comunicacin
con PC
Puerto de comunicacin
I2C
(tarjeta/perifricos)
Perifricos
1
Pantalla LCD
Intervalo de temperatura
0-50(4)
C
de operacin
Nota: (1) Fsicamente son las mismas terminales, pero se pueden configurar mediante
programacin para que sean entradas salidas.
(2) El voltaje de la salida de potencia depende de la fuente de alimentacin
conectada en el conector de voltaje externo de la tarjeta programable.
(3) Depende de la frecuencia de operacin del microcontrolador.
(4) Estimacin con base en las especificaciones del componente ms sensible a la
temperatura.
33
34
3.1.
Mdulo de
E/S digitales
3 - Tarjeta de E/S
de 4-20 mA
Mdulo de E/S
de 4-20 mA
Mdulo de
entradas
analgicas
Mdulo de
alimentacin
(5 y 15 VCD)
Mdulo de
comunicacin
con la PC
(RS232)
Mdulo de
memoria
EEPROM
Mdulo de
comunicacin
entre tarjetas
(I2C)
Pantalla de
cristal lquido
Mdulo de
potencia
para motores
2 - Tarjeta de
procesamiento
Mdulo
de Mdulo
procesamiento
de
PIC18F452
procesamiento
dsPIC30F4013
Figura 3.1 Mdulos que conforman la tarjeta programable.
35
El mdulo de procesamiento se coloc en una tarjeta externa para poder utilizar cualquier
microcontrolador. De esta forma slo tendr que fabricarse la tarjeta de procesamiento para
utilizar otro microcontrolador, en vez de construir la tarjeta programable completa.
3.2.
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.
47K
RB0
R42
U2
2
1
J26
1
19
A8
A7
A6
A5
A4
A3
A2
A1
B8
B7
B6
B5
B4
B3
B2
B1
11
12
13
14
15
16
17
18
B0
B1
B2
B3
B4
B5
B6
B7
VCC
9
8
7
6
5
4
3
2
R47
220
9
8
7
6
5
4
3
2
R21
470
R1
R2
R3
R4
R5
R6
C28
100 nF
A la tarjeta de
procesamiento
10K
VCC
DIR
OE
74HC245
4
3
2
1
4
3
2
1
4
3
2
1
4
3
2
1
4
3
2
1
4
3
2
1
4
3
2
1
4
3
2
1
B0
B1
B2
B3
B4
B5
B6
B7
J45
J44
J43
J42
J41
J40
J39
J38
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
5V
25 mA
R = 200
R=
Las resistencias de pull-up son de 330 y las resistencias de pull-down son de 560 .
Ambos valores aseguran un valor menor de 25 mA a cada terminal de puerto del
microcontrolador.
Mdulo de entradas analgicas
En este mdulo las seales analgicas (figura 3.3) provienen de sensores que pueden ser de
temperatura, fotorresistencias o cualquier otra seal de 0-5 Volts, se acondicionan por
medio de seguidores de tensin con amplificadores operacionales y filtro pasabajas de 5
KHz para eliminar ruido en la seal. El amplificador operacional es de baja potencia para
que pueda funcionar este mdulo cuando la tarjeta este alimentada con pilas. Las
ecuaciones 3.1, 3.2 y 3.3 se utilizan para el clculo del filtro pasabajas:
fc = 5KHz
c = 2 fc = 31, 400
(3.1)
C1 = 10 nF
C2 = 2C1 = 20 nF 22 nF
R=
0.707
cC1
R=
0.707
= 2, 251.6 2.2 K
(31,400)(10x10-9 )
(3.2)
(3.3)
37
C22
VAN
J22
R29
3
2
1
U7A
R31
2K2
22nF 3
C21
10nF 2
2K2
R35
AN1
470
MCP6044
J23
C26
3
2
1
R37
U7B
R36
C25
J24
5
6
3
2
1
R39
AN2
470
U7D
12
J25
13
3
2
1
R40
14
AN3
470
U7C
R41
10
47K
R38
AN0
470
Los conectores de entrada disponen de conexin a 5 Volts y a tierra para conectar el sensor
directamente.
Mdulo de alimentacin
El mdulo de alimentacin (figura 3.4) proporciona los niveles de voltajes necesarios para
la operacin del PIC y de los circuitos adicionales. El componente principal es el regulador
7805 que regula el voltaje a 5 Volts debido a que la mayora de los circuitos integrados
funcionan con este voltaje. Los otros reguladores son utilizados para mdulos externos
como el mdulo de 4-20 mA.
D4
OUT
1
1N4148
D6
470
1
GND
R46
L2
0.5mH
VCC
JP4
RA5
D0
D1
D2
470
LM7915C/TO220
1
3
5
7
9
11
13
2
4
6
8
10
12
14
D7
D6
D5
D4
D3
38
C36
VAN
C37
C42
0.1uF
U1
OUT
C34
D7
C41
100uF/50v
IN
C40
100uF/50v
0.1uF
1000uf/50v
C44
100uF/50v
C43
0.1uF
C35
C39
100uF/50v
R44
D8
CON3
C32
C31
0.1uF
0.1uF
3
2
1
1000uF/50v
J27
0.5mH
470
100uF/100v
C38
R43
0.1uF
C30
VCC
L1
OUT
100uF/50v
C29
100uF/50v
C33
0.1uF
F1
1A
U9
LM7805C/TO220
IN
GND
IN
GND
VCC1
U6
LM7815C/TO220
Los reguladores LM7815, LM7915 y LM7805 son utilizados debido a que permiten una
corriente mxima de salida de 1 Ampere, cuentan con proteccin trmica y tienen un
voltaje de cada de 3 Volts. Los capacitores a la entrada del regulador cancelan inductancias
presentes y los capacitores a la salida del regulador mejoran la respuesta transitoria. [10]
Los diodos emisores de luz (LEDs) D6, D7 y D8 indican que los reguladores estn
funcionando. A la salida del regulador LM7805 se encuentran dos filtros para reducir el
ruido separando el voltaje para el mdulo de entradas analgicas del voltaje de
alimentacin general.
El diodo D4 protege el circuito de alimentacin contra inversiones de polaridad.
En esta etapa se tienen dos memorias EEPROM de 512 Kbytes cada una, que se conectan al
microcontrolador por medio del bus I2C. Los microinterruptores (DIPswitchs) permiten
configurar por hardware los ltimos tres bits de la direccin de la memoria EEPROM. La
tarjeta programable podr almacenar datos de mediciones en aplicaciones de adquisicin de
datos. Las memorias EEPROM 24FC512 pueden reemplazarse por otras memorias de
distinta capacidad que tengan la misma disposicin de terminales. La figura 3.5 muestra el
circuito esquemtico del mdulo de memoria EEPROM.
Las resistencias de pull-up para las seales de I2C pueden ser de 2 k a 10 k. [11] Se
defini un valor de 4.7 K para estas resistencias.
C50
VCC
100nF
6
5
4
R48
4K7
SW5
1
2
3
SW DIP-3
U10
C4
A0 24FC512
A1
A2
SCL
SDA
C3
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
R28
RESET POR PC
C2
C7
330
C1
13
8
11
10
RC6
C4
10uF/25V
C3
1
3
4
5
2
6
U3
R1IN
R2IN
T1IN
T2IN
RC7
1N4148
100uF/25V
10uF/25V
R32
D2
R1OUT
R2OUT
T1OUT
T2OUT
C+
C1C2+
C2V+
V-
330
5
9
4
8
3
7
2
6
1
12
9
14
7
D3
5V1
P1
R33
4.7
MAX232
C6
10uF/25V
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
100nF
6
5
4
C27
VCC
R45
4K7
1
2
3
SW3
C4
U8
A0
A1
A2
24FC512
SCL
SDA
C3
J47
1
2
I2C
41
VCC
VCC2
8
7
6
5
1
2
3
J35
C24
100uF/25V
1
9
10K
U4
1A
2A
3A
4A
1Y
2Y
3Y
4Y
1,2EN
3,4EN
VCC1
1
9
C45
100nF
C15
C8
100nF
1
2
3
C23
2
7
10
15
C20
VCC
VCC2
J36
J34
U5
1A
2A
3A
4A
VCC2
C2
B6
B7
A4
C14
5
4
3
2
1
C
C9
C13
3
6
11
14
L293
R34
C12
J33
VCC2
C1
2
C0
7
RB0 10
C5 15
C11
1
2
3
4
100nF
CON5
C10
1Y
2Y
3Y
4Y
3
6
11
14
1,2EN
3,4EN
5
4
3
2
1
C47
C46
C16
C17
C18
C19
L293
CON5
SW4
100nF
Adicionalmente en caso de que se quiera visualizar algunos de los parmetros que estn
variando en la planta o proceso, est disponible un conector (figura 3.9) en la tarjeta
principal para una pantalla de cristal lquido (LCD). El LCD esta integrado a la tarjeta
programable y es de 2 lneas y 16 caracteres por lnea. El puerto B es utilizado como bus de
datos y el puerto E como bus de control para configurar el LCD. Las resistencias R19 y
R20 configuran la intensidad de iluminacin del LCD.
B0
B1
B2
B3
B4
B5
B6
JP5
1
3
5
7
9
11
13
B7
2
4
6
8
10
12
14
RE2
RE1
RE0
HEADER 7X2
VCC
R20
R19
820
10K
Figura 3.9 Circuito electrnico del conector para pantalla de cristal lquido.
42
Mdulo de procesamiento.
U1
RA0/AN0
RA1/AN1
RA2/AN2/VREFRA3/AN3/VREF+
RA4/TOCKI
RA5/AN4/SS#
MCLR/Vpp
RB0/INT
RB1
RB2
VCC
RB3PGM
RB4
RB5
VCC
RB6/PGC
RB7/PGD
RC0/T1OSI/T1CKI
RC1/T1OSO/CCP2
RC2/CCP1
RC3/SCK/SCL
RC4/SDI/SDA
RC5/SDO
OSC2/CLKOUT
RC6/TX/CK
RC7/RX/DT
RD0/PSP0
RD1/PSP1
OSC1/CLKIN
RD2/PSP2
RD3/PSP3
RD4/PSP4
RD5/PSP5
RD6/PSP6
RD7/PSP7
RE0/RD#/AN5
RE1/WR#/AN6
RE2/CS#/AN7
VCC
S1
1
11
R23
10K
32
D1
R21
1N4148
100
14
2
2
3
4
5
6
7
33
34
35
36
37
38
39
40
15
16
17
18
23
24
25
26
19
20
21
22
27
28
29
30
8
9
10
13
SW1
C1
C2
C6
100 nF
100 nF
10 uF / 16V
C3
10uF
A la tarjeta principal
Este mdulo (figura 3.10) est compuesto esencialmente por el microcontrolador que es la
parte central que va a procesar y controlar la tarjeta; adems de los circuitos oscilador y de
reinicio (reset) necesarios para que funcione el microcontrolador. Este mdulo se conecta
por medio de un conector de cable plano a la tarjeta principal para as poder conectar una
tarjeta con un PIC, un dsPIC o un microcontrolador de otro fabricante.
C5
12MHz
22pF
C4
PIC18F452
22pF
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
cuando todas las entradas del conversor analgico/digital estan a nivel alto. La
alimentacin de esta tarjeta se obtiene del mdulo de alimentacin de la tarjeta principal. El
transistor MOSFET Q1 le da potencia a la salida de corriente del transmisor XTR110. Ver
figura 3.11.
+15VCC
-15VCC
U2
-15VCC
+5VCC
+15VCC
16
15
14
13
12
11
10
9
V+
- In
Rcv f B
CT
Rcv Out
+ In
Rcv Com
VRef In
Ref Com
Ref Out
NC1
Ref f B Ref Noise Red
NC2
Ref Trim
1
2
3
4
5
6
7
8
J1
1
2
ENTRADA 4-20 mA
RCV420
JP1
2
4
6
8
10
12
14
+15VCC
R3 1K
+5VCC
R1
R4
10K
-15VCC
U3
V+
13
15
4
2
2
7
1
COMP
VR+
VR-
IOUT
IOUT
U4
LF351
1
2
3
4
5
6
7
8
Source Res
+ Vcc
Comm
Vref Force
Vref In
Gate Driv e
Vin1(10V)
SourceSense
Vin2(5V)
Vref Sense
Zero Adj1
Vref Adj
Zero Adj2
4mA Span
Zero Adj3
16mA Span
16
15
14
13
12
11
10
9
XTR110
16
1 Q1
C2
1 uF
3
MOSFET MTP2955
2
J2
1
2
SALIDA 4-20 mA
C1
V-
14
A8
A7
A6
A5
A4
A3
A2
A1
12
11
10
9
8
7
6
5
U1
4
5
3K3
HEADER 7X2
1
3
5
7
9
11
13
33pF
+15VCC
DAC0808
R2
3K3
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
A4
R14
470
220
SW19
VCC1
AN3
D27
SW17
SW18
SW16
SW15
SW14
SW13
SW10
SW9
SW8
SW7
SW6
SW5
R3
SW4
SW3
LM35/TO
SW12
VCC
LED
VS+ VOUT
SW11
D26
U1
1
RB0
VCC1
R12
VCC
SW20
VCC
1
2
3
J3
1
2
3
1
2
3
J2
1
2
3
J1
Q1
10K
R8
C4
C3
10K
EXT
SDA
SCL
OSC
13
R10
100n
2
3
4
5
6
7
8
9
12
11
PCF8591
VCC
J5
B5
D6
B6
D7
B7
D18
B4
D5
D19
B3
D4
D20
B2
D3
D21
R9
B1
D2
D22
D16
14
D14
A5
B0
D1
D23
3
15
C1
A0
A1
A2
9
10
D12
D11
C5
VREF
AGND
5
6
7
2N3904
AOUT
AIN0
AIN1
AIN2
AIN3
D0
D17
AN3
R7
220
U3
1
2
3
4
D15
R6
220
R5
LDR
D13
R4
4K7
R11
9
8
7
6
5
4
3
2
D24
VAN
2
D1
10K
R2
D25
R1
3
D10
10K
C
VCC
1
2
VCC
C4
47uF/16v
JP6
VCC1
1
3
5
7
9
11
13
15
17
19
21
23
25
27
29
31
33
35
A5
C5
C3
8
3
B4
B5
B6
B7
74LS48
S0
S1
S2
S3
S4
S5
S6
S0 7
S1 6
S2 4
S3 2
S4 1
S5 9
S6 10
S7 5
JP3
a
b
c
d
e
f
g
dp
S0 7
S1 6
S2 4
S3 2
S4 1
S5 9
S6 10
S7 5
Q2
3
2
B7
2N3904
D2 D3 D4 D5 D6 D7 D8 D9
JP4
a
b
c
d
e
f
g
dp
S0 7
S1 6
S2 4
S3 2
S4 1
S5 9
S6 10
S7 5
Q3
JP5
a
b
c
d
e
f
g
dp
3
B6
S0 7
S1 6
S2 4
S3 2
S4 1
S5 9
S6 10
S7 5
2N3904
Q4
C5
D6
D4
D2
D0
a
b
c
d
e
f
g
dp
3
B5
2N3904
B4
B2
B0
R13
3
8
JP2
13
12
11
10
9
15
14
3
8
7
1
2
6
BI OA
RBI OB
LT OC
OD
A OE
B OF
C OG
D
3
8
a
b
c
d
e
f
g
dp
7
6
4
2
1
9
10
5
4
5
3
3
8
JP1
U2
B0
B1
B2
B3
1k
Q5
2
B4
B6
2
4
6
8
10
12
14
16
18
20
22
24
26
28
30
32
34
36
A2
C4
RB0
A4
D7
D5
D3
D1
B5
B3
B1
R15
1k
B7
VAN
2N3904
J7
1
2
J6
CON2
1
2
3.4.
45
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
Tarjeta
1. Principal
2. De procesamiento
3. De E/S de 4 20 mA
4. De aplicacin
Largo (mm)
195
80
65
145
46
Ancho (mm)
120
55
55
95
47
4.1.
Las tarjetas se hicieron por mtodo serigrfico debido a que es confiable y econmico para
la elaboracin de tarjetas complejas de circuitos impresos. Las conexiones entre caras de la
tarjeta (conocidas como through holes o vas) se realizaron de manera directa al no
disponer de la mquina que realiza las vas.
Se prob la continuidad de las pistas y de las conexiones entre las caras de las tarjetas a lo
largo del proceso de montaje de los componentes para comprobar las conexiones elctricas
de la tarjeta programable.
Las tarjetas de circuito impreso que se realizaron son:
1.
2.
3.
4.
48
49
Despus de que la tarjeta fue ensamblada, se realizaron pruebas de cada uno de los mdulos
de la tarjeta programable, stas se muestran en la tabla 4.1 donde se indican los mdulos
utilizados como entrada y salida de datos.
Tabla 4.1 Pruebas de la tarjeta programable.
Nombre
E/S digitales
Entradas analgicas
Potencia para
motores
Pantalla de cristal
lquido (LCD)
Comunicacin
RS232
Comunicacin I2C
E/S de 4 - 20 mA
3
4
5
Mdulo de entrada
Puerto B (E/S digitales)
Puerto D (E/S digitales)
Entrada analgica RA0
Mdulo de salida
Puerto D (E/S digitales)
Puerto B (E/S digitales)
Puerto B (E/S digitales)
LCD
RS232
*
E/S de 4-20 mA
*
Memoria EEPROM
Puerto B (E/S digitales)
E/S de 4-20 mA
* En estas pruebas los datos iniciales o de control son generados en el mdulo de procesamiento.
50
Todos los programas en la parte inicial tienen la funcin de incluir la librera del
PIC18F452, las libreras necesarias de acuerdo a las instrucciones programadas (# include)
y las directivas de configuracin del microcontrolador (# pragma config).
Para la programacin del PIC18F452 durante estas pruebas se deshabilitaron las opciones
del oscilador del perro guardin (watchdog timer) y el reinicio por bajo voltaje para evitar
que se reinicie el programa de prueba en los ciclos infinitos de ejecucin o por cadas en el
voltaje de alimentacin, tambin se deshabilita la programacin en bajo voltaje para que el
pin RB5 pueda funcionar como entrada/salida digital.
4.2.1.
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
La rutina utilizada en un ciclo infinito para leer el valor analgico de entrada y mostrarlo en
el puerto B es realizado cuando se utilizan las subrutinas de la librera del conversor A/D.
ConvertADC();
while (BusyADC());
PIR1bits.ADIF = 0;
PORTB = ADRESH;
// Inicia la conversin
// Espera a que la conversin finalice
// Se limpia la bandera de interrupcin del conversor AD
// Copia los 8 bits mas significativos al PORTB
(4.1)
En la librera delays.h se incluyen varias funciones para generar los retardos en mltiplos
del tiempo de ciclo de instruccin.
Como resultado, la respuesta mostrada en los LEDs fue proporcional a la posicin del
potencimetro.
4.2.3.
52
Para esta prueba se envi a la pantalla de cristal lquido (LCD) el mensaje CENIDET
MECATRNICA.
En esta prueba se realiz el protocolo de transmisin para enviar las instrucciones de
configuracin del LCD y del mensaje, y posteriormente se envan los componentes de los
arreglos mensaje y mensaje2 que contienen las palabras a mostrar. Se aplican los
retardos necesarios de acuerdo a la hoja de datos de la pantalla de cristal lquido.
Los retardos utilizados son de 1 milisegundo y de 10 microsegundos. Estos fueron
calculados con la ecuacin 4.1 para obtener los ciclos de instruccin necesarios para
generar el retardo.
Para generar el retardo de 1 ms:
Ciclos = (1i10-3 12i106 ) 4 = 3000
Para generar el retardo de 10 s:
Ciclos = (10i10-6 12i106 ) 4 = 30
Por lo que las instrucciones para cada uno de los retardos son:
Delay1KTCYx(3); //Retardo de 1 ms para 12 MHz
Delay10TCYx(3); //Retardo de 10 s para 12 MHz
4.2.5.
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
(4.2)
(4.3)
(4.4)
Como se defini una velocidad de 19200 baudios en modo asncrono, se utiliza la ecuacin
4.2. Sustituyendo FOSC = 12 MHz y Velocidad = 19200 en la ecuacin 4.2 se obtiene:
spbrg = (12i106 19200 ) 16 1 = 38.06 38
Esta prueba utiliza dos programas, uno para escribir dos datos en la memoria EEPROM y
otro para leer el primer dato y mostrarlo en el puerto D.
Se configura el mdulo de transmisin I2C con la instruccin OpenI2C() para operar en
modo maestro y velocidad estndar de 100 KHz. En este modo de funcionamiento es
necesario calcular el valor del registro SSPADD. Para calcular el valor de SSPADD se
despeja esta variable de la ecuacin 4.5.
Reloj = FOSC
( 4i( SSPADD + 1) )
(4.5)
12i106
1 = 29
4i(100i103 )
En el primer programa se ejecuta el protocolo de transmisin I2C para enviar un dato a una
de las memorias EEPROM. Se enva primero la direccin de la EEPROM con la
instruccin de escritura (0xA0). Como es una memoria de 512 KBytes, utiliza una palabra
(2 bytes) para el direccionamiento interno, se enva el byte inferior de la direccin y luego
el byte superior. Despus se envan los dos datos a almacenar (0xA5 y 0x00) y finaliza el
programa.
54
Entrada de
corriente (mA)
4
6
8
10
12
14
16
18
20
Salida (V)
Prueba 1 (Ascendente) Prueba 2 (Descendente)
0.02
0.00
0.63
0.64
1.27
1.27
1.89
1.90
2.52
2.52
3.16
3.17
3.80
3.80
4.42
4.43
5.05
5.05
La figura 4.5 muestra los datos de la tabla 4.2 y se observa la linealidad del receptor.
55
0
2
10
12
14
16
18
20
22
Prueba descendente
Para la caracterizacin del transmisor, se calcularon los valores digitales necesarios para
que la salida del conversor digital-analgico entregue cada uno de los niveles de corriente
de la tabla 4.2. Se utiliz una resistencia de 250 como resistencia de carga tpica segn la
hoja de datos del transmisor XTR110. Los valores programados para cada una de las
salidas de corriente se muestran en la tabla 4.3 con los valores de corriente medidos a la
salida del transmisor de corriente y el error calculado del transmisor de 4-20 mA.
Tabla 4.3 Caracterizacin del transmisor de 4-20 mA.
Dato programado
(hexadecimal)
0x00
0x20
0x40
0x60
0x80
0x9F
0xBF
0xDF
0xFF
Salida (mA)
Valor ideal Valor real
4
4
6
6
8
8
10
10.1
12
12.1
14
14.1
16
16.2
18
18.2
20
20.2
56
Error
(%)
0.00
0.00
0.00
1.00
0.83
0.71
1.25
1.11
1.00
57
58
5.1.
Objetivo de
control
Sensores
No. de
Canales de
entrada
Robot mvil
seguidor de
lnea
Modelo a
escala de
plataforma
de
seguimiento
solar
2 sensores
pticos de
reflexin
2 (digitales)
Orientar la placa
colectora hacia el
sol
5 micro
interruptores
21
fototransistores
1 encoder
13 (digitales)
Cmara
trmica con
temperatura
controlada
Controlar la
temperatura de un
ambiente aislado
trmicamente
1 (digital)
1 (analgica)
1 sensor de
temperatura
59
No. de
canales de
salida
2 (potencia
para
motores)
Actuadores
Tipo de
control
2 motores
de CD
Enc/apag
2 (potencia
para
motores)
2 motores
de CD
Enc/apag
1 (digital)
5 (potencia
para
motores)
1 calefactor
1 soplador
1 extractor
de aire
2 solenoides
Proporcionalintegral
5.2.
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
Chasis
Rueda loca
5.2.2.
Requerimientos de la planta
El robot mvil requiere de la tarjeta programable: dos entradas digitales (RD0 Y RD1), por
donde entran las seales provenientes de los sensores al microcontrolador, y cuatro salidas
del mdulo de potencia L293 (RA4, RB6, RB7 y RC2), por donde la tarjeta enva las
seales para activar/desactivar cada uno de los motores de 12 VCD.
5.2.3.
Diseo mecnico
60
Soporte de
sensores
Ruedas
delanteras
Chasis
Motores de
12 VCD
Rueda loca
5.2.4.
Los recursos que la planta requiere de la tarjeta programable son: dos canales digitales de
entrada por medio de los cuales los fototransistores ingresan las seales a la tarjeta, y,
cuatro canales de salida para operar los motores de CD en ambas direcciones. El sensor
empleado en el robot mvil es el fototransistor CNY70 el cual se activa cuando la luz de su
diodo rebota (en una superficie blanca) hacia su fototransistor. Al activarse el sensor
ingresa un 1 lgico (+ 5 VCD) a la tarjeta, en caso contrario ingresa un 0 lgico (0
VCD).
La figura 5.3 muestra el circuito electrnico empleado por el robot mvil. La corriente en el
fotodiodo es limitada por R1, la seal del sensor es el voltaje presente en la resistencia R2.
Estas resistencias son calculadas con la ecuacin 5.1.
R1 =
VCC V f
If
Donde:
Vcc
Vf
If
R1
61
(5.1)
5 VCC
R1
75
CNY 70
RD0
SENSOR IZQ
RB6
TARJETA
PROGRAMABLE
5 VCC
R1
75
RC2
R2
47 K
CNY 70
RB7
RD1
SENSOR DER
RA4
MOTOR
IZQUIERDO
15 VCD
R2
47 K
MOTOR
DERECHO
15 VCD
El valor de R2 debe ser lo suficientemente grande para que la mayor parte de voltaje caiga
en sta cuando el fototransistor se sature, y conduzca. Por lo anterior se toma de esta
resistencia la seal que se enva a la tarjeta programable. Con una resistencia de 47 k la
tarjeta detect perfectamente las seales enviadas desde los sensores del robot mvil.
Los motores utilizados son controlados por el driver L293 de la tarjeta programable. Con
ste se controla el encendido y sentido de giro de ambos motores. La velocidad de los
motores depende del voltaje que se les aplique, en este caso es de 12 VCD aplicado desde
una fuente externa.
5.2.5.
Algoritmo de control
1. Si ambos sensores estn sobre la lnea oscura, el robot mvil se debe mover en lnea
recta. Posicin 1 del robot en la figura 5.4.
2. Si se activa el sensor izquierdo debido a que sali de la lnea oscura, el robot debe
girar a la derecha hasta que el sensor se vuelva a desactivar. Posicin 2 del robot en
la figura 5.4
3. Si se activa el sensor derecho debido a que sali de la lnea oscura, el robot debe
girar a la izquierda hasta que el sensor se vuelva a desactivar. Posicin 3 del robot
en la figura 5.4
4. Si ambos sensores se activan debido a que salen de la lnea oscura, el robot debe
detenerse. Posicin 4 en la figura 5.4
62
Posicin 1
Avanza en lnea recta
Posicin 2
Gira a la derecha
Posicin 3
Gira a la izquierda
Posicin 4
Se detiene el robot
Figura 5.4 Diferentes acciones del robot de acuerdo al estado de sus sensores.
5.3.
5.3.1.
Objetivo
Orientar la placa colectora de la planta a la direccin del sol, con la finalidad de aprovechar
al mximo la energa calorfica de ste. Esta tarea se realiza por medio de 21 sensores y 2
motores de 24 VCD.
5.3.2.
Requerimientos de la planta
Los recursos que la planta demanda de la tarjeta programable son: 2 entradas digitales del
puerto A, 8 entradas digitales del puerto B, 4 entradas digitales del puerto D y 4 salidas
digitales del puerto D. No se conectan los motores de la planta a la salida de potencia de la
tarjeta programable debido a que el integrado L293 tiene una capacidad de suministro de
corriente de 1 Ampere, y la corriente que demandan los motores de la planta es de 1.8
Amperes. Debido a lo anterior se implementaron en una tablilla de conexin (protoboard)
dos puentes H, con transistores de 15 Amperes, con los que se controla el giro y el frenado
de cada uno de los motores de la plataforma de seguimiento solar. Ver figura 5.5
63
RD0
R2
150k
R1
3k3
TIP125
MOTOR GIRO
HORIZONTAL
24 VCD
TIP125
R1
3k3
BC548
BC548
TIP120
R2
150k
RD1
TIP120
24 VCD
RD2
R2
150k
R1
3k3
TIP125
MOTOR GIRO
VERTICAL
24 VCD
TIP125
R1
3k3
BC548
BC548
TIP120
R2
150k
RD3
TIP120
Figura 5.5 Circuito de potencia (puente H) para alimentar dos motores de 24 VCD.
Para que los transistores TIP220, TIP225 y BC548 trabajen en la regin de saturacin, se
calcul el valor de las resistencias R1 y R2. Los datos de transistores indicados en la figura
5.6 se tomaron de hojas de datos del fabricante FAIRCHILD SEMICONDUCTORTM. [14]
24 VCD
TIP125
R1
3k3
5 VCD
MOTOR
24VCD
R2
150k
BC548
TIP120
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
R2 = VR2(on) / IR2(max)
VR2(on) = 5 - VBE(on)BC548 - VBE(on)TIP120
VR2(on) = 5 - 0.77 2.5 = 1.73 V
IBmin = IL(max) / hFEBC548
IBmin = 5.72 mA / 800 = 7.15 A
Considerando IB = 10 A
R2 = 1.73 V / 10 A = 173 k
El valor prximo comercial es de 150 k. Siendo R2 = 150 k, la corriente de base para
saturacin de los transistores BC548 es:
IB(sat) = 1.73 V / 150 k = 11.53 A
5.3.3.
Diseo mecnico
Es una base cuadrada de aluminio de 400 x 400 x 6 mm. Al centro de esta base se mont un
buje para que pueda girar un soporte vertical en conjunto con la placa colectora, el soporte
vertical es un perfil cuadrado de acero de 32.5 x 32.5 x 402 mm, dentro del cual se aloja un
mecanismo de tornillo sin fin que proporciona el giro vertical a la placa colectora. Ver
figura 5.7.
65
Placa
colectora
Poleas de
placa colectora
Dados
deslizantes
Motor giro
vertical
Bujes de
polea
Varilla
roscada
Motor giro
horizontal
Soporte
vertical
Polea
roscada
Buje
Figura 5.7 Diseo mecnico del modelo a escala de la plataforma de seguimiento solar.
El sistema es de dos grados de libertad; uno de ellos es el giro horizontal que en conjunto
mueve el soporte vertical y la placa colectora por medio de un motor de 24 VCD, el otro
grado de libertad es el giro vertical de la placa colectora por medio de otro motor de 24
VCD
5.3.4.
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
Sensor
central
Sensor 4
Sensor 1
Grupo izquierdo
de 8 sensores
conectados en
paralelo
Grupo derecho
de 8 sensores
conectados en
paralelo
Sensor 3
Sensor 2
Figura 5.8 Vista superior del modelo a escala de la plataforma de seguimiento solar.
Sensores
Giro
horizontal
10
Placa semicircular
de acrlico
Interruptor de
lmite inferior
Placa colectora
Interruptor de
lmite superior
Giro
vertical
Interruptor de
lmite central
Motor de giro
vertical
Motor giro
horizontal
Soporte vertical
67
5 VCC
SENSOR 4
SENSOR 1
5 VCC
R1
330
ENCODER
R1
330
SENSOR 2
5 VCC
5 VCC
GRUPO DERECHO DE SENSORES
R1 330
R1
330
SENSOR 3
R1
330
SENSOR
PRINCIPAL
5 VCC
S6
R1
330
INT DE ARRANQUE
R1
330
R1
330
5 VCC
R1
330
MOTOR DE 24 VCC
GIRO SUB/BAJ
RA4
RB1
RD6
RD7
RB0
RD4
RD5
RB2
RA5
RD2
RD3
TARJETA
PROGRAMABLE
RB5
RB4
RD0
RB3
TARJETA DE
POTENCIA
(2 PUENTES H)
RD1
RB6
RB7
MOTOR DE 24 VCC
GIRO IZQ/DER
R1
330
R1
330
R1
330
INT LIM
CENTRAL
R1
330
5 VCC
R1
330
Figura 5.10 Circuito elctrico del modelo a escala de la plataforma de seguimiento solar.
5.3.5.
Algoritmo de control
Las vistas de la planta mostradas en la figura 5.11 se toman como referencia para nombrar
los movimientos de la planta, en donde tambin se muestra la distribucin de los sensores
colocados en la parte superior de la placa colectora
1. Al pulsar el botn de arranque la placa colectora gira simultneamente a la
izquierda y hacia arriba/abajo deteniendo cada uno de estos giros hasta que sta se
posicione horizontalmente en el lmite de giro izquierdo.
2. Posterior a la rutina de inicio la placa colectora inicia una rutina de bsqueda la cual
consiste en giros horizontales a la izquierda y a la derecha. Las primeras cuatro
veces que la placa colectora llegue a los lmites de giro, realizar ah un giro vertical
de 2.5 hacia arriba, y las prximas cuatro veces hacia abajo. Si el sol no es
detectado por los sensores montados en la parte superior de la placa colectora en
estos 4 ciclos de bsqueda, la planta se detendr.
3. El giro vertical de la placa colectora es definido por un encoder fotoelctrico
montado en el motor de giro vertical de la planta.
4. Si en la rutina de bsqueda el sol es detectado por uno de los sensores del grupo
izquierdo de la placa de acrlico, entonces la placa colectora primero frenar su giro
horizontal y despus girar verticalmente hacia arriba, frenando este giro hasta que
el sensor principal apunte hacia el sol.
68
5. Si en la rutina de bsqueda el sol es detectado por uno de los sensores del grupo
derecho de la placa de acrlico, entonces la placa colectora primero frenar su giro
horizontal y despus girar verticalmente hacia abajo, frenando este giro hasta que
el sensor principal apunte hacia el sol.
6. La rutina de bsqueda termina en el momento que el sensor principal es activado
por el sol y entonces inicia la rutina de seguimiento.
7. El sensor principal est rodeado por seis sensores. Ver figuras 5.8 y 5.11.
8. El seguimiento inicia en el momento que el sensor principal pierde la luz del sol por
el movimiento relativo de este. Y entonces se espera a identificar cul de los seis
sensores que rodean al principal se activa para realizar los giros que harn que el
sensor principal apunte nuevamente hacia el sol, y en consecuencia la placa
colectora tambin quedara orientada hacia el sol.
a. Si el sol es detectado por el sensor de la trampa izquierda la placa colectora
girar hacia arriba, frenando hasta que el sensor principal detecte el sol
b. Si el sol es detectado por el sensor de la trampa derecha la placa colectora
girar hacia abajo, frenando hasta que el sensor principal detecte el sol
c. Si el sol es detectado por el sensor No. 1 la placa colectora girar hacia la
derecha y hacia abajo, frenando hasta que el sensor principal detecte la luz
del sol.
d. Si el sol es detectado por el sensor No. 3 la placa colectora girar hacia la
derecha y hacia arriba, frenando hasta que el sensor principal detecte la luz
del sol. La lgica cuando se detecta la luz por los sensores restantes es
similar
Detalle A
Grupo izq.
sensores
Sensor 4 Sensor 1
Baja
Sensor
grupo der.
Lmite central
Giro der.
Lmite
giro izquierda
Detalle A
Vista superior de la planta
Grupo der.
sensores
Sube
Giro izq.
Sensor
Giro izq.
Sensor
grupo izq.
principal
Sensor 3 Sensor 2
Giro der.
Lmite
giro derecha
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
5.4.
5.4.1.
Objetivo
Diseo mecnico
Por ser una planta didctica, se hizo de acrlico para poder observar los componentes y su
funcionamiento en el interior de la cmara. El cubo interno es de 305 x 305 x 310 mm. y
est en el centro del cubo externo de 405 x 405 x 410 mm. Con las dimensiones anteriores
se tiene un volumen interno de 300 x 300 x 300 mm. y 400 x 400 x 400 mm. en cada cubo
respectivamente. Los cubos estn ensamblados con tornillos de 1/8 de pulgada. Para
colocar el cubo interno en la parte central del cubo grande se utilizan unos soportes de
acrlico en las esquinas internas de ste ltimo.
Los elementos que se encuentran dentro de la cmara trmica son un calefactor que es el
elemento actuador del sistema, un agitador de aire para mantener uniforme la temperatura
en el volumen interno de la cmara, unos ductos de ventilacin y un sensor de temperatura.
El calefactor se encuentra en una base de porcelana. La base del calefactor y el agitador de
aire estn atornillados a la base del cubo interno. El sensor de temperatura se encuentra a 3
cm. de la parte central de la cara superior del cubo interno. Ver figura 5.12.
Sensor de
temperatura
Solenoide de
apertura de
compuerta
Cubo externo
Soplador
de aire
Extractor
de aire
Calefactor
Agitador
de aire
Cubo
interno
70
Los ductos se fabricaron de acuerdo a las dimensiones del soplador y el extractor de aire.
Cada ducto tiene una compuerta que est conectada al ncleo mvil de un solenoide con el
fin de poder abrir la compuerta al energizar el solenoide. Todo este conjunto es utilizado
para que circule aire hacia el interior de la cmara y expulse el aire caliente.
La cmara trmica est sellada con silicn para optimizar el aislamiento trmico.
5.4.3.
120 VCA
REFERENCIA DE
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
180
470
CARGA
MOC3010
SEAL DE
DISPARO
100
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]
El diagrama de conexin de la tarjeta programable con los circuitos electrnicos adicionales
y los elementos de la cmara trmica se muestran en la figura 5.16.
RB0
RC0
COMPUERTA
EXTRACTOR
RA4
+
RC2
A SOPLADOR
RC5
EXTRACTOR A
AGITADOR
RD0
CALEFACTOR
COMPUERTA
SOPLADOR
LM35
RC1
120 VCA
VS+ VOUT
120 VCA
AN0
TARJETA PROGRAMABLE
+5V
GND
5.4.4.
Requerimientos de la planta
Para controlar esta planta la tarjeta programable utiliza un canal de entrada analgica
(sensor de temperatura), un canal de entrada digital (seal de referencia de cruce por cero),
cinco canales de salida de potencia (agitador, soplador, extractor y las compuertas) y un
canal de salida digital para enviar la seal de control del calefactor. Adems de estos
recursos de la tarjeta programable, se utiliza un circuito detector de cruce por cero y un
circuito de interfaz de CA.
72
5.4.5.
Algoritmo de control
C (t ) = K P E (t ) + K I E (t )dt
0
(5.2)
E (t )dt Ts E (n)
(5.3)
(5.4)
Donde:
KP = K
KI = K/TI
La ecuacin 5.4 puede programarse en el microcontrolador.
El programa del microcontrolador est diseado para trabajar junto con el instrumento
virtual de LabVIEW mostrado en la figura 5.17.
73
Este instrumento virtual es utilizado para configurar los valores de las variables requeridas
para que el controlador funcione y opera de la siguiente manera:
1. Presionar el botn RUN para ejecutar el instrumento virtual. Aparece en el monitor
una ventana con instrucciones de:
Encender la tarjeta programable.
Establezca los valores de setpoint, Kp y Ti.
Presiona LISTO para comenzar.
2. Siguiendo las indicaciones mostradas, se asignan los valores a las variables
SETPOINT, Kp y Ti. El valor de la variable SETPOINT est limitada al
intervalo de 30C 70C para evitar altas temperaturas que puedan afectar a la cmara
trmica o a los elementos internos. La variable Kp esta limitada a que sea mayor que
cero para que la accin de control proporcional no se pueda deshabilitar. La variable Ti
puede ser cero para que la tarjeta funcione solamente como controlador proporcional.
3. Presionar el botn de LISTO para que los datos de las variables sean enviados a la
tarjeta programable.
4. El dato de temperatura transmitido desde la tarjeta programable es recibido y graficado,
tambin se enciende el indicador LEYENDO.
5. En caso de error de configuracin o error de acceso del puerto, se encienden unos
indicadores para mostrar el origen de la falla.
6. Presionando el botn de PARO el instrumento virtual detiene su ejecucin.
Al encender la tarjeta programable, el proceso de operacin es:
1. Se inicializan los puertos y se configuran los mdulos de conversor A/D y de USART
del microcontrolador.
74
75
CAPTULO 6. EXPERIMENTACIN Y
ANLISIS DE RESULTADOS
76
6.1.
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
6.2.
Las pruebas realizadas al sistema de control de la planta se llevaron a cabo con un foco
incandescente de 100 Watts, el cual simul al sol. En las pruebas se detectaron algunos
problemas mecnicos debido a que las piezas no fueron fabricadas con el equipo apropiado.
Los principales problemas son: el desplazamiento deficiente de los dados del mecanismo de
movimiento vertical dentro del soporte vertical y el deslizamiento de las bandas en las
poleas, los cuales se ve reflejado en la dificultad del control de la velocidad de giro tanto
vertical como horizontal de la placa colectora.
La definicin de la direccin de los sensores fotoelctricos se logr mediante tubo termo
contrctil (thermofit).
Para realizar las pruebas se coloc el foco en una determinada posicin, y entonces se
oprimi el botn de arranque. Inicia la rutina de posicionamiento de inicio y despus la
rutina de bsqueda en donde el foco fue detectado por el grupo derecho de ocho sensores,
por lo que frena horizontalmente y despus gira verticalmente hacia abajo hasta que el
sensor principal apunto hacia el foco. Al momento en que el sensor principal apunto al foco
se produjo un frenado vertical. Se procedi a mover el foco en direccin del sensor nmero
cuatro, para esto el sistema respondi con un giro hacia la izquierda y hacia arriba,
frenando hasta que el sensor principal apunto nuevamente hacia el foco. Despus el foco se
movi hacia el sensor numero 2, para esto el sistema respondi con un giro simultaneo
hacia la izquierda y hacia abajo, frenando hasta que el sensor central apunto hacia el foco.
Se probaron los lmites de giro vertical moviendo el foco a lo largo de la fila del grupo
derecho de ocho sensores, para esto el sistema respondi con un giro vertical hacia abajo.
El foco se sigui moviendo en la misma direccin hasta que se accion el lmite inferior de
giro vertical, provocando que el sistema se reinicie desde la posicin de inicio home. De
manera similar se hizo la prueba para verificar la respuesta al accionamiento del interruptor
de lmite de giro vertical hacia arriba.
Se probaron los lmites de giro horizontal moviendo el foco de tal manera que la planta lo
siguiera hasta que se activ el lmite de giro horizontal derecho. Para esta posicin los
sensores uno y tres se inhabilitan mediante programa, por lo que la planta ya no pudo girar
mas a la derecha, protegindola as del sobregiro a la derecha. De manera similar se realiz
la prueba de proteccin de sobre giro a la izquierda.
Los resultados de las pruebas realizadas se consideran satisfactorios, considerando la falta
de maquinaria y equipo para la fabricacin de los mecanismos de la planta, adems del
mnimo presupuesto empleado para su fabricacin.
El ajuste de la longitud de los tubos que direccionan la luz del foco hacia los sensores
fotoelctricos es diferente a la que deben de tener estos para direccionar la luz del sol,
debido a la diferencia de intensidades luminosas entre ambos. La direccin perpendicular
del sol a la placa colectora se puede optimizar mediante un ajuste fino del tubo colocado en
el sensor principal, que es el que debe apuntar hacia el sol.
78
La respuesta que dieron las protecciones de sobregiros tanto horizontales como verticales
fue satisfactoria en todas las pruebas que se hicieron. Las diez pruebas que se hicieron,
primero haciendo que el sistema siguiera al foco hasta los lmites verticales. En estos casos
el sistema al sensar los lmites verticales respondi, llevando el sistema a la posicin de
inicio y posteriormente a la etapa de seguimiento. Las otras diez pruebas se hicieron
llevando el sistema en la etapa de seguimiento a los limites horizontales en donde el
sistema respondi de manera tal que se bloquearon los sensores que impiden al sistema
girar mas all de los limites horizontales de la planta.
El encoder empleado para incrementar/decrementar el giro vertical de la placa colectora en
2.5 tenia su disco ligeramente doblado, despus que se le dio mantenimiento al disco, el
encoder funcion correctamente, incrementando o decrementando satisfactoriamente la
altura de la placa colectora al llegar a los extremos de giro horizontal.
Los rebotes producidos por el accionamiento de los sensores electromecnicos, se
resolvieron mediante programacin. Esto consiste bsicamente en llamar una rutina de
retardo una vez que se detecto el primer accionamiento del sensor, esperando un tiempo
para evitar sensar los accionamientos subsecuentes producidos por los rebotes del
interruptor. As se corrigieron movimientos inesperados de la planta debidos precisamente a
los rebotes de los sensores electromecnicos.
No hay que olvidar que la planta tiene una velocidad de respuesta, y que esta en base a la
velocidad de giro de la placa colectora. Entonces en las pruebas con el foco, si este se
mueve muy rpido en la etapa de seguimiento, la planta perder el rastro, por lo que ya no
podr seguirlo. Con una velocidad moderada del movimiento del foco, la planta funciona
satisfactoriamente.
6.3.
79
f (t ) = 175sin(120 )
La frmula para el voltaje eficaz de cualquier seal es:
Vef =
1 t
f (t )dt
T 0
(6.1)
Aplicando la ecuacin 6.1 para el clculo del voltaje eficaz de la onda recortada se obtiene:
T
1 T2
2
2
Vef =
175sin(120 ) ) dt +
(
(175sin(120 ) ) dt
2
+
t
T
t
(
)
1
1
T
sin ( 240 t1 )
1
2t1 +
Vef = 175 30
60
120
Con la ayuda de un programa para graficar y tabular funciones, se buscaron los valores de
t1 para cada voltaje eficaz de la tabla 6.1.
Tabla 6.1 Experimentacin de voltaje eficaz y tiempo de recorte.
Vef
deseado
(Volts)
10
20
30
40
50
60
70
80
90
100
110
120
t1 (obtenido
de grfica)
(ms)
7.50
7.00
6.55
6.15
5.70
5.30
4.90
4.50
4.00
3.50
2.80
1.80
t1
programado
(ms)
7.50
7.00
6.57
6.13
5.73
5.33
4.93
4.50
4.03
3.50
2.87
1.80
80
t1
medido
(ms)
7.40
6.90
6.50
6.00
5.60
5.20
4.80
4.40
3.90
3.40
2.80
1.70
Vinst
grfica
(Volts)
60.31
90.00
111.00
134.83
150.00
161.88
170.00
174.00
174.00
167.00
152.00
104.63
Vinst
medido
(Volts)
55
88
116
136
148
162
170
170
170
165
150
100
81
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
Captulo 7. Conclusiones
CAPTULO 7. CONCLUSIONES
83
7.1.
Captulo 7. Conclusiones
Conclusiones
El resultado final del desarrollo de este trabajo de tesis, es una tarjeta programable que
permite controlar una amplia variedad de procesos de acuerdo al algoritmo de control
programado en el microcontrolador. Esta tarjeta puede operar de forma autnoma o con
conexin a la computadora por el puerto serie RS232.
Pueden conectarse a la tarjeta sensores de tipo digital (botones, sensores pticos, sensores
de contacto) y de tipo analgico (resistencias variables, fotorresistencias, sensores de
temperatura). Los actuadores que pueden ser controlados por la tarjeta programable no
deben requerir ms de 1 Ampere, algunos de ellos son: relevadores, LEDs, pantallas de 7
segmentos, motores de corriente directa de baja potencia y cargas de corriente alterna
utilizando una interfaz externa de potencia. Adems puede utilizar un sensor y un actuador
que trabaje con el estndar industrial de 4-20 mA. Tiene una pantalla de cristal lquido para
mostrar resultados, condiciones de operacin o lo que el usuario quiera visualizar.
Existen sistemas comerciales de adquisicin de datos que pueden realizar la lectura de
varios sensores e interactuar con la computadora, pero estn limitadas nicamente a
transmitir los datos hacia sta, no permiten trabajar de forma independiente a la
computadora y tomar decisiones con respecto a los valores de los sensores conectados.
La tarjeta programable puede interactuar con programas comerciales de instrumentacin
como LabVIEW comparado con otros mdulos de adquisicin de datos que funcionan
solamente con el programa del fabricante.
Por su diseo modular, la tarjeta programable puede funcionar con cualquier
microcontrolador solamente sustituyendo la tarjeta de procesamiento, por lo que no se
requiere construir completamente la tarjeta programable para trabajar con otro
microcontrolador. Esto le da una caracterstica de escalabilidad y la posibilidad de ser
actualizable.
Es importante mencionar que en este trabajo se desarroll una tarjeta programable que
cumple con el objetivo principal de la tesis, que fue el disear y construir una tarjeta
programable y autnoma de adquisicin, procesamiento de datos y control con opcin de
conexin a la computadora o a otra tarjeta similar.
Adems de lograr todas las metas planteadas, incluyendo que el costo de los componentes
fue de $1,099.17 MN (ver anexo E), se obtuvieron los siguientes logros:
84
Captulo 7. Conclusiones
Trabajos futuros
Este trabajo de tesis abre la posibilidad de nuevos de proyectos de tesis para ampliar las
aplicaciones de la tarjeta, facilitar la utilizacin al usuario y facilitar el desarrollo de otros
trabajos de tesis. Algunos de los posibles trabajos futuros que involucren la tarjeta
programable son:
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
Referencias
REFERENCIAS
[1]
Jan Axelson. USB Complete. Everything you need to develop custom USB
peripherals. Lakeview Research, Estados Unidos de Amrica, 2001.
[2]
[3]
[4]
[5]
[6]
[7]
[8]
[9]
[10] Hen Chan. Electronic Circuitry EE303, Notas de clase. Mohawk College, Canada,
2000.
[11] AN10216-01 Manual de I2C de Philips.
[12] Brad Suppanz. Calculadora de ancho de pista para placa de circuito impreso.
Consultado en enero de 2005, http://www.geocities.com/suppanz/TraceWidth.htm
[13] Programa de monitoreo del puerto serie. Descargado en abril de 2005,
http://tapec.uv.es/edupic/test/Comunica.exe
[14] Buscador de hojas de datos de componentes electrnicos. Consultado en septiembre
de 2005, http://www.alldatasheet.com
[15] Resistor. Electrnica Prctica. Numero 203, Revistas profesionales, Espaa, 2004.
86
Referencias
[16] John Iovine. Pic Microcontroller Project Book. McGraw-Hill, Estados Unidos de
Amrica, 2004.
[17] Application Note. Thyristors & Triacs Ten golden rules for success in your
application.
[18] Reglas del concurso de robots de carreras de microbtica en Mxico. Consultado en
septiembre de 2005, http://www.microbotica.org/reglamenteo/carreras.pdf
87
C29
C43
R22
47K
LM7915C/TO220
OUT
R23
C34
C44
R24
470
R46
D8
470
R44
RA5
VCC
U9
LM7805C/TO220
IN
R25
J12
J11
J10
J9
J8
J7
VPP/MCLR#
RB3/PGM
VCC
2 RB7/PGD
4 RB6/PGC
6
ENT. PROG
1
3
5
JP3
JP1
CONECTOR A TARJETA DE uC
VCC
C7
C3
MAX232
C+
C1C2+
C2V+
V-
R1IN
R2IN
T1IN
T2IN
10uF/25V
1
3
4
5
2
6
13
8
11
10
U3
100uF/25V
C6
10uF/25V
C4
RC6
10uF/25V
C1
C2
RESET POR PC
R1OUT
R2OUT
T1OUT
T2OUT
330
R28
12
9
14
7
1N4148
RA5
AN0
AN1
AN2
AN3
D2
5V1
D3
330
R32
5
9
4
8
3
7
2
6
1
P1
R18
R11
R12
R16
R17
R15
R13
R14
RC7
R33
4.7
RC6
RC7
R7
R8
R9
R10
D0
D1
D2
1
3
5
7
9
11
13
2
4
6
8
10
12
14
JP4
OUT
470
470
R1
R2
R3
R4
R5
R6
VCC
2
1
B0
B1
B2
B3
B4
B5
B6
D0
D1
D2
D3
D4
D5
D6
D7
A4
C0
C1
C2
C5
J26
470
D7
D6
D5
D4
D3
C40
C39
C31
R27
R26
J6
U1
IN
C38
C30
1N4148
D6
D4
VCC1
J5
J4
VCC
C35
C33
OUT
J3
F1
1A
IN
J2
H1
J1
CON3
3
2
1
J27
H2
1
2
3
L1
A4
H3
1
2
3
L2
B0
H4
1
2
3
L3
B1
H5
GND
2
U6
LM7815C/TO220
GND
2
GND
1
H6
1
2
3
L5
B3
L4
B2
H7
1
2
3
H8
1
2
3
L6
B4
RC3
RC4
RE0
RE1
RE2
H9
1
2
3
L7
B5
L10
1
2
3
L8
B6
H12
1
2
3
L9
B7
H11
1
2
3
H10
C1
L11
C2
L12
C5
10K
R21
J18
J17
J16
J15
J14
J13
D7
470
R43
1
2
3
U2
B8
B7
B6
B5
B4
B3
B2
B1
2
4
6
8
10
12
14
74HC245
DIR
OE
A8
A7
A6
A5
A4
A3
A2
A1
RB0
HEADER 7X2
1
3
5
7
9
11
13
JP5
1
19
9
8
7
6
5
4
3
2
L13
C0
H13
47K
R42
H14
1
2
3
L14
D0
H15
1
2
3
B7
C28
R19
10K
820
VCC
R20
RE2
RE1
RE0
B0
B1
B2
B3
B4
B5
B6
B7
100 nF
11
12
13
14
15
16
17
18
L15
D1
H16
1
2
3
L16
D2
H17
1
2
3
VCC1
L17
D3
L2
C32
VCC
C5
D6
D4
D2
D0
B6
B4
B2
B0
C41
VCC
VCC
2
4
6
8
10
12
14
16
18
20
22
24
26
28
30
32
34
36
JP2
VAN
C9
1
9
D7
D5
D3
D1
B7
B5
B3
B1
1
2
J32
L293
1,2EN
3,4EN
1A
2A
3A
4A
U5
L293
1,2EN
3,4EN
1A
2A
3A
4A
1Y
2Y
3Y
4Y
100uF/25V
VCC1
1Y
2Y
3Y
4Y
J35
3
6
11
14
3
6
11
14
C47
VCC1
C11
VCC2
VCC2
C24
U4
C23
2
7
10
15
C4
RB0
A4
C2
B6
B7
A4
1
9
C1
2
C0
7
RB0 10
C5 15
100nF
C10
VAN
C36
SW4
HEADER 18X2
1
3
5
7
9
11
13
15
17
19
21
23
25
27
29
31
33
35
10K
J21
C42
C37
J20
0.5mH
R34
C3
L1
0.5mH
J19
RA5
L18
1
2
3
H18
D4
1
2
3
H19
D5
L19
1
2
3
H20
D6
L20
1
2
3
L21
D7
H21
8
7
6
5
1
2
3
4
1
2
3
2
4
6
8
10
12
14
16
18
20
22
24
26
28
30
32
34
36
38
40
8
VCC2
8
VCC2
1
2
3
1
2
3
1
3
5
7
9
11
13
15
17
19
21
23
25
27
29
31
33
35
37
39
J36
C12
C46
1
2
3
88
C16
VCC2
C13
C17
C15
C14
3
2
1
J25
3
2
1
J24
3
2
1
J23
3
2
1
J22
VCC
VAN
C18
C8
R36
2K2
R31
100nF
5
4
3
2
1
J34
5
4
3
2
1
J33
100nF
220
R47
VCC
C45
47K
R41
C19
100nF
C20
R37
2K2
R29
CON5
C25
6
10
13
12
C26
22nF 3
C21
10nF 2
C22
U7C
U7D
U7B
U7A
J45
J44
J43
J42
J41
J40
J39
J38
C3
C3
14
MCP6044
B7
4
3
2
1
1000uf/50v
B5
4
3
2
1
0.1uF
B4
4
3
2
1
1000uF/50v
B3
4
3
2
1
0.1uF
H21
H20
H19
H18
H17
H16
H15
H14
1
0.1uF
9
8
7
6
5
4
3
2
100uF/50v
0.1uF
H12
H11
H10
H13
H1
H2
H3
H4
H5
H6
H7
H8
H9
CON5
100uF/50v
L14
L15
L16
L17
L18
L19
L20
L21
L12
L11
L10
L13
L1
B2
4
3
2
1
0.1uF
L2
L3
L4
L5
L6
L7
L8
L9
B1
4
3
2
1
100uF/50v
C
B0
4
3
2
1
100uF/50v
C
C4
C3
RC3
RC4
J29
J31
C50
A0
A1
A2
U8
6
5
4
SCL
SDA
24FC512
U10
C5
J30
C48
100nF
C49
R30 1K5
C4
1
2
3
4
J28
5
VBUS
DD+
GND
6USB
I2C
1
2
J47
C4
VCC
SW DIP-3
SW5
SW3
A0 24FC512
A1
A2
SCL
SDA
100nF
4K7
VCC
C27
AN0
AN3
AN2
AN1
100nF
4K7
VCC
R48
R45
470
R38
470
R40
470
R39
470
R35
1
2
3
3
2
1
0.1uF
0.1uF
100uF/50v
1
2
3
100uF/50v
6
5
4
100uF/100v
1
2
3
Anexo A.
1
2
3
VCC
HEADER 20X2
2
4
6
8
10
12
14
16
18
20
22
24
26
28
30
32
34
36
38
40
1
3
5
7
9
11
13
15
17
19
21
23
25
27
29
31
33
35
37
39
U1
PIC18F452
RA0/AN0
RA1/AN1
RA2/AN2/VREFRA3/AN3/VREF+
RA4/TOCKI
RA5/AN4/SS#
MCLR/Vpp
RB0/INT
RB1
RB2
RB3PGM
VCC
RB4
RB5
RB6/PGC
VCC
RB7/PGD
RC0/T1OSI/T1CKI
RC1/T1OSO/CCP2
RC2/CCP1
RC3/SCK/SCL
RC4/SDI/SDA
RC5/SDO
RC6/TX/CK
OSC2/CLKOUT
RC7/RX/DT
RD0/PSP0
RD1/PSP1
OSC1/CLKIN
RD2/PSP2
RD3/PSP3
RD4/PSP4
RD5/PSP5
RD6/PSP6
RD7/PSP7
RE0/RD#/AN5
RE1/WR#/AN6
RE2/CS#/AN7
13
14
32
11
XTL
100 nF
100 nF
10 uF / 16V
22pF
C4
S1
C6
22pF
C5
C2
C1
VCC
2
1
89
JP1
2
3
4
5
6
7
33
34
35
36
37
38
39
40
15
16
17
18
23
24
25
26
19
20
21
22
27
28
29
30
8
9
10
SW1
100
R21
C3
10uF
1N4148
D1
R23
10K
-15VCC
+5VCC
2
4
6
8
10
12
14
HEADER 7X2
1
3
5
7
9
11
13
JP1
+15VCC
15
14
12
11
10
9
8
7
6
5
16
15
14
13
12
11
10
9
DAC0808
VR-
VR+
A8
A7
A6
A5
A4
A3
A2
A1
3K3
R1
3K3
IOUT
IOUT
COMP
U1
+5VCC
RCV420
1
2
3
4
5
6
7
8
33pF
C1
16
V+
- In
Rcv f B
CT
Rcv Out
+ In
Rcv Com
VRef In
Ref Com
Ref Out
NC1
Ref f B Ref Noise Red
NC2
Ref Trim
U2
13
V+
V3
10K
R4
+15VCC
-15VCC
R3 1K
-15VCC
4
5
7
1
90
-
+15VCC
LF351
U4
1
2
3
4
5
6
7
8
ENTRADA 4-20 mA
1
2
J1
U3
XTR110
+ Vcc
Source Res
Comm
Vref Force
Vref In
Gate Driv e
Vin1(10V)
SourceSense
Vin2(5V)
Vref Sense
Zero Adj1
Vref Adj
Zero Adj2
4mA Span
Zero Adj3
16mA Span
16
15
14
13
12
11
10
9
1 uF
C2
1 Q1
+15VCC
SALIDA 4-20 mA
1
2
3
MOSFET MTP2955
2
J2
R7
3K9
1
2
J6
1
2
J5
a
b
c
d
e
f
g
dp
JP1
2N3904
Q1
R6
220
D1
VCC
C5
B0
B1
B2
B3
LDR
470
1
R5
10K
R2
D2 D3 D4 D5 D6 D7 D8 D9
7
6
4
2
1
9
10
5
10K
R8
10K
R1
R4
B4
B5
B6
B7
7
1
2
6
4
5
3
74LS48
BI OA
RBI OB
LT OC
OD
A OE
B OF
C OG
D
U2
13
12
11
10
9
15
14
S0
S1
S2
S3
S4
S5
S6
1
2
3
C5
100n
1
2
3
VCC
1
2
3
5
6
7
VCC
a
b
c
d
e
f
g
dp
VREF
AOUT
B7
CON2
1
2
J7
2N3904
Q2
2
C4
47uF/16v
11
12
13
14
15
S0 7
S1 6
S2 4
S3 2
S4 1
S5 9
S6 10
S7 5
OSC
EXT
AGND
PCF8591
SDA
SCL
A0
A1
A2
AIN0
AIN1
AIN2
AIN3
JP2
9
10
S0 7
S1 6
S2 4
S3 2
S4 1
S5 9
S6 10
S7 5
C4
C3
AN3
1
2
3
4
U3
a
b
c
d
e
f
g
dp
JP3
LED
D27
A5
B6
2N3904
Q3
100n
C1
VAN
S0 7
S1 6
S2 4
S3 2
S4 1
S5 9
S6 10
S7 5
a
b
c
d
e
f
g
dp
JP4
10K
R9
3
8
2
B5
2N3904
Q4
470
S0 7
S1 6
S2 4
S3 2
S4 1
S5 9
S6 10
S7 5
R10
SW3
a
b
c
d
e
f
g
dp
JP5
2
3
4
5
6
7
8
9
D10
1
2
3
R3
10K
D26
SW4
1
D11
LM35/TO
B4
2N3904
Q5
SW6
D13
U1
SW7
D14
VS+ VOUT
SW8
D15
1
SW9
1k
B2
B3
B4
B5
B6
B7
D2
D3
D4
D5
D6
D7
B0
B1
D0
D1
VCC
B6
VCC1
R13
D16
R14
3K9
SW10
D17
R12
3K9
B4
B2
B0
C5
D6
D4
D2
D0
C3
A5
VCC
SW12
VAN
D24
AN3
SW13
1
3
5
7
9
11
13
15
17
19
21
23
25
27
29
31
33
35
D23
VCC1
SW14
2
4
6
8
10
12
14
16
18
20
22
24
26
28
30
32
34
36
JP6
D22
VCC
SW15
D21
J4
SW16
D20
VCC1
2
2
B5
B3
B1
D7
D5
D3
D1
C4
RB0
A4
A2
SW18
9
8
7
6
5
4
3
2
D18
A4
1
R15
1k
B7
470
R11
SW19
J3
3
8
3
1
SW5
D12
3
8
SW11
D25
SW17
D19
RB0
SW20
J2
3
8
91
8
3
J1
Anexo B.
Anexos
92
Anexos
93
Anexos
94
Anexos
Compo- Ubicanente
cin
C36
4C
C37
4C
C38
4B
C39
4C
C40
4C
C41
4C
C42
4C
C43
4A
C44
4B
C45
5D
C46
4C
C47
4D
C48
2D
C49
2D
C50
4D
D2
5B
D3
5A
D4
4C
D6
2D
D7
4C
D8
4B
F1
4A
J1
3C
J2
4C
J3
3C
J4
3C
J5
3C
J6
3C
J7
3C
J8
3C
J9
3C
J10
3C
J11
2C
J12
2C
Compo- Ubicanente
cin
J13
3C
J14
2C
J15
2C
J16
2C
J17
2C
J18
2C
J19
2C
J20
2C
J21
2C
J22
2D
J23
3D
J24
3D
J25
3D
J26
3B
J27
4A
J28
2D
J29
2C
J30
2D
J31
2D
J32
4A
J33
5D
J34
5D
J35
5C
J36
4C
J38
5D
J39
5C
J40
5C
J41
5C
J42
5B
J43
5B
J44
5A
J45
5A
J47
4D
JP1
3A
95
Compo- Ubicanente
cin
JP2
1A
JP3
2D
JP4
1C
JP5
1D
P1
5A
R1
3A
R2
3A
R3
3A
R4
3A
R5
2A
R6
2A
R7
2B
R8
2B
R9
2B
R10
2B
R11
2A
R12
2A
R13
2B
R14
2B
R15
2B
R16
2A
R17
2B
R18
2A
R19
1D
R20
1D
R21
2B
R22
2C
R23
3C
R24
2C
R25
2C
R26
3C
R27
2C
R28
5B
R29
2D
Compo- Ubicanente
cin
R30
2D
R31
3C
R32
5B
R33
5A
R34
5C
R35
3C
R36
3D
R37
3D
R38
3D
R39
3C
R40
3C
R41
3D
R42
3B
R43
4C
R44
4B
R45
4D
R46
4B
R47
5B
R48
4D
SW3
4D
SW4
5C
SW5
4D
U1
4B
U2
3B
U3
5B
U4
5D
U5
4D
U6
4B
U7
3D
U8
4D
U9
4B
U10
4D
Anexos
96
Anexos
97
Anexos
98
Anexos
99
Anexos
100
Anexos
101
Anexos
102
Anexos
103
Anexo C.
Anexos
Los programas de este anexo corresponden a los programas realizados para las pruebas
funcionales de la tarjeta programable. En la tabla C.1 se enlistan los programas as como la
prueba que realizan.
Tabla C.1 Programas de las pruebas de la tarjeta programable.
Nombre
Mdulo de entrada
Puerto B (E/S digitales)
E/S digitales
Puerto D (E/S digitales)
2
3
4
5
6
7
Entradas
analgicas
Potencia para
motores
Pantalla de
cristal lquido
(LCD)
Comunicacin
RS232
Comunicacin
I2 C
E/S de 4 - 20
mA
Mdulo de salida
Puerto D (E/S
digitales)
Puerto B (E/S
digitales)
Puerto B (E/S
digitales)
LCD
RS232
Memoria EEPROM
Programa
1.A
1.B
2
3
4
E/S de 4-20 mA
*
Puerto B (E/S
digitales)
E/S de 4-20 mA
5
6.A
6.B
7.A
7.B
* En estas pruebas los datos iniciales o de control son generados en el mdulo de procesamiento.
// PORTB entrada
// PORTD salida
while (1)
{
104
PORTD = ~PORTB;
Anexos
}
}
Programa 1.B Entradas/salidas digitales
#include <p18f452.h>
#pragma config OSC = HS
#pragma config BOR = OFF
#pragma config WDT = OFF
#pragma config LVP = OFF
// PORTB salida
// PORTD entrada
// PORTB = complemento a 1 de PORTD
105
Anexos
106
Anexos
PORTB - DATOS
RE0 - RS
RE1 - RW
RE2 - ENA
- DelayFor18TCY() provides a 18 Tcy delay
- DelayPORXLCD() provides at least 15ms delay
- DelayXLCD() provides at least 5ms delay
*/
void main(void)
{
ADCON1=0x02;
TRISB=0x00;
TRISE=0x00;
// Configura el LCD externo
RW=0;
RS=0; EN=1;
PORTB=0x38;
Delay1KTCYx(3);
EN=0;
Delay1KTCYx(3);
RS=0; EN=1;
PORTB=0x06;
Delay1KTCYx(3);
EN=0;
Delay1KTCYx(3);
//Mensaje fijo
RS=0; EN=1;
PORTB=0x0C;
Delay1KTCYx(3);
EN=0;
Delay1KTCYx(3);
//Enciende display
RS=1;
for(i=0;i<7;i++)
107
Anexos
{
EN=1;
PORTB=mensaje[i];
Delay1KTCYx(3);
EN=0;
Delay1KTCYx(3);
}
RS=0;Delay10TCYx(1);EN=1;
PORTB=0xC0;
Delay10TCYx(3);
EN=0;
Delay10TCYx(3);
//Cambia de rengln
RS=1;
for(i=0;i<11;i++)
{
EN=1;
PORTB=mensaje2[i];
Delay1KTCYx(3);
EN=0;
Delay1KTCYx(3);
}
while(1);
}
Programa 5 Comunicacin RS232
#include <p18f452.h>
#include <usart.h>
#include <delays.h>
int A1=0;
void main(void)
{
// Configuracion USART
OpenUSART( USART_TX_INT_OFF &
USART_RX_INT_OFF &
USART_ASYNCH_MODE &
USART_EIGHT_BIT &
USART_CONT_RX &
USART_BRGH_HIGH,
38 );
//BGR = 19200
TRISD=0xFF;LATD=0x00;
while(1)
{
Delay10KTCYx(0);
A1=PORTD+0x30;
WriteUSART(A1); //Enva el valor de PORTD
108
Anexos
if(TXSTAbits.TRMT == 1)
break;
}
CloseUSART();
}
Programa 6.A Comunicacin I2C (Escritura)
#include <p18f452.h>
#include <i2c.h>
#include <delays.h>
#pragma config OSC = HS
#pragma config BOR = OFF
#pragma config WDT = OFF
#pragma config LVP = OFF
void main(void)
{
OpenI2C(MASTER, SLEW_OFF);// Inicializa el modulo I2C
SSPADD = 29;
// 400kHz Baud clock(6.5) @12MHz
// 100kHz Baud clock(29) @12MHz
SSPCON2=0x00;
TRISC=0x18;
PORTD=0;LATD=0;TRISD=0;
StartI2C();
//Escribe en la memoria EEPROM
IdleI2C();
WriteI2C(0xA0);
IdleI2C();
WriteI2C(0x00);
IdleI2C();
WriteI2C(0x00);
IdleI2C();
WriteI2C(0xA5);
IdleI2C();
WriteI2C(0x00);
IdleI2C();
StopI2C();
IdleI2C();
}
Programa 6.B Comunicacin I2C (Lectura)
#include <p18f452.h>
#include <i2c.h>
#include <delays.h>
#pragma config OSC = HS
#pragma config BOR = OFF
#pragma config WDT = OFF
#pragma config LVP = OFF
109
Anexos
void main(void)
{
unsigned char buffer[4];
OpenI2C(MASTER, SLEW_OFF);// Inicializa el modulo I2C
SSPADD = 29;
// 400kHz Baud clock(6.5) @12MHz
// 100kHz Baud clock(29) @12MHz
SSPCON2=0x00;
TRISC=0x18;
PORTD=0;LATD=0;TRISD=0;
SSPCON2bits.SEN = 1;
while(SSPCON2bits.SEN);
SSPCON2bits.ACKDT = 0;
PIR1bits.SSPIF = 0;
SSPBUF = 0xA0;
de escritura
while(!PIR1bits.SSPIF);
PIR1bits.SSPIF = 0;
// espera la interrupcin
// entonces limpia la bandera.
SSPBUF = 0x00;
while(!PIR1bits.SSPIF);
PIR1bits.SSPIF = 0;
SSPBUF = 0x00;
while(!PIR1bits.SSPIF);
PIR1bits.SSPIF = 0;
SSPCON2bits.RSEN = 1;
while(SSPCON2bits.RSEN);
// 10100000 - Comando
PIR1bits.SSPIF = 0;
SSPBUF = 0xA1;
de lectura
while(!PIR1bits.SSPIF);
PIR1bits.SSPIF = 0;
// 10100001 - comando
// espera por la interrupcin
// entonces limpia la bandera.
SSPCON2bits.RCEN = 1;
while(!SSPSTATbits.BF);
buffer[0] = SSPBUF;
SSPCON2bits.ACKEN = 1;
while(SSPCON2bits.ACKEN);
ACK termine
// empieza a recibir
// espera por el dato
// y lo obtiene
// empieza la secuencia de ACK
// espera a que la secuencia
SSPCON2bits.RCEN = 1;
while(!SSPSTATbits.BF);
buffer[1] = SSPBUF;
SSPCON2bits.ACKEN = 1;
// Empieza a recibir
// espera por el dato
// y lo obtiene
// empieza la secuencia de ACK
110
Anexos
while(SSPCON2bits.ACKEN);
ACK termine
SSPCON2bits.RCEN = 1;
while(!SSPSTATbits.BF);
buffer[2] = SSPBUF;
SSPCON2bits.ACKEN = 1;
while(SSPCON2bits.ACKEN);
ACK termine
// Empieza a recibir
// espera por el dato
// y lo obtiene
// empieza la secuencia de ACK
// espera a que la secuencia
SSPCON2bits.RCEN = 1;
while(!SSPSTATbits.BF);
buffer[3] = SSPBUF;
SSPCON2bits.ACKDT = 1;
ultimo byte
SSPCON2bits.ACKEN = 1;
while(SSPCON2bits.ACKEN);
ACK termine
// Empieza a recibir
// espera por el dato
// y lo obtiene
// sin reconocimiento para el
// inicia secuencia ACK
// espera a que la secuencia
SSPCON2bits.PEN = 1;
PORTD=buffer[0];
while(1);
#include <p18f452.h>
#include <timers.h>
#pragma config OSC = HS
#pragma config BOR = OFF
#pragma config WDT = OFF
#pragma config LVP = OFF
void main (void)
{
PORTC=0;LATC=0;TRISC=0x00; // PORTC salida
PORTD=0;LATD=0;TRISD=0x00; // PORTD salida
PORTB=0;LATB=0;TRISB=0x00; // PORTB salida
INTCON=0;
// Deshabilita las interrupciones
PORTA=0;LATA=0;TRISA=0xEF;
// RA4 SALIDA
INTCON2=0x80;
OpenADC(ADC_FOSC_RC & ADC_LEFT_JUST &
ADC_5ANA_0REF,ADC_CH4 & ADC_INT_OFF);
while(1)
{
ConvertADC();
// Inicia la conversin
111
Anexos
#include <p18f452.h>
#include <timers.h>
#include <delays.h>
#pragma config OSC = HS
#pragma config BOR = OFF
#pragma config WDT = OFF
#pragma config LVP = OFF
void off (void)
{
PORTD=0x00;
}
void on (void)
{
PORTD=0xFF;
}
void main (void)
{
PORTD = 0;LATD = 0;
INTCON2 = 0x80;
TRISD = 0x00;
// PORTD salida
while (1)
{
on();
Delay10KTCYx(0);Delay10KTCYx(0);Delay10KTCYx(0);
Delay10KTCYx(0);Delay10KTCYx(0);Delay10KTCYx(0);
Delay10KTCYx(0);Delay10KTCYx(0);Delay10KTCYx(0);
Delay10KTCYx(0);Delay10KTCYx(0);Delay10KTCYx(0);
off();
Delay10KTCYx(0);Delay10KTCYx(0);Delay10KTCYx(0);
Delay10KTCYx(0);Delay10KTCYx(0);Delay10KTCYx(0);
Delay10KTCYx(0);Delay10KTCYx(0);Delay10KTCYx(0);
Delay10KTCYx(0);Delay10KTCYx(0);Delay10KTCYx(0);
}
}
112
Anexos
Anexo D.
Anexo D.1.
lnea
113
Anexo D.2.
lnea
Anexos
void apagado(void)
{
PORTCbits.RC2=0;
PORTBbits.RB6=0;
PORTBbits.RB7=0;
PORTAbits.RA4=0;
}
// Desactiva los
// motores
// izquierdo y
// derecho
114
Anexos
115
Anexos
Anexo D.3. Diagrama de flujo del programa de control del modelo a escala de la
plataforma de seguimiento solar
busqueda
baja
Inicio
refsube
D2=0
Portd=0
D3=0
B7=0
arranqe
flgd,2=0
Intcon
refsube
Porta,5=1
B5=1
flgd,2=1
arranqe
iz
home
Intcon=b10001000
Flg lim=0
D3=1
home
D1=
tmr0=0
B5=1
Portd=0
izq
flga=0
flg ciclsbusq=0
home3
siguelo
izq
D1=0
obj=0
D1=
Flgb=0
home3
home3
Flgc=0
subelo
izq2
Flgd=0
Portb,4=0
flgB,4=0
flgB,4=1
D1=1
Portd=0
trampI=0
trampD=0
home2
Flgd,1=1
bajalo
Ciclos busq=8
busqueda
Portb,5=0
flgB,5=1
flgB,5=0
Intcon=b10101000
flgB,6=0
opcion=b10100001
Tmr0=200
busqueda
Portd=0
Freno horz
D0=1
Portb,7=0
flgB,7=1
flg subelo=0
3 seg
Portb,6=0
flgB,6=1
subelo
Pasos=4
flgB,7=0
Intcon=b10001000
busqueda
D2=
home3
tmr0=0
Horz=1
Flg subelo=1
Flg bajalo=0
busqueda
reposo
Sube
Intcon=0
frenovert
Portd=0
bajalo
flg bajalo=0
home2
tmr0=0
B5=1
sleep
busqueda
fin
Portd=0
Freno horz
izq2
b10001000
1
D3=1
Flg subelo=0
Flg bajalo=1
116
busqueda
Anexos
siguelo
chk13DI
Intcon=b10001000
trpD=0
Cent1=0
chktrpI/4
Frenovert/horz
trpI=0
Chkcent1/2
Chkcent4/trpD
Flgsiguelo=1
Flg_obj_perd=0
ssiguelo
Flgbaj=0
Flg2DB=0
Cent2=0
Cent3=0
Obj=1
Chkcent3/trpD
chkcenti
Flg2IB=0
Flg_obj_perd=1
ssiguelo
CHK13DI
cent3=0
Chkcent2/trpI
Flga=0
Flgc=0
Flgc,2=1
Flg_obj_perd=0
Flg2DS=0
dersub
trpD=0
2dersub
trpI=0
sube
Chkcent3/4
ssiguelo
Intcon=b
Chkcent3/4
Cent4=0
Cent3=0
ssiguelo
Chkcent1/trpI
dersub
Flg2IS=0
FlgDS=0
chkcenti
ssiguelo
Flg_obj_perd=1
cent4=0
chk24DI
flg limite=0
izqsub
Cent2=0
home
Chkcent3/trpD
B4=0
chk24DI
B5=0
Flgsub=0
Cent1=0
Chkcent4/trpD
sub
FlgIS=0
Flgsub=0
Flg2IB=0
ssiguelo
Cent4=0
Portd=0
chktrpI/4
Intcon=b10001000
Flg2IS=0
Flga=0
Flgc=0
trpD=0
Flgsiguelo=1
baj
Flgsub=1
flg2DB=0
2
trpI=0
D2=1
ssiguelo
sub
ssiguelo
117
chktrpI/3
trpI=0
flg2DS=0
trampI=0
2izqsub
chktrpI/3
baja
Frenovert/horz
izqsub
Chkcent4/trpD
Anexos
Chkcent3/trpD
Chkcent2/trpI
Chkcent1/trpI
Cent1=0
Cent4=0
Cent3=0
Cent2=0
Cent1=0
Derbaj
3derbaj
3izqbaj
3izqbaj
3derbaj
Flg3DB=0
Flg3IB=0
Flg3IB=0
Flg3DB=0
trpD=0
trpD=0
trpI=0
trpI=0
izqbaj
Derbaj
izqbaj
dersub
izqsub
FlgIB=0
FlgDB=0
FlgIB=0
2derbaj
2izqbaj
2dersub
2izqsub
deron=100
izqon=100
deron=100
izqon=100
der off=10
Izq off=10
deroff=10
Izq off=10
Flg velizq=0
Flg velizq=1
Flg velizq=0
Flg velizq=1
Flg 2DB=0
Flg 2IB=0
Flg 2DS=0
Flg 2IS=0
Flgc=0
ssiguelo
ssiguelo
ssiguelo
ssiguelo
Flgsiguelo=1
portd=0
portd=0
portd=0
portd=0
Flgbaj=1
Flga=0
Flga=0
Flga=0
Flga=0
D3=1
Flgc=0
Flgc=0
Flgc=0
Flgc=0
Flgc,2=1
Flgc,2=1
Flgc,2=1
Flgc,2=1
Flg 2DB=1
Flg 2IB=1
Flg 2DS=1
Flg 2IS=1
Intcon=b10101000
Intcon=b10101000
Intcon=b10101000
Intcon=b10101000
Opcin=b10000111
Opcin=b10000111
Opcin=b10000111
Opcin=b10000111
Tmr0=100
Tmr0=100
Tmr0=100
Tmr0=100
B4=0
B5=0
B4=0
B5=0
sigue2DB
sigue2IB
sigue2DS
sigue2IS
D0=1
D1=1
D0=1
D1=1
D3=1
D3=1
D2=1
D2=1
ssiguelo
ssiguelo
ssiguelo
ssiguelo
FlgDB=0
cent2=0
baj
Flgbaj=0
ssiguelo
Intcon=b10001000
FlgIS=0
FlgDS=0
2izqsub
2dersub
Portd=0
Flga=0
ssiguelo
sigue2DB
sigue2IB
sigue2DS
sigue2IS
Flg 2DB=0
Flg 2IB=0
Flg 2DS=0
Flg 2IS=0
Intcon=b10001000
Intcon=b10001000
Intcon=b10001000
Intcon=b10001000
ssiguelo
ssiguelo
118
ssiguelo
ssiguelo
izqbaja
Anexos
dersube
3derbaja
derbaja
3izqbaja
izqon=100
izqon=100
deron=100
deron=100
deron=100
izqon=100
Izqoff=3
Izqoff=3
deroff=3
deroff=3
deroff=20
Izqoff=20
Flg velizq=1
Flg velizq=1
Flg velizq=0
Flg velizq=0
Flg velizq=0
Flg velizq=1
Flg IB=0
Flg IS=0
Flg DS=0
Flg DB=0
Flg 3DB=0
Flg 3IB=0
ssiguelo
ssiguelo
ssiguelo
ssiguelo
ssiguelo
ssiguelo
portd=0
portd=0
portd=0
portd=0
portd=0
portd=0
Flga=0
Flga=0
Flga=0
Flga=0
Flga=0
Flga=0
Flgc=
Flgc=0
Flgc=0
Flgc=0
Flgc=0
Flgc=0
Flgc,2=1
Flgc,2=1
Flgc,2=1
Flgc,2=1
Flgc,2=1
Flgc,2=1
Flg IB=1
Flg IS=1
Flg DS=1
Flg DB=1
Flg 3DB=1
Flg 3IB=1
Intcon=b10101000
Intcon=b10101000
Intcon=b10101000
Intcon=b10101000
Intcon=b10101000
Intcon=b10101000
Opcin=b10000111
Opcin=b10000111
Opcin=b10000111 Opcin=b10000111
Opcin=b10000111
Opcin=b10000111
Tmr0=100
Tmr0=100
Tmr0=100
Tmr0=100
B5=0
B5=0
B4=0
B5=0
sigueIB
sigueIS
sigue3DB
sigue3IB
D1=1
D1=1
D3=1
D2=1
ssiguelo
ssiguelo
sigueIS
sigueIB
Tmr0=100
Tmr0=100
B4=0
B4=0
sigueDS
sigueDB
D0=1
D0=1
D0=1
D1=1
D2=1
D3=1
D3=1
D3=1
ssiguelo
ssiguelo
ssiguelo
ssiguelo
sigueDB
sigue3DB
sigueDS
sigue3IB
Flg IB=0
Flg IS=0
Flg DS=0
Flg DB=0
Flg 3DB=0
Flg 3IB=0
Intcon=b10001000
Intcon=b10001000
Intcon=b10001000
Intcon=b10001000
Intcon=b10001000
Intcon=b10001000
ssiguelo
ssiguelo
ssiguelo
119
ssiguelo
ssiguelo
ssiguelo
chkgiro
Chk flg B5
flgsiguelo=0
Flgsigelo=1
velgirohorz
norebot
frenovert
B4=0
Chk flg B4
Flg B4=0
Anexos
Intcon,2=0
Tmr0=200
Flg B4=1
derecha
offlagb4
conti1
velgirohorz
Pasos-=0
Intcon,0=0
Flg velizq=0
bajar
Flg B5=0
velizq
Flg B0=0
conti2
Flg on/off=0
Flg B5=1
Chk flg B5
retfie
offlagb5
conti2
Flg B6=0
Flg on/off=0
Flg ciclosbusq=1
retfie
retfie
D1=1
Flg on/off=0
Tmr0=izqon
B7=0
subir
D2=1
Conti_D
Flg B0=0
decr
Pasos-=0
Intcon,2=0
Intcon=b10001000
retfie
retfie
retfie
subir
Tmr0=izqoff
Flg B0=1
Pasos=4
D2=1
Conti_I
Chk flg B4
Flg B0=0
Flg B7=0
Flg B4=0
decr
offlagb7
conti1
Pasos-=0
retfie
derecha
frenoh
Intcon,2=0
subir
Flg B4=1
chkgiro
Flg B0=1
Flgsiguelo=0
Intcon,0=0
retfie
retfie
para
Intcon,0=0
Intcon,2=0
D3=1
D1=0
Flg on/off=1
On izq
bajar
retfie
Conti_I
Tmr0=deron
Intcon,2=0
Chk flg B7
velizq
ciclsbusq-=0
On izq
offlagb6
conti3
retfie
retfie
para
On der
B6=0
Chk flg B6
D0=0
Tmr0=deroff
retfie
Intcon,2=0
D3=1
Intcon,2=0
Flgsiguelo=0
Flg on/off=0
On der
Flg on/off=1
frenoh
D0=1
Flg B5=0
Pasos=4
Flgposini=1
D1=1
B5=0
decr
Pasos=4
para
D2=1
retfie
ciclsbusq-=0
Conti_D
Flg ciclosbusq=1
retfie
120
D0=1
retfie
Anexos
Flg B6=0
offlagb4
refres
Chk flg B7
Chk flg B6
Flg B7=0
Intcon,0=0
retfie
Flg B4=0
Intcon,0=0
refres
conti3
retfie
Intcon,0=0
Intcon,0=0
Flg B6=1
Flg B7=1
Flg B5=0
Intcon,2=0
Intcon,2=0
Intcon,0=0
Tmr0=
Tmr0=
retfie
Flgposini=1
Flgposini=1
retfie
retfie
portd=0
portd=0
Intcon=b10001000
Intcon=b10001000
Flg limite=1
Flg limite=1
retfie
retfie
offlagb5
offlagb6
Flg B6=0
Intcon,0=0
Intcon,2=0
Tmr0=
retfie
offlagb7
Flg B7=0
posinis
posinib
Portd,2=0
Portd,3=1
retfie
Portd,3=0
Intcon,0=0
Portd,2=1
Intcon,2=0
retfie
Tmr0=
retfie
121
frenovert
Cont1=2
c12
Cont2=100
c11
portD=b00100
frenohorz
portD=b00001
portD=b00101
c15
nop
nop
nop
nop
nop
nop
Cont3=80
Cont3=80
c5
Conta3=250
Conta3-=0
c15
c1
c14
Cont3-=0
Cont3-=0
c5
c1
portD=b00010
portD=b01010
Cont3=80
Cont3=80
Conta1-=0
portD=b01000
Cont3=80
c10
Conta2=250
c14
c3
c6
c13
Retlw 0
c2
Cont3-=0
Cont3-=0
c6
c2
norebot
c23
Cont2-=0
c11
Cont1-=0
c12
portd=0
return
Conta1=1
Conta2-=0
c9
Cont3-=0
c13
Cont2=100
c7
Cont3=80
c10
c4
Cont2=100
nop
Tresseg
Cont1=2
c8
nop
Cont3-=0
Frenohorz/vert
Cont1=20
nop
c9
Anexos
Conta1=2
Conta2=100
Cont2-=0
Cont2-=0
c24
c7
c3
c25
Conta3=100
Conta3-=0
Cont1-=0
Cont1-=0
c8
c4
portd=0
portd=0
return
return
c25
Conta2-=0
c24
Conta1-=0
c23
Retlw 0
122
Anexos
flga
FLG 2DB Bandera que indica: La placa colectora se mueve con velocidad a la derecha dos veces mayor a la velocidad con que baja
FLG 2IB Bandera que indica: La placa colectora se mueve con velocidad a la izquierda dos veces mayor a la velocidad con que baja
FLG 2DS Bandera que indica: La placa colectora se mueve con velocidad a la derecha dos veces mayor a la velocidad con que sube
FLG 2IS Bandera que indica: La placa colectora se mueve con velocidad a la izquierda dos veces mayor a la velocidad con que sube
FLG DB Bandera que indica: La placa colectora se mueve con velocidad a la derecha igual a la velocidad con que baja
FLG IB Bandera que indica: La placa colectora se mueve con velocidad a la izquierda igual a la velocidad con que baja
FLG 3DB Bandera que indica: La placa colectora se mueve con velocidad a la derecha tres veces mayor a la velocidad con que baja
FLG 3IB Bandera que indica: La placa colectora se mueve con velocidad a la izquierda tres veces mayor a la velocidad con que baja
flgb
0
1
2
3
4
5
6
7
FLG INCR/DECR ALTURA. Bandera que indica: 0 = sube placa colectora o 1 = baja placa colectora
FLG LMITE. Bandera que indica: que en la etapa de seguimiento se ha llegado a algn lmite de giro vertical
FLG OBJ PERD. Bandera que indica: sensor principal ha dejado de sensar luz
FLG CICLOS DE BUSQ. Bandera que indica: ya se realizaron el nmero de barridos de bsqueda
FLG DERECHA. Bandera a la que se le asigna el estado del interruptor de lmite derecho
FLG IZQUIERDA. Bandera a la que se le asigna el estado del interruptor de lmite izquierdo
FLG ARRIBA. Bandera a la que se le asigna el estado del interruptor de lmite superior
FLG ABAJO. Bandera a la que se le asigna el estado del interruptor de lmite inferior
flgc
0
1
2
3
4
5
6
7
FLG SUBELO. Bandera que indica: girar hacia arriba 2.5 la placa colectora (en la etapa de bsqueda)
FLG BAJALO. Bandera que indica: girar hacia abajo 2.5 la placa colectora (en la etapa de bsqueda)
FLG SIGELO. Bandera que indica: que el programa se encuentra en la etapa de bsqueda
FLG ON/OFF. Bandera que se emplea para generar el ancho de pulso modulado, para ajustar la velocidad de giro horizontal
FLG SUB. Bandera que indica: que la placa colectora esta subiendo (en la etapa de seguimiento)
FLG BAJ. Bandera que indica: que la placa colectora esta bajando (en la etapa de seguimiento)
FLG DS. Bandera que indica: La placa colectora se mueve con velocidad a la derecha igual a la velocidad con que sube
FLG IS. Bandera que indica: La placa colectora se mueve con velocidad a la izquierda igual a la velocidad con que sube
flgd
0
1
2
3
4
5
6
7
0
1
2
3
4
5
6
7
FLG VEL IZQ. Bandera que indica: 1= placa colectora gira a la izquierda, 0= placa colectora gira a la derecha
FLG POS INI. Bandera que indica: que el programa se encuentra en la etapa de posicionamiento inicial de la planta
FLG SUBE INI. Bandera que indica: 0= sube placa colectora, 1= baja placa colectora (etapa de posicionamiento inicial)
No empleada
No empleada
No empleada
No empleada
No empleada
123
Anexos
PORT A
No empleada
No empleada
No empleada
No empleada
Entrada de pulsos que provienen del encoder
Arranque del sistema
No empleada
No empleada
No empleada
PORT B
0
1
2
3
4
5
6
7
PORT D
0
1
2
3
4
5
6
7
0
1
2
3
4
5
6
7
124
adcon1
intcon
opcion
estado
tmr0
porta
portb
portd
trisa
trisb
trisd
conta1
conta2
conta3
cont1
cont2
cont3
flga
flgb
flgc
flgd
deron
deroff
izqon
izqoff
pasos
cbusq
equ
equ
equ
equ
equ
equ
equ
equ
equ
equ
equ
equ
equ
equ
equ
equ
equ
equ
equ
equ
equ
equ
equ
equ
equ
equ
equ
9fh
0bh
81h
03h
01h
05h
06h
08h
85h
86h
88h
20h
21h
22h
23h
24h
25h
26h
27h
28h
29h
2ah
2bh
2ch
2dh
2eh
2fh
Anexos
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
onder
onizq
chflgb5
velgirh
velizq
chflgb4
para
decr
retfie
btfsc
goto
call
bcf
movlw
movwf
btfss
goto
bsf
retfie
bsf
bcf
bcf
movf
movwf
retfie
bsf
bcf
bcf
movf
movwf
retfie
bcf
btfsc
goto
bsf
btfss
retfie
call
btfsc
goto
decfsz
goto
bsf
retfie
btfsc
goto
btfsc
goto
bcf
bsf
bcf
movf
movwf
retfie
btfsc
goto
bcf
bsf
bcf
movf
movwf
retfie
bcf
btfsc
goto
call
bsf
btfsc
goto
decfsz
goto
bsf
retfie
movlw
movwf
retfie
decfsz
goto
Anexos
126
flgb,0
Anexos
.4
pasos
portd,3
127
Anexos
clrf
tmr0
; Limpia registro tmr0
retfie
; Retorno de la rutina que atiende la interrupcin, al programa principal
;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
inicio
;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
; Configuracin de puertos
;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
bsf
estado,5
; Se ubica en el
bcf
estado,6
; banco uno
movlw
b'00000111'
; Se configura el microcontrolador para que todos
movwf
adcon1
; sus canales operen como entradas o salidas digitales
movlw
b'00111100'
; Se configura el puerto A para que las terminales 0 y 1 sean
movwf
trisa
; salidas y las dems sean entradas
movlw
0ffh
; Se configura el puerto B para que todas sus terminales sean
movwf
trisb
; entradas
movlw
b'11110000'
; Se configura el puerto D para que sus primeras cuatro terminales
movwf
trisd
; sean salidas y las restantes sean salidas
bcf
estado,5
; se pasa al banco cero
;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
;
programa principal
;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
clrf
portd
; Se ponen todas las salidas a cero
;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
;
ETAPA DE ARRANQUE
;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
arranqe btfss
porta,5
portb,4
onflgb4
flgb,4
portb,5
onflgb5
flgb,5
portb,6
onflgb6
flgb,6
flgd,2
portb,7
onflgb7
flgb,7
home3
bsf
goto
bsf
goto
bsf
bsf
goto
bsf
flgb,4
s1
flgb,5
s2
flgb,6
flgd,2
s3
flgb,7
s1
s2
s3
onflgb4
onflgb5
onflgb6
onflgb7
A cada interruptor de
lmite de sobregiro le
corresponde
una
bandera, la cual se
debe ajustar al estado
que
tenga
su
correspondiente
interruptor. Esto es:
Si el interruptor de
lmite esta cerrado, su
bandera se pondr a
1
Si el interruptor de
lmite esta abierto, su
bandera se pondr a
0
;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
;
ETAPA DE POSICIONAMIENTO INICIAL DE LA PLANTA
;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
home3
clrf
btfss
goto
tmr0
; Limpia el registro tmr0 (temporizador)
portb,3 ; Checa interruptor de posicin horizontal de placa colectora, si esta activado brinca la
siguiente instruccin
sube
; Salto a etiqueta sube
128
call
clrf
btfss
goto
clrf
bsf
frenov
tmr0
portb,5
izq2
portd
flgd,1
Anexos
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
refsube
izq
izq2
sigelo
ssigelo
chcenti
goto
bcf
goto
bcf
bcf
btfss
goto
bcf
goto
bsf
goto
bsf
goto
movlw
movwf
call
bsf
bcf
btfss
goto
btfss
goto
movlw
movwf
call
clrf
clrf
bsf
bcf
goto
bsf
btfsc
goto
btfsc
goto
btfsc
goto
btfsc
goto
bcf
btfsc
goto
bcf
btfsc
goto
bcf
btfsc
goto
bcf
btfsc
goto
bcf
btfsc
goto
bcf
goto
chk24di btfsc
goto
bcf
btfsc
goto
bcf
btfsc
goto
btfsc
goto
Anexos
130
chtiyc4
goto
goto
btfsc
goto
goto
chtiyc3 btfsc
goto
goto
chkc3_4 btfsc
goto
bcf
btfsc
goto
bcf
sub
btfsc
goto
clrf
movlw
movwf
clrf
clrf
bsf
bsf
bsf
goto
chkc1_2 btfsc
goto
bcf
btfsc
goto
bcf
baj
btfsc
goto
movlw
movwf
clrf
clrf
clrf
bsf
bsf
bsf
goto
chkc4td btfsc
goto
bcf
btfsc
goto
bcf
movlw
movwf
movlw
movwf
bcf
btfsc
goto
clrf
clrf
clrf
Anexos
131
Anexos
flgc,2
; Activa bandera sigelo
flga,0
; Activa bandera 2DB
b'10101000'
; Se activan interrupcin por cambio de estado en puerto B e interrupcin
intcon
; por saturacin del temporizador tmr0
estado,5
; Cambio al banco 1
b'10000111'
; Se asigna un divisor de frecuencia de 1:256
opcion ; al temporizador tmr0
estado,5 ; cambio al banco 0
.100
; Se inicia el tmr0 con un valor de 100
tmr0
; igual al valor cargado la variable deron
portb,4 ; Checa interruptor de limite derecho. Si esta desactivado se produce salto de instruccin
sige2db ; Salto a etiqueta sige2db
portd,0 ; se activa giro a la derecha
portd,3 ; se activa giro hacia abajo
sguelo ; Salto a la etiqueta sigelo
flga,0
; Limpia bandera 2DB
b'10001000'
; Se activa solo interrupcin por
intcon
; cambio de estado en el puerto B
sguelo ; Salto a la etiqueta sigelo
portd,6 ; Checa sensor 3. Si esta desactivado se produce salto de instruccin
tizqbaj
; Salto a la etiqueta tizqbaj
flga,7
; Limpia bandera 3IB
portb,2 ;Checa grupo derecho de sensores. Si esta desactivado se produce salto de instruccin
izqbaj
; salto a etiqueta izqbaj
flga,5
; Limpia bandera IB
.100
; Carga la variable izqon=100 y
izqon
; la variable izqoff =10 para modular,
.10
; el ancho de pulso que regula a
izqoff
; una velocidad horizontal media
flgd,0
; Activa bandera vel izq
flga,1
; Checa bandera 2IB. Si esta desactivado se produce salto de instruccin
sguelo ; Salto a la etiqueta sigelo
portd
; Limpia puerto D
flga
; Limpia registro de banderas flga
flgc
; Limpia registro de banderas flgc
flgc,2
; Se activa bandera sigelo
flga,1
; Se activa bandera 2IB
b'10101000'
; Se activan interrupcion por cambio de estado en
intcon
; puerto B e interrupcin por saturacin del temporizador tmr0
estado,5
; Cambio al banco 1
b'10000111'
; Se ajusta eldivisor de frecuencias de 1:256
opcion
; y se le asigna al tmr0
estado,5 ; Se cambia al banco 0
.100
; Se carga el tmr0 con el mismo
tmr0
; valor que se carga la variable izqon
portb,5 ; Checa interruptor de limite izquierdo. Si esta desactivado se produce salto de
instruccin
sige2ib ; Salto a la etiqueta sige2ib
portd,1 ; Se activa giro a la izquierda
portd,3 ; Se activa giro hacia abajo
ssigelo ; Salto a la etiqueta ssigelo
flga,1
; Se limpia bandera 2IB
b'10001000'
; Solo se queda activada la interrupcion
intcon
; por cambio de estadel del Puerto B
ssigelo ; Salto a la etiqueta ssigelo
portd,5 ; Checa el sensor 2. Si esta desactivado se produce salto de instruccin
tizqbaj
; Salto a la etqiueta tizqbaj
flga,7
; Limpia bandera 3IB
portb,1 ; Checa grupo izqueirdo de sensores. Si esta desactivado se produce salto de instruccin
dersub ; Salto a la etiqueta dersub
flgc,6
; Limpia bandera DS
.100
; Carga la variable deron=100 y la
deron
; variable deroff=10para modular
.10
; el ancho de pulso que regula a
deroff
; una velocidad horizontal media
flgd,0
; Limpia bandera vel izq
flga,2
; Checa bandera 2DS. Si esta desactivada se produce salto de instruccin
ssigelo ; Salto a la etiqueta ssigelo
portd
; Limpia Puerto D
flga
; Limpia bandera flga
flgc
; Limpia bandera flgc
flgc,2
; Activa bandera sigelo
132
sige2is
izqbaj
goto
bsf
bsf
goto
bcf
movlw
movwf
goto
movlw
movwf
movlw
movwf
bsf
btfsc
goto
clrf
clrf
clrf
bsf
bsf
movlw
movwf
bsf
movlw
movwf
Anexos
flga,2
; Activa bandera 2DS
b'10101000'
; Se activan interrupcin por cambio de estado en Puerto B e
intcon
; interrupcin por desbordamiento del temporizador tmr0
estado,5
; se pasa al banco 1
b'10000111'
; Se ajusta divisor de frecuencia de 1:256 y
opcion ; se le asigna al tmr0
estado,5 ; Se pasa al banco 0
.100
; Se carga el tmr0 con el mismo valor que
tmr0
; se cargo la variable deron
portb,4 ; Checa el interruptor de limite derecho. Si esta desactivado se produce salto de
instruccin
sige2ds ; Salto a la etiqueta sige2ds
portd,0 ; Se active giro a la dereha
portd,2 ; Se active giro hacia arriba
sguelo ; Salto a la etiqueta sigelo
flga,2
; Limpia bandera 2DS
b'10001000'
; Se activa solo la interrupcion por cambio de
intcon
; estado del puerto B
sguelo ; Salto a la etiqueta sigelo
portd,4 ; Checa sensor 1. Si esta desactivado se produce salto de instruccin
tderbaj ; Salto a etiqueta tderbaj
flga,6
; limpia bandera 3DB
portb,1 ; Checa grupo izquierdo de sensores. Si esta desactivado se produce salto de instruccin
izqsub
; Salto a la eiqueta izqdub
flgc,7
; Limpia IS
.100
; Se carga la variable izqon=100 y la
izqon
; variable izqoff=10, para modular el ancho
.10
; de los pulsos que regulan a un valor medio
izqoff
; la velocidad a la izquierda del motor
flgd,0
; Se activa la bandera vel izq
flga,3
; Checa la bandera 2IS
ssigelo ; Salto a la etiqueta ssigelo
portd
; Limpia Puerto D
flga
; Limpia registro de banderas flga
flgc
; Limpia registro de banderas flgc
flgc,2
; Se activa bandera sigelo
flga,3
; Se activa bandera 2IS
b'10101000'
; Se activan interrupcion por cambio de estado en
intcon
; puerto B e interrupcin por desbordamiento del temporizador tmr0
estado,5
; Cambio al banco 1
b'10000111'
; Se ajusta divisor de frecuencia de 1:256 y
opcion
; se le asigna al tmr0
estado,5
; Salto al banco 0
.100
; Se carga el tmr0 con el mismo valor que
tmr0
; se cargo la variable izqon
portb,5 ; Checa el interruptor de limite izquierdo. Si esta desactivado se produce salto de
instruccin
sige2is ; Salto a la etiqueta sige2is
portd,1 ; Se activa giro a la izquierda
portd,2 ; Se activa giro hacia arriba
ssigelo ; Salto a la etiqueta ssigelo
flga,3
; Limpia bandera 2IS
b'10001000'
; Se activa solo la interrupcion por cambio de
intcon
; estado del puerto B
ssigelo ; Salto a la etiqueta ssigelo
.100
; Se carga la variable izqon=100 y la
izqon
; variable izqoff=3, para modular el ancho
.3
; de los pulsos que regulan a un valor bajo
izqoff
; la velocidad a la izquierda del motor
flgd,0
; Activa la bandera vel izq
flga,5
; Checa bandera IB. Si esta desactivada se produce salto de instruccin
ssigelo ; Salto a la etiqueta ssigelo
portd
; Limpia Puerto D
flag
; Limpia registro de banderas flga
flgc
; Limpia registro de banderas flgc
flgc,2
; Activa la bandera sigelo
flga,5
; Activa la bandera IB
b'10101000'
; Se activa solo la interrupcion por cambio de
intcon
; estado del puerto B
estado,5
; Cambio al banco 1
b'10000111'
; Se ajusta divisor de frecuencia de 1:256 y
opcion
; se le asigna al tmr0
133
sigeib
izqsub
sigeis
dersub
goto
bsf
bsf
goto
bcf
movlw
movwf
goto
movlw
movwf
movlw
movwf
bsf
btfsc
goto
clrf
clrf
clrf
bsf
bsf
movlw
movwf
bsf
movlw
movwf
bcf
movlw
movwf
btfsc
goto
bsf
bsf
goto
bcf
movlw
movwf
goto
movlw
movwf
movlw
movwf
bcf
btfsc
goto
clrf
clrf
clrf
bsf
bsf
movlw
movwf
bsf
movlw
movwf
bcf
movlw
movwf
btfsc
goto
bsf
bsf
goto
Anexos
134
Anexos
sigeds
bcf
movlw
movwf
goto
flgc,6
; Limpia bandera DS
b'10001000'
; Se activa solo la interrupcion por cambio de
intcon
; estado del puerto B
ssigelo ; Salto a la etiqueta ssigelo
derbaj
movlw
movwf
movlw
movwf
bcf
btfsc
goto
clrf
clrf
clrf
bsf
bsf
movlw
movwf
bsf
movlw
movwf
bcf
movlw
movwf
btfsc
.100
; Se carga la variable deron=100 y la
deron
; variable deroff=10, para modular el ancho
.3
; de los pulsos que regulan a un valor bajo
deroff
; la velocidad a la derecha del motor
flgd,0
; Limpia bandra vel izq
flga,4
; Checa bandera DB. Si esta desactivada se produce salto de instruccin
ssigelo ; Salto a la etiqueta ssigelo
portd
; Limpia Puerto D
flga
; Limpia registro de banderas flga
flgc
; Limpia registro de banderas flgc
flgc,2
; Activa bandera sigelo
flga,4
; Activa bandera DB
b'10101000'
; Se activan interrupcion por cambio de estado en
intcon
; puerto B e interrupcin por desbordamiento del temporizador tmr0
estado,5
; Cambio al banco 1
b'10000111'
; Se ajusta divisor de frecuencia de 1:256 y
opcion
; se le asigna al tmr0
estado,5 ; Cambio al banco 0
.100
; Se carga el tmr0 con el mismo valor que
tmr0
; se cargo la variable deron
portb,4 ; Checa el interruptor de limitederecho. Si esta desactivado se produce salto de
instruccin
sigedb ; Salto a la etiqueta sigedb
portd,0 ; Se active giro a la derecha
portd,3 ; Se active giro hacia abajo
siguelo ; Salto a la etiqueta sigelo
flga,4
; Limpia bandera DB
b'10001000'
; Se activa solo la interrupcin por cambio de
intcon
; estado del puerto B
ssigelo ; Salto a la etiqueta ssigelo
sigedb
goto
bsf
bsf
goto
bcf
movlw
movwf
goto
tderbaj
movlw
movwf
movlw
movwf
bcf
btfsc
goto
clrf
clrf
clrf
bsf
bsf
movlw
movwf
bsf
movlw
movwf
bcf
movlw
movwf
btfsc
goto
bsf
bsf
goto
sige3db bcf
movlw
movwf
goto
.100
; Se carga la variable deron=100 y la
deron
; variable deroff=10, para modular el ancho
.20
; de los pulsos que regulan a un valor alto
deroff
; la velocidad a la derecha del motor
flgd,0
; Desactiva bandera vel izq
flga,6
; Checa bandera 3DB. Si esta desactivado se produce salto de instruccin
sguelo ; Salto a la etiqueta sigelo
portd
; Limpia puerto D
flga
; Limpia registro de banderas flga
flgc
; Limpia registro de banderas flgd
flgc,2
; Activa bandera sigelo
flga,6
; Activa bandera 3DB
b'10101000'
; Se activan interrupcin por cambio de estado en
intcon
; puerto B e interrupcin por desbordamiento del temporizador tmr0
estado,5
; Cambio al banco 1
b'10000111'
; Se ajusta divisor de frecuencia de 1:256 y
opcion
; se le asigna al tmr0
estado,5 ; Cambio al banco 0
.100
; Se carga el tmr0 con el mismo valor que
tmr0
; se cargo la variable deron
portb,4 ; Checa interruptor de limite derecho. Si esta desactivado se produce salto de instruccin
sige3db ; Salto a la etiqueta sige3db
portd,0 ; Se active giro a la derecha
portd,3 ; Se active giro hacia abajo
sguelo ; Salto a la etiqueta sigelo
flga,6
; Limpia bandera 3DB
b'10001000'
; Se activa solo la interrupcion por cambio de
intcon
; estado del puerto B
ssigelo
; Salto a la etiqueta ssigelo
tizqbaj
.100
izqon
.20
izqoff
flgd,0
flga,7
movlw
movwf
movlw
movwf
bsf
btfsc
135
Anexos
goto
clrf
clrf
clrf
bsf
bsf
movlw
movwf
bsf
movlw
movwf
bcf
movlw
movwf
btfsc
136
Anexos
.80
cont3
cont3,1
c6
cont2,1
137
reposo
Anexos
goto
retlw
c23
0
;
; Retorno al programa principal
clrf
clrf
goto
portd
intcon
arranqe
; Se desactiva el puerto D
; Se limpia el registro intcon (de control de interrupciones)
; Salto a la etiqueta arranque (para poder iniciar nuevamente el arranque de la
planta)
end
138
Anexos
Anexo D.5. Diagrama de flujo del programa de control de la cmara trmica con
control de temperatura
139
Anexos
int adquisicion(void)
{
ConvertADC();
while (BusyADC());
PIR1bits.ADIF = 0;
sensor = ReadADC();
return sensor;
}
140
Anexos
141
Anexos
{
while(!INTCONbits.INT0IF); //se espera el flanco de subida del detector de cruce por cero
INTCONbits.INT0IF=0;
//Se limpia la bandera de interrupcin externa
Delay100TCYx(15);
// Retardo fijo de 0.6 ms
Delay100TCYx(pwm);
// Se aplica el retardo para el corte del semiciclo
PORTDbits.RD0=1;
// Se dispara el triac con un
Delay10TCYx(68);
// ancho de pulso de disparo = 226 useg
PORTDbits.RD0=0;
i++;
// se incrementa el valor de la variable i en 1
INTCONbits.INT0IF=0;
//Se limpia la bandera de interrupcin externa
}
}
if (entrada>=setpoint)
{
enfriar();
PORTDbits.RD0=0;
Delay10KTCYx(150);
Delay10KTCYx(150);
}
}
}
142
Anexo D.7.
Anexos
Los controles e indicadores utilizados en el panel frontal estn representados por iconos con
los que el programa identifica el tipo de variable de cada uno. En la tabla D.1 se muestran
las variables, su icono y tipo de variable.
Tabla D.1 Variables del programa de configuracin y monitoreo.
Icono
Nombre de la variable
PARO
SETPOINT
Kp
Ti
LISTO
ERROR DE CONFIGURACIN
ERROR DE ACCESO DEL PUERTO
rea de grfica
LEYENDO
143
Tipo de variable
Booleana
Entera, sin signo, de 8 bits
Entera, sin signo, de 8 bits
Entera, sin signo, de 8 bits
Booleana
Booleana
Booleana
Doble
Booleana
Anexos
En las siguientes figuras se muestran los bloques que forman el programa de monitoreo y
control de la cmara trmica.
144
Anexos
145
Anexo E.
Anexos
Lista de componentes
Los componentes fueron cotizados para compra por mayoreo y menudeo en la tienda
electrnica Steren. En las tablas E.1, E.2, E.3 y E.4 se muestra la lista de componentes
detallada por cada tarjeta electrnica.
Tabla E.1 Lista de componentes de la tarjeta principal
Cantidad
Descripcin
1
1
1
2
Regulador
Regulador
Regulador
Capacitor electroltico
Capacitor cermico
Capacitor electroltico
1
3
Capacitor electroltico
LED
Resistencia
2
1
1
1
1
Bobina
Fusible
Diodo
Tira doble en ngulo
(peine)
Tira sencilla en ngulo
(peine)
Tira sencilla en ngulo
(peine)
Buffer
Base C.I.
42
Resistencia
21
21
1
1
1
8
1
1
Resistencia
Resistencia
Resistencia
2
2
Capacitor cermico
Capacitor cermico
1
1
1
7805
7815
7915
1000 uF / 50V
P. U.
May.
$2.70
$2.70
$2.90
$3.60
Subtotal
May.
$2.70
$2.70
$2.90
$7.20
P. U.
Men.
$6.00
$6.00
$7.00
$8.00
Subtotal
Men.
$6.00
$6.00
$7.00
$16.00
100 nF
$0.20
$1.40
$2.00
$14.00
100 uF / 50 V
$0.55
$3.30
$3.00
$18.00
100 uF / 100 V
Rojo
$0.80
$0.30
$0.80
$0.90
$4.00
$2.00
$4.00
$6.00
470
$0.03
$0.09
$0.50
$1.50
1N4148
$0.00
$0.00
$0.20
$0.00
$0.00
$0.20
$0.00
$0.00
$1.00
$0.00
$0.00
$1.00
JP4
14
$0.03
$0.42
$0.20
$2.80
J32
$0.03
$0.06
$0.20
$0.40
J27
$0.03
$0.09
$0.20
$0.60
74HC245
20 pines
$4.60
$0.45
$4.60
$0.45
$10.00
$3.00
$10.00
$3.00
47 K
$0.03
$1.26
$0.50
$21.00
3
470
10 K
100 nF
2
$0.03
$0.03
$0.03
$0.20
$0.03
$1.89
$0.63
$0.03
$0.20
$0.06
$0.20
$0.50
$0.50
$2.00
$0.20
$12.60
$10.50
$0.50
$2.00
$0.40
$0.03
$0.96
$0.20
$6.40
220
MCP6044
14 pines
$0.03
$18.50
$0.30
$0.24
$18.50
$0.30
$0.50
$18.50
$2.00
$4.00
$18.50
$2.00
470
$0.03
$0.12
$0.50
$2.00
47 K
$0.03
$0.12
$0.50
$2.00
2.2 K
$0.03
$0.12
$0.50
$2.00
10 nF
22 nF
$0.15
$0.15
$0.30
$0.30
$2.00
$2.00
$4.00
$4.00
No. Ref.
U9
U6
U1
C33, C35
C29-C32,
C42-C44
C34, C37C41
C36
D6-D8
R43-R44,
R46
L1, L2
F1
D4
U2
U2
R22-R27,
R42
J1 J21
R1 R18
R21
C28
J26
J38-J45
R47
U7
U7
R35, R38R40
R41
R29, R31,
R36, R37
C21, C25
C22, C26
Especificacin
146
Descripcin
2
2
2
10
2
1
2
2
2
4
1
16
Capacitor cermico
2
2
2
Capacitor electroltico
Tira sencilla (peine)
Tira sencilla (peine)
Tira doble en ngulo
(peine)
Tira doble en ngulo
(peine)
Tira doble en ngulo
(peine)
4
1
1
1
1
1
1
5
1
1
1
1
1
1
1
1
No. Ref.
Anexos
Especificacin
P. U.
May.
Subtotal
May.
P. U.
Men.
Subtotal
Men.
J22-J25
$0.03
$0.36
$0.20
$2.40
JP5
14
$0.03
$0.42
$0.20
$2.80
$0.03
$0.03
$300.00
$7.90
$0.40
$4.80
$0.30
$0.20
$0.40
$0.03
$0.03
$300.00
$7.90
$0.40
$24.00
$0.30
$0.20
$0.40
$0.50
$0.50
$300.00
$15.00
$3.00
$11.00
$2.00
$1.00
$3.00
$0.50
$0.50
$300.00
$15.00
$3.00
$55.00
$2.00
$1.00
$3.00
$2.90
$2.90
$9.00
$9.00
24FC512
8 pines
3
4.7 K
100 nF
2
3
L293D
16 pines
10 K
4
$42.16
$0.25
$2.20
$0.03
$0.20
$0.03
$0.03
$35.00
$0.35
$0.03
$2.20
$84.32
$0.50
$4.40
$0.30
$0.40
$0.06
$0.18
$70.00
$0.70
$0.12
$2.20
$42.16
$2.00
$5.00
$0.50
$2.00
$0.20
$0.20
$35.00
$2.00
$0.50
$5.00
$84.32
$4.00
$10.00
$5.00
$4.00
$0.40
$1.20
$70.00
$4.00
$2.00
$5.00
100 nF
$0.20
$3.20
$2.00
$32.00
100 uF / 25 V
3
5
$0.30
$0.03
$0.03
$0.60
$0.18
$0.30
$2.00
$0.20
$0.20
$4.00
$1.20
$2.00
JP1
40
$0.03
$1.20
$0.20
$8.00
JP2
36
$0.03
$1.08
$0.20
$7.20
JP4
14
$0.03
$0.42
$0.20
$2.80
PF
12 cm x 19.5 cm
(15x20)
$22.00
$22.00
$40.00
$40.00
Subtotal
May.
$ 581.94
Subtotal
Men.
$ 869.52
R20
R19
LCD
U3
U3
C1-C5
C7
D2
D3
820
10 K
2x16
MAX232
18 pines
10 uF / 25 V
100 uF / 25 V
1N4148
5.1 v
P1
U8, U10
U8, U10
SW3, SW5
R45, R48
C27, C50
J47
J29, J31
U4, U5
U4, U5
R34
SW4
C8-C20,
C45-C47
C23, C24
J35, J36
J33, J34
147
Anexos
Descripcin
No. Ref.
Especificacin
1
1
1
Microcontrolador
Base C.I.
Cristal de cuarzo
U1
U1
XTL
Pulsador
SW1
1
1
Resistencia
Resistencia
Capacitor
cermico
Capacitor
cermico
Capacitor
electroltico
Tira doble en
ngulo (peine)
Placa fenlica
doble cara
R21
R23
PIC18F452
40 pines
12 MHz
Normalmente
abierto
100
10 K
3
2
1
1
1
P. U.
May.
$104.00
$0.90
$5.70
Subtotal
May.
$104.00
$0.90
$5.70
P. U.
Men.
$104.00
$4.00
$13.00
Subtotal
Men.
$104.00
$4.00
$13.00
$0.40
$0.40
$3.00
$3.00
$0.03
$0.03
$0.03
$0.03
$0.50
$0.50
$0.50
$0.50
C1-C3
100 nF
$0.20
$0.60
$2.00
$6.00
C4-C5
22 pF
$0.20
$0.40
$2.00
$4.00
C6
10 uF / 25 V
$0.25
$0.25
$2.00
$2.00
JP1
40
$0.03
$1.20
$0.20
$8.00
PF
5.5 cm x 8 cm
(10x10)
$7.10
$7.10
$13.00
$13.00
Subtotal
May.
$ 113.51
Subtotal
Men.
$ 869.52
Descripcin
Conversor digitalanalgico
Base C.I.
Amplificador
operacional
Base C.I.
Transmisor 4-20 mA
Receptor 4-20 mA
Base C.I.
Transistor FET
Resistencia
Resistencia
Trimpot
Capacitor
electroltico
Capacitor cermico
Tira sencilla (peine)
Tira doble en ngulo
(peine)
Placa fenlica una
cara
No. Ref.
Especificacin
P. U.
May.
Subtotal
May.
P. U.
Men.
Subtotal
Men.
U2
DAC0808
$16.50
$16.50
$29.00
$29.00
U2
18 pines
$0.40
$0.40
$3.00
$3.00
U4
LF351
$5.00
$5.00
$5.00
$5.00
$0.25
$130.00
$78.00
$0.35
$7.80
$0.03
$0.03
$17.00
$0.25
$130.00
$78.00
$0.70
$7.80
$0.03
$0.06
$17.00
$2.00
$130.00
$78.00
$2.00
$14.00
$0.50
$0.50
$31.00
$2.00
$130.00
$78.00
$4.00
$14.00
$0.50
$1.00
$31.00
U4
J2
J4
J2, J4
Q1
R4
R2, R3
R6
8 pines
XTR110
RCV420
16 pines
MTP2955
1 K
3.3 K
10 K
C1
1 uF
$0.25
$0.25
$2.00
$2.00
C2
J1, J5
33 pF
2
$0.20
$0.03
$0.20
$0.12
$2.00
$0.20
$2.00
$0.80
14
$0.03
$0.42
$0.20
$2.80
5.5 cm x 6.5 cm
(10x10)
$4.40
$4.40
$10.00
$10.00
Subtotal
Men.
$ 315.10
J8
Subtotal
$ 261.13
May.
148
Anexos
Descripcin
LED
Botn pulsador
Circuito integrado
Base C.I.
Pantalla de 7
segmentos
Trimpot
LDR
Sensor LM35
Transistor
Capacitor
electroltico
Capacitor cermico
Tira sencilla en
ngulo (peine)
Tira doble (peine)
Placa fenlica doble
cara
Rojo
SW
74LS48
16 pines
P. U.
May.
$0.30
$0.40
$9.30
$0.35
Subtotal
May.
$8.10
$7.20
$9.30
$0.70
P. U.
Men.
$2.00
$3.00
$17.00
$2.00
Subtotal
Men.
$54.00
$54.00
$17.00
$4.00
DC05
$4.00
$20.00
$9.00
$45.00
10 K
LDR
TO92
2N3904
$17.00
$2.20
$25.00
$0.40
$51.00
$2.20
$25.00
$2.00
$31.00
$2.20
$25.00
$3.00
$93.00
$2.20
$25.00
$15.00
47uF 16V
$0.25
$0.25
$2.00
$2.00
C3-C5
100 nF
$0.20
$0.40
$2.00
$4.00
J1-J4
$0.03
$0.36
$0.20
$2.40
36
9.5 cm x 14.5
cm (10x20)
$0.03
$1.08
$0.20
$7.20
$15.00
$15.00
$27.00
$27.00
Subtotal
May.
$ 142.59
No. Ref.
D1-D27
SW3-SW20
U2
U2,U3
JP1-JP5
R1,R2,R9
R5
U1
Q1-Q5
C4
JP6
Especificacin
Subtotal
$ 351.80
Men.
En la tabla E.5 se muestra concentrado el subtotal por cada tarjeta y el costo total de los
componentes por mayoreo y menudeo.
Total
Subtotal tarjeta principal
Subtotal tarjeta procesamiento
Subtotal tarjeta 4-20 mA
Subtotal tarjeta de aplicacin
Costo total de componentes
149
Mayoreo Menudeo
$581.94 $869.52
$113.51 $158.00
$261.13 $315.10
$142.59 $351.80
$1,099.17 $1,694.42