tesis tarjeta programable - cenidet.edu.mx joaquin rivero... · componente como tarjetas de...

161
S.E.P. S.E.S. D.G.E.S.T. CENTRO NACIONAL DE INVESTIGACIÓN Y DESARROLLO TECNOLÓGICO cenidet DISEÑO Y CONSTRUCCIÓN DE UNA TARJETA PROGRAMABLE DE ADQUISICIÓN, 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: FÉLIX VICENTE JÍMENEZ RÍOS JOAQUÍN RIVERO JUÁREZ DIRECTORES DE TESIS: M.C. JOSÉ LUIS GONZÁLEZ RUBIO SANDOVAL DR. RAÚL PINTO ELÍAS CUERNAVACA, MORELOS, MÉXICO FEBRERO DE 2006

Upload: volien

Post on 29-Oct-2018

224 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: TESIS TARJETA PROGRAMABLE - cenidet.edu.mx Joaquin Rivero... · componente como tarjetas de adquisición de datos o controladores lógicos programables (PLCs). En este trabajo se

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

CENTRO NACIONAL DE INVESTIGACIÓN

Y DESARROLLO TECNOLÓGICO

cenidet

DISEÑO Y CONSTRUCCIÓN DE UNA TARJETA PROGRAMABLE DE ADQUISICIÓN,

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:

FÉLIX VICENTE JÍMENEZ RÍOS JOAQUÍN RIVERO JUÁREZ

DIRECTORES DE TESIS:

M.C. JOSÉ LUIS GONZÁLEZ RUBIO SANDOVAL DR. RAÚL PINTO ELÍAS

CUERNAVACA, MORELOS, MÉXICO FEBRERO DE 2006

Page 2: TESIS TARJETA PROGRAMABLE - cenidet.edu.mx Joaquin Rivero... · componente como tarjetas de adquisición de datos o controladores lógicos programables (PLCs). En este trabajo se

RESUMEN La automatización industrial se divide en 3 fases: adquisición de datos, procesamiento o tratamiento de la información y control de elementos actuadores. Existen alternativas comerciales que permiten realizar una o todas las fases de automatización en un solo componente como tarjetas de adquisición de datos o controladores lógicos programables (PLCs). En este trabajo se presenta el diseño, construcción y prueba de una tarjeta programable capaz de realizar las 3 funciones de automatización de un proceso con la capacidad de trabajar de forma autónoma. Se diseñó y fabricó una tarjeta de aplicación para la realización de las pruebas de los módulos de: entradas/salidas digitales, entradas analógicas, potencia para motores, comunicación con la computadora y memorias EEPROM. Además de las pruebas funcionales, se diseñaron, construyeron y probaron 3 plantas mecatrónicas con la tarjeta programable. Las 3 plantas son: un robot móvil seguidor de línea, un modelo a escala de una plataforma de seguimiento solar y una cámara térmica con temperatura controlada.

ABSTRACT

The industrial automation is divided in 3 phases: acquisition of data, processing or treatment of information and control of actuator elements. There exist commercial alternatives to carry out one or all the automation phases in a single component such as cards of data acquisition or programmable logic controllers (PLCs). This work shows up the design, construction and test of a programmable card able to carry out the 3 automation functions of a process with the capacity to work in an autonomous way. An application card was designed for testing the modules of: digital inputs/outputs, analog inputs, power for motors, communication between the computer and EEPROM memories. Besides the functional tests, there were designed, built and tested 3 mechatronic plants with the programmable card. The 3 plants are: a line follower mobile robot, a scale model of a solar tracer platform and a thermal camera with controlled temperature.

Page 3: TESIS TARJETA PROGRAMABLE - cenidet.edu.mx Joaquin Rivero... · componente como tarjetas de adquisición de datos o controladores lógicos programables (PLCs). En este trabajo se

i

CONTENIDO

LISTA DE FIGURAS ...........................................................................................................iv LISTA DE TABLAS.............................................................................................................vi ACRONIMOS Y SIGLAS ...................................................................................................vii NOMENCLATURA...............................................................................................................x Capítulo 1. Introducción.......................................................................................................1 1.1. Antecedentes......................................................................................................2 1.2. Descripción del problema..................................................................................2 1.3. Estado del arte de sistemas de adquisición, procesamiento de datos y control

de procesos ........................................................................................................3 1.3.1. Transductores y sensores ...................................................................................3 1.3.2. Acondicionadores de señales.............................................................................4 1.3.3. Módulos de adquisición de datos ......................................................................4 1.3.4. Controladores ....................................................................................................7 1.4. Propuesta de solución ........................................................................................9 1.4.1. Objetivos............................................................................................................9 1.4.2. Metodología de solución ...................................................................................9 1.4.3. Aportación o contribución...............................................................................10 1.5. Organización de la tesis...................................................................................10 Capítulo 2. Determinación de las características funcionales de la tarjeta programable ...11 2.1. Recursos requeridos por plantas o procesos ....................................................12 2.2. Microcontroladores y controladores de señal digital.......................................12 2.2.1. Microcontroladores..........................................................................................12 2.2.2. Controladores de señal digital .........................................................................18 2.2.3. Herramientas de desarrollo..............................................................................21 2.3. Proceso de selección del microcontrolador con el que opera la tarjeta

programable .....................................................................................................22 2.4. Tiempo de procesamiento del microcontrolador del PIC18F452....................26 2.4.1. Temporizadores del microcontrolador.............................................................27 2.4.2. Modulación de ancho de pulso generada por el microcontrolador..................28 2.4.3. Tiempo de conversión del conversor análogo/digital......................................29 2.5. Interfases de comunicación ............................................................................31 2.5.1. Interfaz de comunicación entre tarjetas ...........................................................32 2.5.2. Interfaz de comunicación entre la tarjeta y la computadora............................32 2.6. Descripción de la tarjeta programable de adquisición, procesamiento de datos

y control...........................................................................................................33 Capítulo 3. Diseño electrónico de la tarjeta .......................................................................34 3.1. Descripción a bloques de la tarjeta programable.............................................35 3.2. Diagramas esquemáticos electrónicos de la tarjeta programable ....................36

Page 4: TESIS TARJETA PROGRAMABLE - cenidet.edu.mx Joaquin Rivero... · componente como tarjetas de adquisición de datos o controladores lógicos programables (PLCs). En este trabajo se

ii

3.3. Diagramas esquemáticos electrónicos de la tarjeta de aplicación ...................44 3.4. Diseño de las tarjetas de circuito impreso .......................................................45 Capítulo 4. Construcción y pruebas de las tarjetas electrónicas.........................................47 4.1. Construcción de las tarjetas electrónicas .........................................................48 4.2. Emulación funcional de los módulos de la tarjeta programable......................50 4.2.1. Prueba de E/S digitales ....................................................................................51 4.2.2. Prueba de entradas analógicas .........................................................................51 4.2.3. Prueba de potencia para motores .....................................................................52 4.2.4. Prueba de la pantalla de cristal líquido (LCD) ................................................53 4.2.5. Prueba de comunicación con la PC .................................................................53 4.2.6. Prueba de memorias EEPROM .......................................................................54 4.2.7. Prueba de E/S de 4-20 mA ..............................................................................55 Capítulo 5. Diseño y construcción de plantas ....................................................................58 5.1. Descripción de plantas a controlar...................................................................59 5.2. Robot móvil seguidor de línea.........................................................................60 5.2.1. Objetivo ...........................................................................................................60 5.2.2. Requerimientos de la planta ............................................................................60 5.2.3. Diseño mecánico .............................................................................................60 5.2.4. Diseño eléctrico del robot móvil .....................................................................61 5.2.5. Algoritmo de control .......................................................................................62 5.3. Modelo a escala de una plataforma de seguimiento solar ...............................63 5.3.1. Objetivo ...........................................................................................................63 5.3.2. Requerimientos de la planta ............................................................................63 5.3.3. Diseño mecánico .............................................................................................65 5.3.4. Diseño eléctrico del modelo a escala de la plataforma de seguimiento solar..66 5.3.5. Algoritmo de control .......................................................................................68 5.4. Cámara térmica con temperatura controlada ...................................................70 5.4.1. Objetivo ...........................................................................................................70 5.4.2. Diseño mecánico .............................................................................................70 5.4.3. Diseño eléctrico de la cámara térmica.............................................................71 5.4.4. Requerimientos de la planta ............................................................................72 5.4.5. Algoritmo de control .......................................................................................73 Capítulo 6. Experimentación y análisis de resultados........................................................76 6.1. Pruebas y resultados de la tarjeta programable con el robot móvil seguidor de

línea .................................................................................................................77 6.2. Pruebas y resultados de la tarjeta programable con el modelo a escala de la

plataforma de seguimiento solar......................................................................78 6.3. Pruebas y resultados de la tarjeta programable con la cámara térmica con

temperatura controlada ....................................................................................79 Capítulo 7. Conclusiones....................................................................................................83

Page 5: TESIS TARJETA PROGRAMABLE - cenidet.edu.mx Joaquin Rivero... · componente como tarjetas de adquisición de datos o controladores lógicos programables (PLCs). En este trabajo se

iii

7.1. Conclusiones....................................................................................................84 7.2. Trabajos futuros...............................................................................................85 REFERENCIAS ...................................................................................................................86 Anexo A. Circuitos esquemáticos de la tarjeta programable ...........................................88 Anexo B. Diseños de placas de circuito impreso.............................................................92 Anexo C. Programas de prueba de la tarjeta programable.............................................104 Anexo D. Documentación de los programas de control de las plantas..........................113 Anexo E. Lista de componentes ....................................................................................146

Page 6: TESIS TARJETA PROGRAMABLE - cenidet.edu.mx Joaquin Rivero... · componente como tarjetas de adquisición de datos o controladores lógicos programables (PLCs). En este trabajo se

iv

LISTA DE FIGURAS Figura 1.1 Módulo de adquisición de datos............................................................................ 4 Figura 1.2 Diagrama a bloques de un sistema de adquisición, procesamiento de datos y control..................................................................................................................................... 5 Figura 2.1 Comparación de microcontroladores en cuanto a frecuencia de operación........ 23 Figura 2.2 Comparación de microcontroladores en cuanto a número de terminales de E/S.24 Figura 2.3 Comparación de microcontroladores en cuanto a memoria de programa........... 24 Figura 2.4 Circuito oscilador del microcontrolador ............................................................. 26 Figura 2.5 Flujo de ejecución de instrucciones. ................................................................... 27 Figura 2.6 Flujo paralelo de búsqueda/ejecución (pipelining). ............................................ 27 Figura 2.7 Salida PWM. ....................................................................................................... 28 Figura 2.8 Modelo de la entrada analógica........................................................................... 30 Figura 3.1 Módulos que conforman la tarjeta programable. ................................................ 35 Figura 3.2 Circuito electrónico del módulo de entradas/salidas digitales. ........................... 36 Figura 3.3 Circuito electrónico del módulo de entradas analógicas..................................... 38 Figura 3.4 Circuito electrónico del módulo de alimentación. .............................................. 38 Figura 3.5 Circuito electrónico del módulo de memoria EEPROM..................................... 39 Figura 3.6 Circuito electrónico del módulo de comunicación con la PC. ............................ 40 Figura 3.7 Circuito electrónico del módulo de comunicación I2C. ...................................... 41 Figura 3.8 Circuito electrónico del módulo de potencia para motores................................. 42 Figura 3.9 Circuito electrónico del conector para pantalla de cristal líquido....................... 42 Figura 3.10 Circuito electrónico del módulo de procesamiento........................................... 43 Figura 3.11 Circuito electrónico del módulo de E/S de 4-20 mA. ....................................... 44 Figura 3.12 Circuito electrónico de la tarjeta de aplicación................................................. 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 aplicación. .......................................................................................... 50 Figura 4.5 Gráfica de respuesta del receptor de 4-20 mA. ................................................... 56 Figura 5.1 Robot móvil seguidor de línea ............................................................................ 60 Figura 5.2 Robot móvil seguidor de línea ........................................................................... 61 Figura 5.3 Circuito electrónico del robot móvil seguidor de línea...................................... 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 operación simplificado del puente H................................................ 64 Figura 5.7 Diseño mecánico 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 Fotografía del modelo a escala de la plataforma de seguimiento solar............... 67 Figura 5.10 Circuito eléctrico del modelo a escala de la plataforma de seguimiento solar. 68 Figura 5.11 Referencia de giros e identificación de sensores............................................... 69 Figura 5.12 Cámara térmica con temperatura controlada..................................................... 70

Page 7: TESIS TARJETA PROGRAMABLE - cenidet.edu.mx Joaquin Rivero... · componente como tarjetas de adquisición de datos o controladores lógicos programables (PLCs). En este trabajo se

v

Figura 5.13 Circuito generador de señal de referencia......................................................... 71 Figura 5.14 Señal de referencia. ........................................................................................... 71 Figura 5.15 Circuito de control de CA. ................................................................................ 72 Figura 5.16 Diagrama eléctrico de la cámara térmica y la tarjeta programable. .................. 72 Figura 5.17 Instrumento virtual de configuración y visualización de la cámara térmica..... 74 Figura 6.1 Pista de prueba del robot móvil seguidor de línea. ............................................. 77 Figura 6.2 Prueba de controlador proporcional. ................................................................... 82 Figura 6.3 Prueba de controlador proporcional-integral. ..................................................... 82 Figura A.1 Circuito esquemático de tarjeta principal.......................................................... 88 Figura A.2 Circuito esquemático de tarjeta de procesamiento............................................ 89 Figura A.3 Circuito esquemático de la tarjeta de 4-20 mA. ................................................ 90 Figura A.4 Circuito esquemático de tarjeta de aplicación................................................... 91 Figura B.1 Diseño de la cara superior de la tarjeta principal. ............................................. 92 Figura B.2 Diseño de la cara inferior de la tarjeta principal. .............................................. 93 Figura B.3 Capa de leyenda de componentes de la tarjeta principal................................... 94 Figura B.4 Diseño de la cara superior de la tarjeta de procesamiento................................. 96 Figura B.5 Diseño de la cara inferior de la tarjeta de procesamiento.................................. 97 Figura B.6 Capa de leyenda de componentes de la tarjeta de procesamiento. .................... 98 Figura B.7 Diseño de la cara inferior de la tarjeta de E/S de 4-20 mA. .............................. 99 Figura B.8 Capa de leyenda de componentes de la tarjeta de E/S de 4-20 mA. ............... 100 Figura B.9 Diseño de la cara superior de la tarjeta de aplicación. .................................... 101 Figura B.10 Diseño de la cara inferior de la tarjeta de aplicación..................................... 102 Figura B.11 Capa de leyenda de componentes de la tarjeta de aplicación........................ 103 Figura D.1 Panel frontal. ................................................................................................... 143 Figura D.2 Bloque 1 de 4 del programa de monitoreo y control....................................... 144 Figura D.3 Bloque 2 de 4 del programa de monitoreo y control....................................... 144 Figura D.4 Bloque 3 de 4 y sub-bloque 1 de 3 del programa de monitoreo y control. .... 144 Figura D.5 Sub-bloque 2 de 3 del programa de monitoreo y control................................ 145 Figura D.6 Sub-bloque 3 de 3 del programa de monitoreo y control................................ 145 Figura D.7 Bloque 4 de 4 del programa de monitoreo y control....................................... 145

Page 8: TESIS TARJETA PROGRAMABLE - cenidet.edu.mx Joaquin Rivero... · componente como tarjetas de adquisición de datos o controladores lógicos programables (PLCs). En este trabajo se

vi

LISTA DE TABLAS Tabla 1.1 Características más importantes de las tarjetas de adquisición de datos. .............. 5 Tabla 1.2 Sistemas comerciales de adquisición de datos. ..................................................... 6 Tabla 1.3 Comparación de puertos de comunicación............................................................ 8 Tabla 2.1 Recursos requeridos por plantas o procesos........................................................ 12 Tabla 2.2 Características técnicas de los microcontroladores. ............................................ 14 Tabla 2.3 Comparación de familia de controladores C2000. .............................................. 19 Tabla 2.4 Comparación entre el PIC18F452 y el dsPIC30F. .............................................. 25 Tabla 2.5 Selección de capacitores...................................................................................... 26 Tabla 2.6 Especificación de la tarjeta programable............................................................. 33 Tabla 3.1 Dimensiones físicas de las tarjetas electrónicas. ................................................. 46 Tabla 4.1 Pruebas de la tarjeta programable....................................................................... 50 Tabla 4.2 Caracterización del receptor de 4-20 mA............................................................ 55 Tabla 4.3 Caracterización del transmisor de 4-20 mA. ....................................................... 56 Tabla 5.1 Descripción de plantas fabricadas ....................................................................... 59 Tabla 6.1 Experimentación de voltaje eficaz y tiempo de recorte....................................... 80 Tabla B.1Ubicación de componentes en la tarjeta principal. ............................................... 95 Tabla C.1 Programas de las pruebas de la tarjeta programable.......................................... 104 Tabla D.1 Variables del programa de configuración y monitoreo. .................................... 143 Tabla E.1 Lista de componentes de la tarjeta principal...................................................... 146 Tabla E.2 Lista de componentes de la tarjeta de procesamiento ........................................ 148 Tabla E.3 Lista de componentes de la tarjeta de E/S de 4-20 mA ..................................... 148 Tabla E.4 Lista de componentes de la tarjeta de aplicación............................................... 149 Tabla E.5 Costo total de la tarjeta programable ................................................................. 149

Page 9: TESIS TARJETA PROGRAMABLE - cenidet.edu.mx Joaquin Rivero... · componente como tarjetas de adquisición de datos o controladores lógicos programables (PLCs). En este trabajo se

vii

ACRONIMOS Y SIGLAS A/D Analógico/digital ADC Analog-digital converter (“Convertidor analógico-digital”) ADCON0 Registro 0 de control del convertidor analógico-digital ADCON1 Registro 1 de control del convertidor analógico-digital ADFM Bit selector de formato de resultado del convertidor analógico-digital ADRESH Byte alto del registro de resultado del convertidor analógico- digital ADRESL Byte bajo del registro de resultado del convertidor analógico- digital bms Bit menos significativo CA Corriente alterna CAN Controller Area Network (“Red de área de controlador”) CCP1 Terminal del módulo 1 de captura, comparación y modulación por ancho

de pulsos CCP1CON Registro de control del módulo 1 de captura, comparación y modulación

por ancho de pulso CCPR1L Byte bajo del registro 1 de captura, comparación y modulación por ancho

de pulso CD Corriente directa CMOS Complementary Metal-Oxide Semiconductor (“Semiconductor de oxido

de metal complementario”) COP8 Control Oriented Processor (“Procesador orientado a control”) CP Contador de programa CPU Central processing unit (“Unidad central de procesamiento”) D/A Digital/analógico DAC Digital-analog converter (“Convertidor digital-analógico”) DIP Dual Inline Package (“Encapsulado doble en línea”) DSC Digital signal controller (“Controlador digital de señales”) DSP Digital signal processor (“Procesador digital de señales”) E/S Entradas y salidas EEPROM Electrically erasable programmable read-only memory (“Memoria de solo

lectura programable eléctricamente borrable”) EIA Electronic Industries Association (“Asociación de industrias de

electrónica”) FFT Fast Fourier Transform (“Transformada rápida de Fourier”) gcc Gnu c compiler (“Compilador C de gnu”) GNU GNU is not Unix (“GNU no es Unix”) GPIB General purpose input board (“Placa de entrada de propósito general”) HCMOS High-density Complementary Metal-Oxide Semiconductor

(“Semiconductor de oxido de metal complementario de alta densidad”) ICD In-Circuit Debugger (“Depurador en circuito”) ICE In-Circuit Emulator (“Emulador en circuito”) IDE Integrated development environment (“Ambiente integrado de desarrollo”) IEEE Institute for Electrical and Electronics Engineers (“Instituto para

ingenieros eléctricos y electrónicos”) IIC o I2C Inter Integrated Circuit (“Interconexión de circuitos integrados”)

Page 10: TESIS TARJETA PROGRAMABLE - cenidet.edu.mx Joaquin Rivero... · componente como tarjetas de adquisición de datos o controladores lógicos programables (PLCs). En este trabajo se

viii

IrDA Infrared Data Association ISA Industry Standard Architecture (“Arquitectura de estándar industrial”) ISP In System Programming (“Programación en sistema”) kHz KiloHertz LCD Liquid Crystal Display (“Pantalla de cristal líquido”) LED Light-Emitting Diode (“Diodo emisor de luz”) LPT Line Print Terminal (“Terminal de línea de impresora”) mA MiliAmpere MHz MegaHertz MIDI Musical instrument digital interface (“Interfaz digital de instrumento

musical”) MIMO Multiple Input, Multiple Output (“Múltiples entradas, múltiples salidas”) MIPS Millions of Instructions per second (“Millones de instrucciones por

segundo”) MN Moneda nacional MOSFET Metal-Oxide Semiconductor field effect transistor (“Transistor de efecto

de campo de semiconductor de oxido de metal”) nF Nanofaradio PC Personal Computer (“Computadora personal”) PCI Peripheral Component Interconnect (“Interconexión periférica de

componentes”) PCMCIA Personal Computer Memory Card Internacional Association (“Asociación

internacional de tarjetas de memoria de computadora personal”) PDA personal digital assistant (“Asistente digital personal”) pF Picofaradio PI Proporcional integral PIC programmable integrated circuit (“Circuito integrado programable”) PLC Programmable logic controller (“Controlador lógico programable”) PLCC Plastic-Leaded Chip Carrier (“Encapsulado de montaje superficial para

circuito integrado”) PR2 Registro de período del temporizador 2 PWM Pulse Width Modulation (“Modulación por ancho de pulso”) RAM Random access memory (“Memoria de acceso aleatorio RC Resistencia-capacitor RISC Reduced Instruction Set Computer (“Computadora con conjunto reducido

de instrucciones”) ROM Read-only memory (“Memoria de solo lectura”) SCI Serial communications Interface (“Interfaz de comunicación serial”) SCL Serial clock (“Reloj serial”) SD Secure digital SDA Serial data (“Dato serial”) SISO Single Input, Single Output (“Una entrada, una salida”) spbrg Registro generador de baudios SPI Serial Peripheral Interface (“Interfaz periférica serial”) T2CON Registro de control del temporizador TMR2 TI Texas Instruments TIA Thanks In Advance

Page 11: TESIS TARJETA PROGRAMABLE - cenidet.edu.mx Joaquin Rivero... · componente como tarjetas de adquisición de datos o controladores lógicos programables (PLCs). En este trabajo se

ix

TOSC Tiempo de oscilación TTL Transistor-transistor logic (“Lógica transistor-transistor”) μC Microcontrolador μF Microfaradio UPS Uninterruptible power supply (“Fuente de poder ininterrrumpible”) μs Microsegundo USART Universal synchronous/asynchronous receiver transmitter (“Transmisor-

receptor universal síncrono/asíncrono”) USB Universal Serial Bus (“Bus serie universal”) VCD Volts corriente directa Wi-Fi Wireless Fidelity (“Fidelidad inalámbrica”)

Page 12: TESIS TARJETA PROGRAMABLE - cenidet.edu.mx Joaquin Rivero... · componente como tarjetas de adquisición de datos o controladores lógicos programables (PLCs). En este trabajo se

x

NOMENCLATURA C Capacitor CPIN Capacitancia de entrada CRETEN Capacitancia de muestreo y retención del DAC E(n) Error en tiempo discreto E(t) Error en tiempo continuo F Frecuencia fc Frecuencia de corte FOSC Frecuencia de oscilador hFE Ganancia de corriente IB Corriente de base IB(max) Corriente máxima de base IB(sat) Corriente de base cuando el transistor esta en saturación IC(max) Corriente máxima de colector IC(sat) Corriente de colector cuando el transistor esta en saturación If Corriente del fotodiodo en polarización directa IFUGA Corriente de fuga en la terminal debido a varias conexiones Imax Corriente máxima KI Ganancia integral KP Ganancia proporcional RIC Resistencia de interconexión R Resistencia Rs Impedancia de la fuente Rss Impedancia del interruptor interno de muestreo SS Interruptor de muestreo TACQ Tiempo mínimo de adquisición TAMP Tiempo de establecimiento del amplificador TC Tiempo de carga del capacitor de retención TCOFF Coeficiente de temperatura TI VAIN Voltaje analógico de entrada VBE(on) Voltaje entre base y emisor cuando el transistor esta en funcionamiento VCC Voltaje de alimentación VCE(on) Voltaje entre colector y emisor cuando el transistor esta en funcionamiento VCE(sat) Voltaje entre colector y emisor cuando el transistor esta en saturación VDD Voltaje del dispositivo Vef Voltaje eficaz Vf Voltaje de diodo en polarización directa Vinst Voltaje instantaneo Vp Voltaje pico VT Voltaje de umbral Δtmax Aumento máximo de temperatura ωc Frecuencia de corte

Page 13: TESIS TARJETA PROGRAMABLE - cenidet.edu.mx Joaquin Rivero... · componente como tarjetas de adquisición de datos o controladores lógicos programables (PLCs). En este trabajo se

Diseño y construcción de una tarjeta programable Capítulo 1. Introducción de adquisición, procesamiento de datos y control

1

CAPÍTULO 1. INTRODUCCIÓN

Page 14: TESIS TARJETA PROGRAMABLE - cenidet.edu.mx Joaquin Rivero... · componente como tarjetas de adquisición de datos o controladores lógicos programables (PLCs). En este trabajo se

Diseño y construcción de una tarjeta programable Capítulo 1. Introducción de adquisición, procesamiento de datos y control

2

1.1. Antecedentes Los sistemas de adquisición de datos se utilizan cada vez más en laboratorios, industria y educación. Puede ser sólo para la lectura de las variables físicas (presión, nivel, temperatura y flujo por ejemplo), para visualizar el estado de un proceso o bien, para el procesamiento de estas variables con la finalidad de controlar un proceso. Con un sistema de adquisición de datos se puede obtener el valor de las variables físicas. También es posible llevar un registro de los valores de las variables del proceso. Muchos procesos industriales se monitorean y/o controlan con tarjetas de adquisición de datos y una computadora, además de graficadores y de registradores. La mayoría de estas aplicaciones usan módulos de adquisición de datos compatibles con la computadora para adquirir datos y transferirlos directamente a la memoria de la computadora. Estos módulos de adquisición de datos pueden conectarse de forma interna (PCI, PXI) o externa (PCMCIA, USB, IEEE 1394 o RS232) a la computadora por alguno de los puertos disponibles, por ejemplo los que se describen en la sección 1.3.3 de Módulos de adquisición de datos. 1.2. Descripción del problema La mayoría de las tarjetas de adquisición de datos comerciales son de aplicación específica, esto es, operan adquiriendo y enviando información por medio del puerto serie, paralelo, USB o por los puertos ISA y PCI, etc., a una computadora, pero no pueden operar de forma autónoma. El término tarjeta autónoma se refiere a que la tarjeta puede por sí misma (sin necesidad de la computadora), adquirir, procesar, calcular y enviar los valores de las acciones de control para la operación de algún mecanismo o proceso. El término programable a que permite que el programa de control de la tarjeta pueda ser modificado para la aplicación que se deseé monitorear y/o controlar. En el Departamento de Ciencias Computacionales del cenidet se requiere del uso de tarjetas de adquisición de datos que sean capaces de trabajar de forma autónoma para pruebas de interacción con el entorno empleando visión elemental, esto es, empleando sensores digitales; de proximidad, infrarrojos, de color, etcétera. De igual manera en algunos cursos de la Maestría en Mecatrónica se requiere de este tipo de tarjetas para la realización de prácticas. El grupo de visión artificial del cenidet está en condiciones de modelar y solucionar problemas de inspección elemental, pero no ha encontrado una tarjeta comercial de adquisición de datos económica que trabaje de forma autónoma y satisfaga las condiciones necesarias para poder aplicar los algoritmos de control e interactuar con un proceso.

Page 15: TESIS TARJETA PROGRAMABLE - cenidet.edu.mx Joaquin Rivero... · componente como tarjetas de adquisición de datos o controladores lógicos programables (PLCs). En este trabajo se

Diseño y construcción de una tarjeta programable Capítulo 1. Introducción de adquisición, procesamiento de datos y control

3

1.3. Estado del arte de sistemas de adquisición, procesamiento de datos y control de procesos

En esta sección se describen los diferentes sistemas empleados sólo para adquisición de datos o bien, para la adquisición, procesamiento de datos y control, así como las partes que los conforman. Se denomina sistema de adquisición de datos al conjunto de elementos empleados para medir una o varias señales analógicas o digitales. Las etapas de un sistema de adquisición, procesamiento de datos y control son:

• Transductores y sensores • Acondicionadores de señal • Módulo de adquisición de datos • Controlador (controlador lógico programable o PLC, computadora, asistente digital

personal, microcontrolador) 1.3.1. Transductores y sensores La adquisición de datos comienza con el fenómeno físico a ser medido. Este fenómeno físico podría ser la temperatura de un recinto, la intensidad de una fuente luminosa, la presión dentro de una cámara, la fuerza aplicada a un objeto, etcétera. Un sistema de adquisición de datos efectivo puede medir todos estos diferentes fenómenos. Un transductor es un dispositivo que convierte de un tipo de energía a otro. El sensor es un transductor que convierte una magnitud física a otra para facilitar su medición, específicamente a una señal eléctrica para módulos de adquisición de datos. La capacidad de un sistema de adquisición de datos para medir diferentes fenómenos depende de los sensores. Los sensores se clasifican de acuerdo al tipo de señal de salida en dos grupos:

• Sensores digitales • Sensores analógicos

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 más comunes son:

• Interruptor, botón o pulsador. • Microinterruptor. • Sensores infrarrojos optoacoplados.

o De reflexión. (utilizados para detectar la presencia de objetos) o De ranura. (utilizado en encoders)

Page 16: TESIS TARJETA PROGRAMABLE - cenidet.edu.mx Joaquin Rivero... · componente como tarjetas de adquisición de datos o controladores lógicos programables (PLCs). En este trabajo se

Diseño y construcción de una tarjeta programable Capítulo 1. Introducción de adquisición, procesamiento de datos y control

4

Un sensor analógico es aquel que puede entregar una salida variable dentro de un determinado intervalo; por ejemplo, entre 0 y 5 Volts. Los sensores analógicos más comunes son:

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

1.3.2. Acondicionadores de señales El problema de varios transductores es que generan señales demasiado difíciles o peligrosas de medir directamente con un módulo de adquisición de datos. Por ejemplo, cuando se trabaja con alto voltaje, en ambiente con ruido eléctrico, con señales extremadamente altas o bajas o para la medición simultánea de varias señales. Es por esto que es necesario acondicionarlas para que el módulo de adquisición de datos pueda medirlas con mayor precisión. Este proceso es conocido como acondicionamiento de señales e incluye funciones como amplificación, atenuación, filtrado, aislamiento eléctrico y multiplexeo. 1.3.3. Módulos de adquisición de datos La mayoría de los módulos de adquisición de datos tienen entradas, tanto analógicas como digitales y funcionan solamente con conexión a la computadora. Estos módulos operan únicamente en lazo abierto para el monitoreo de variables. Otros módulos con conexión a la computadora tienen tanto entradas como salidas (analógicas y digitales). Éstas no pueden ser programadas para calcular una acción de control. La activación de las salidas depende de las acciones de control provenientes de la computadora. Ver figura 1.1.

Figura 1.1 Módulo de adquisición de datos.

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

Señales

enviadas a la PC

Señales

recibidasdesde la

PC

Señales de entrada

Señales de salida

Acondicionamiento de señales

Page 17: TESIS TARJETA PROGRAMABLE - cenidet.edu.mx Joaquin Rivero... · componente como tarjetas de adquisición de datos o controladores lógicos programables (PLCs). En este trabajo se

Diseño y construcción de una tarjeta programable Capítulo 1. Introducción de adquisición, procesamiento de datos y control

5

Otros equipos de adquisición de datos pueden aplicar un procesamiento matemático a una señal de entrada (por ejemplo la transformada rápida de Fourier) pero esta característica es programada de fábrica y sólo puede ser configurada. Un sistema de adquisición, procesamiento de datos y control tiene: entradas y salidas (tanto analógicas como digitales), conexión opcional a un controlador y esencialmente cuenta con un controlador interno que permite el procesamiento de los datos de entrada y tomar decisiones sin la necesidad de un controlador externo. Ver figura 1.2.

Figura 1.2 Diagrama a bloques de un sistema de adquisición, procesamiento de datos y control.

Respecto a los módulos de adquisición 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 módulos externos, que se conectan a la computadora por medio de un puerto de comunicación como el puerto paralelo, el puerto serie RS232, el puerto Firewire y el puerto USB, el cual es el más usado actualmente. Actualmente, las tarjetas de adquisición de datos se aplican en la industria, existen varias empresas que se dedican a la fabricación de dichas tarjetas en una amplia variedad de características y precios. Las características más importantes de las tarjetas de adquisición de datos son:

Tabla 1.1 Características más importantes de las tarjetas de adquisición de datos.

Número de entradas/salidas Cantidad de entradas/salidas disponibles. Tipo de entradas/salidas La señal que procesa puede ser analógica o digital. Resolución Valor mínimo que puede identificarse de una señal

analógica. Intervalo Los niveles de voltaje o corriente permitidos en la

entrada/salida. Frecuencia de muestreo La cantidad de muestras adquiridas en un segundo. Puerto de conexión El puerto por el que la tarjeta se conecta a la PC o a otra

tarjeta.

Opto acopla dores

Controlador interno

Señales

enviadas a la PC

Señales

recibidasdesde la

PC

Opto acopla dores

Acondicionamiento

de señales de

entrada

Señales de salida

Page 18: TESIS TARJETA PROGRAMABLE - cenidet.edu.mx Joaquin Rivero... · componente como tarjetas de adquisición de datos o controladores lógicos programables (PLCs). En este trabajo se

Diseño y construcción de una tarjeta programable Capítulo 1. Introducción de adquisición, procesamiento de datos y control

6

En la tabla 1.2 se muestran algunas tarjetas comerciales de adquisición de datos.

Tabla 1.2 Sistemas comerciales de adquisición de datos. D

I710

9-36

--

Tarje

ta S

D

rem

ovib

le

1MB

– 1

GB

16

14

4,80

0

± 10

--

-- 8

0 a

5

USB

/E

THER

NET

$540

0 a

$870

0

DA

TAQ

In

stru

men

ts

DI-

148U

USB

--

-- 8 10

14,4

00

± 10

--

-- 6

0 a

5

USB

$550

DA

TAQ

In

stru

men

ts

DI-

158

USB

--

-- 4 12

14,4

00

± 10

2 12

4

0 a

5

USB

$1,1

00

DA

TAQ

In

stru

men

ts

DI-

154R

S

RS2

32

--

-- 4 12

240

± 10

--

--

--

--

RS2

32

$1,6

50

DA

TAQ

In

stru

men

ts

DI-

194R

S

RS2

32

--

-- 4 10

240

± 10

--

--

--

--

RS2

32

$300

DA

TAQ

In

stru

men

ts

DT9

810

USB

--

-- 8 10

25,0

00

0 a

2.44

--

--

20

0 a

5

USB

$1,6

00

Dat

a Tr

ansl

atio

n

USB

-600

9

USB

--

-- 8 14

48,0

00

±1 a

±20

2 12

12

0 a

5

USB

$2,7

00

Nat

iona

l In

stru

men

ts

USB

-600

8

USB

--

-- 8 12

10,0

00

±1 a

±20

2 12

12

0 a

5

USB

$1,6

00

Nat

iona

l In

stru

men

ts

Vol

taje

de

alim

enta

ción

(V

)

Mem

oria

de

prog

ram

a

(KB

ytes

)

Mem

oria

de

dato

s

Entra

das a

naló

gica

s

Res

oluc

ión

de e

ntra

da

(bits

)

Frec

uenc

ia d

e m

uest

reo

(mue

stra

s /se

gund

o)

Inte

rval

o de

ent

rada

(V)

Salid

as a

naló

gica

s

Res

oluc

ión

de sa

lida

(bits

)

E/S

digi

tale

s

Inte

rval

o de

salid

a (V

)

Puer

to d

e co

mun

icac

ión

con

PC

Prec

io (p

esos

mex

ican

os)

Fabr

ican

te

T.P.

Tar

jeta

pro

gram

able

--

No

tiene

Page 19: TESIS TARJETA PROGRAMABLE - cenidet.edu.mx Joaquin Rivero... · componente como tarjetas de adquisición de datos o controladores lógicos programables (PLCs). En este trabajo se

Diseño y construcción de una tarjeta programable Capítulo 1. Introducción de adquisición, procesamiento de datos y control

7

1.3.4. Controladores Las funciones del controlador de un sistema de adquisición de datos son:

• Visualizar las variables provenientes de los sensores. • Procesar las señales de entrada. • Calcular una acción de control. • Registrar y/o graficar las señales de entrada.

Los principales controladores para sistemas de adquisición de datos son:

• Controlador lógico programable (PLC) • Computadora • Asistente digital personal (PDA) • Microcontroladores

1.3.4.1. Puertos para los módulos de adquisición de datos Los módulos de adquisición de datos pueden utilizar uno o varios puertos para comunicarse con un controlador o con otros dispositivos. En términos de computación, un puerto es una forma genérica de denominar a una interfaz por la cual diferentes tipos de datos pueden ser enviados y recibidos. La interfaz puede ser física o a nivel software (por ejemplo, los puertos que permiten la transmisión de datos entre diferentes computadoras). En la tabla 1.3 se muestran los puertos disponibles ordenados por medio de transmisión (alámbrico o inalámbrico), tipo de transmisión (paralelo o serie) y velocidad de transmisión.

Page 20: TESIS TARJETA PROGRAMABLE - cenidet.edu.mx Joaquin Rivero... · componente como tarjetas de adquisición de datos o controladores lógicos programables (PLCs). En este trabajo se

Diseño y construcción de una tarjeta programable Capítulo 1. Introducción de adquisición, procesamiento de datos y control

8

Tabla 1.3 Comparación de puertos de comunicación. [1]

Puerto Formato Número

máximo de dispositivos

Longitud máxima

(m)

Velocidad máxima (bits/s)

Aplicación típica

LPT Paralelo 2 3-9 8M Impresoras, escaners, unidades de disco

IEEE-488 (GPIB) Paralelo 15 18 8M Instrumentación

RS-232 (EIA/TIA-232

Serial asíncrono 2 15-30

20k (115k con hardware

extra)

Modem, ratón, instrumentación

MIDI Lazo de corriente serial 2 15 31.5k Música, control de

espectáculos

Microwire Serial síncrono 8 3 2M Comunicación entre microcontroladores

SPI Serial síncrono 8 3 2.1M Comunicación entre microcontroladores

I2C Serial síncrono 40 5.5 3.4M Comunicación entre microcontroladores

USB Serial asíncrono 127 5 1.5M, 12M,

480M

Ratón, unidad de disco, modem, audio

RS485 (TIA/EIA-485)

Serial asíncrono

32 cargas unitarias 1220 10M

Sistemas de adquisición de datos y de control

Ethernet Serial 1024 490 10M/100M/1G PC en red IEEE-1394 (FireWire)

Serial 64 4.5 400M Video, almacenamiento masivo

IrDA Serial asíncrono infrarrojo

2 1.8 115k Impresoras, asistente digital personal (PDA)

Bluetooth Serial radiofrecuencia 32 10 723k

Teléfonos celulares, PDAs, videocámara

Wi-Fi (IEEE 802.11x)

Serial radiofrecuencia 60 11M, 54M PC en red

Page 21: TESIS TARJETA PROGRAMABLE - cenidet.edu.mx Joaquin Rivero... · componente como tarjetas de adquisición de datos o controladores lógicos programables (PLCs). En este trabajo se

Diseño y construcción de una tarjeta programable Capítulo 1. Introducción de adquisición, procesamiento de datos y control

9

1.4. Propuesta de solución Con la finalidad de resolver problemas tanto de adquisición de datos y para controlar diversos procesos con un solo módulo se planteó:

• Diseñar y construir una tarjeta programable de adquisición, procesamiento de datos y control que funcione de manera autónoma con base en un programa contenido en un microcontrolador, y que pueda controlar una amplia variedad de procesos. Gracias a las características propias del microcontrolador, los puertos digitales de la tarjeta podrán configurarse por software de acuerdo a las necesidades de un proceso determinado.

• Desarrollar los programas necesarios para la interacción del microcontrolador con

los demás componentes de la tarjeta, la adquisición, procesamiento de los datos, el cálculo de los valores de la acción de control y el envío de estos valores para el control de procesos específicos.

1.4.1. Objetivos 1.4.1.1. Objetivo general

• Diseñar y construir una tarjeta programable y autónoma de adquisición, procesamiento de datos y control, con opción de conexión a la computadora o a otra tarjeta similar.

1.4.1.2. Objetivos específicos

• Revisar y seleccionar el microcontrolador a utilizar. • Revisar y seleccionar el protocolo de comunicación con la PC de acuerdo a los

requerimientos de la tarjeta. • Diseñar los diagramas electrónicos de la tarjeta programable de adquisición,

procesamiento de datos y control. • Realizar el programa de monitoreo y control de la tarjeta programable de

adquisición, procesamiento de datos y control. • Construir la tarjeta programable de adquisición, procesamiento de datos y control. • Verificar el funcionamiento y la versatilidad de la tarjeta controlando tres procesos

diferentes. 1.4.2. Metodología de solución

1. Revisar, estudiar y analizar el estado del arte y de la práctica en torno a la adquisición y control A/D. Así como de los protocolos estándar de comunicación a la PC.

2. Estudiar y conocer los diferentes tipos de microcontroladores existentes en el mercado, su uso, funcionalidad y aplicabilidad en el desarrollo del proyecto.

3. Diseñar e implementar los circuitos electrónicos para la tarjeta, y de ser necesario, también de los dispositivos sensores.

Page 22: TESIS TARJETA PROGRAMABLE - cenidet.edu.mx Joaquin Rivero... · componente como tarjetas de adquisición de datos o controladores lógicos programables (PLCs). En este trabajo se

Diseño y construcción de una tarjeta programable Capítulo 1. Introducción de adquisición, procesamiento de datos y control

10

4. Diseñar e implementar el software para el control y monitoreo de las entradas y salidas de la tarjeta.

5. Diseñar un plan de pruebas y realizar las pruebas con diferentes configuraciones de la tarjeta (conectado a la PC y en forma autónoma).

6. Evaluar el funcionamiento global de la herramienta. 7. Aplicar ajustes a la herramienta en caso de que los resultados no sean los esperados.

1.4.3. Aportación o contribución Se empezará en la Coordinación de Mecatrónica del cenidet a desarrollar una tecnología propia de tarjetas programables. Se contará con una tarjeta programable de adquisición, procesamiento de datos y control, económica (no más de $ 1,200 de costo de componentes), fácil de programar (en lenguaje C) y documentada, para aplicaciones a nivel laboratorio, para la realización de prácticas en los Departamentos de Electrónica y ciencias computacionales y la Coordinación de Mecatrónica. Se usará como base para el desarrollo de trabajos de la coordinación de Mecatrónica y con el grupo de visión artificial del Departamento de Ciencias Computacionales del cenidet. 1.5. Organización de la tesis La tesis se encuentra dividida en 7 capítulos distribuidos de la siguiente manera: En el capítulo 1 se encuentran los antecedentes, la descripción del problema, el estado del arte de sistemas de adquisición de datos y control, la propuesta de solución con los objetivos y la metodología de trabajo. El capítulo 2 describe las necesidades de las plantas de muestra consideradas para el desarrollo de la tarjeta programable, además de la descripción funcional de módulos deseables en la tarjeta. El capítulo 3 abarca el diseño electrónico de la tarjeta donde se describen los circuitos electrónicos que conforman la tarjeta programable. El capítulo 4 consta de la construcción, ensamble y pruebas de las tarjetas de circuito impreso. En el capítulo 5 se describe el diseño mecánico y eléctrico, construcción y algoritmo de control de cada una de las plantas a controlar. El capítulo 6 muestra la experimentación y los resultados obtenidos de la aplicación de la tarjeta programable controlando 3 plantas. El capítulo 7 presenta las conclusiones de la elaboración del presente proyecto de tesis.

Page 23: TESIS TARJETA PROGRAMABLE - cenidet.edu.mx Joaquin Rivero... · componente como tarjetas de adquisición de datos o controladores lógicos programables (PLCs). En este trabajo se

Diseño y construcción de una tarjeta programable Capítulo 2. Determinación de las características de adquisición, procesamiento de datos y control funcionales de la tarjeta programable

11

CAPÍTULO 2. DETERMINACIÓN DE LAS CARACTERÍSTICAS FUNCIONALES DE

LA TARJETA PROGRAMABLE

Page 24: TESIS TARJETA PROGRAMABLE - cenidet.edu.mx Joaquin Rivero... · componente como tarjetas de adquisición de datos o controladores lógicos programables (PLCs). En este trabajo se

Diseño y construcción de una tarjeta programable Capítulo 2. Determinación de las características de adquisición, procesamiento de datos y control funcionales de la tarjeta programable

12

2.1. Recursos requeridos por plantas o procesos

La especificación de la tarjeta programable y la selección del microcontrolador se definieron de acuerdo a los requerimientos de cinco plantas o procesos típicos a controlar. Las plantas que se consideraron son: una incubadora, una banda transportadora, un microbot seguidor de línea, una plataforma de paneles solares y un brazo robótico. Los recursos requeridos por las plantas se indican en la tabla 2.1.

Tabla 2.1 Recursos requeridos por plantas o procesos.

Planta o proceso

Recursos Incubadora Banda

transportadora Microbot Plataforma de paneles solares

Brazo robótico

Tipo de proceso SISO MIMO MIMO MIMO MIMO

Valor máximo + 10%

Analógicas 1 - 3 - - 4 Entradas Digitales - 2 3 13 8 14 Digitales 1 - - - - 1 Motor paso a paso - - 2 - - 3 Salidas Motor CD (PWM) - 2 - 2 4 5

Tiempo de respuesta requerido (segundos) 2 0.5 0.5 1 1E-05 1E-06

Precisión en entradas analógicas ± 1 % - - - - ± 0.5 %

Memoria de programa (Bytes) 90 150 300 1500 6000 8000

Al valor máximo de cada requerimiento se le agregó aproximadamente un 10 % adicional para tener un margen de seguridad y obtener las características preliminares de la tarjeta programable. 2.2. Microcontroladores y controladores de señal digital En la presente sección se describen los principales microcontroladores utilizados en México, además de los nuevos controladores con características tanto de microcontroladores como de procesadores de señal digital (DSP). Estos dispositivos se consideran más aptos para la solución del problema por sus destacables características de funcionamiento además de pertenecer a los principales distribuidores de componentes electrónicos en México. 2.2.1. Microcontroladores Los sistemas de control embebidos más pequeños usan microcontroladores como su procesador, con la ventaja de que éstos incorporan componentes que tienen la funcionalidad de una computadora en un circuito integrado. Un microcontrolador está constituido por una Unidad Central de Procesamiento (CPU), una pequeña cantidad de memoria interna (ROM y/o RAM), y una forma de entradas y salidas (E/S), las cuales están implementadas como subsistemas. Estos subsistemas proporcionan la funcionalidad adicional para el procesador y son comunes entre varios procesadores.

Page 25: TESIS TARJETA PROGRAMABLE - cenidet.edu.mx Joaquin Rivero... · componente como tarjetas de adquisición de datos o controladores lógicos programables (PLCs). En este trabajo se

Diseño y construcción de una tarjeta programable Capítulo 2. Determinación de las características de adquisición, procesamiento de datos y control funcionales de la tarjeta programable

13

Las E/S más 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 además 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 diseñador de sistemas, esto da gran versatilidad en como usar un microcontrolador dentro de una aplicación. Varios microcontroladores tienen además entradas analógicas, lo que permite muestrear sensores para propósitos 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 Periférica Serial (Serial Peripheral Interface o SPI) y la Interconexión de Circuitos Integrados (Inter-Integrated Circuit o I2C), proporcionan una manera sencilla de expandir la funcionalidad del microcontrolador. La mayoría 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 están 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 analógicas, control de motores y comunicación con otros dispositivos de control. La selección de un microcontrolador (ya que hay literalmente miles de familias disponibles de varios fabricantes) depende de las necesidades de procesamiento y los requerimientos de comunicación. Los microcontroladores más comunes en México 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.

Page 26: TESIS TARJETA PROGRAMABLE - cenidet.edu.mx Joaquin Rivero... · componente como tarjetas de adquisición de datos o controladores lógicos programables (PLCs). En este trabajo se

Diseño y construcción de una tarjeta programable Capítulo 2. Determinación de las características de adquisición, procesamiento de datos y control funcionales de la tarjeta programable

14

Tabla 2.2 Características técnicas de los microcontroladores.

TI (D

SP)

TMS3

20LF

2407

40 M

Hz

32 K

2.5

K

X

41

X

X

2 de

16

bits

3.3

V

16 c

anal

es d

e 10

bi

ts

PGE

144

term

inal

es

25 n

s

C

Cod

e C

ompo

ser

Stud

io

$ 26

7.00

AG

ele

ctró

nica

--

--

Mot

orol

a M

C68

HC

12

8 M

Hz

32 K

1 K

768

110

63

X

X

-0.3

– 6

.5 V

8 ca

nale

s de

10 b

its

QFP

80

term

inal

es

Ensa

mbl

ador

MC

Uez

$ 28

7.00

AG

el

ectró

nica

--

--

Mot

orol

a M

C68

HC

11A

8

3 M

Hz

256

8 K

512

145

38

X

X

1 de

8 b

its

-0.3

– 7

V

8 ca

nale

s de

8 bi

ts

QFP

64

term

inal

es

Ensa

mbl

ador

MC

Uez

$ 13

6.00

AG

ele

ctró

nica

--

--

Mic

roch

ip

dsPI

C30

F

20-3

0 M

Hz

12 K

- 48

K

1 K

– 2

K

1 K

84

20 -

30

X

X

3 de

16

bits

4.5

– 5.

5 V

8 ca

nale

s de

12 b

its

DIP

18

– 28

40

33.3

– 5

0 ns

C

MPL

AB

$ 14

2.00

Mic

roch

ip

.com

--

Mic

roch

ip

PIC

16C

765

24 M

Hz

8 K

256

X

35

33

X

X

2 de

8 b

its

1 de

16

bits

4.35

– 5

.25

V

8 ca

nale

s de

8 bi

ts

TQFP

44

term

inal

es

C

MPL

AB

$ 25

1.00

AG

el

ectró

nica

--

--

Atm

el

ATm

ega1

03

6MH

z

128

K

4 K

4 K

121

32

8 8 2 de

8 b

its

1 de

16

bits

4.0

– 5.

5 V

8 ca

nale

s de

10 b

its

TQFP

64

term

inal

es

160

ns

C

AV

RSt

udio

Mou

ser.c

om

--

--

Mic

roch

ip

PIC

16F8

77

20 M

Hz

8 K

368

256

35

33

X

X

2 de

8 b

its

1 de

16

bits

2.0

– 5.

5 V

8 ca

nale

s de

10 b

its

PDIP

40

term

inal

es

200

ns

C

MPL

AB

$ 78

.00

AG

el

ectró

nica

ST

ST7L

ite 0

16 M

Hz

1 K

128

128

63

13

5 de

13

X

1 de

8 b

its

1 de

12

bits

2.4

– 5.

5 V

5 ca

nale

s de

8 bi

ts

DIP

16

term

inal

es

Ensa

mbl

ado

r $ 23

.50

Mou

ser

.com

--

--

Atm

el

ATt

iny2

8

4 M

Hz

2 K

X

X

90

11

8 1 1 de

8 b

its

2.7

– 5.

5 V

X

PDIP

28

term

inal

es

250

ns

C

AV

RSt

udio

$ 16

.50

Mou

ser

.com

--

--

Mic

roch

ip

PIC

16F8

4

10 M

Hz

1 K

68

64

35

13

X

X

1 de

8 b

its

2.0

– 6.

0 V

X

PDIP

18

term

inal

es

400

ns

C

MPL

AB

$ 63

.00

AG

el

ectró

nica

Car

acte

rístic

as

Máx

ima

fr

ecue

ncia

de

oper

ació

n M

emor

ia d

e pr

ogra

ma

Mem

oria

de

dato

s M

emor

ia

EEPR

OM

Ju

ego

de

inst

rucc

ione

s Te

rmin

ales

ES

prog

ram

able

s

Term

inal

es E

Term

inal

es S

Con

tado

r/ te

mpo

rizad

or

Vol

taje

de

o per

ació

n

AD

C –

bits

Enca

psul

ado

Tiem

po d

e ci

clo

de in

stru

cció

n

Com

pila

dore

s

Her

ram

ient

a de

pr

ogra

mac

ión

Cos

to μ

C

Prov

eedo

r

Info

rmac

ión

Expe

rienc

ia d

e lo

s tes

ista

s

Niv

eles

:

-- N

ingu

na

Baj

o

R

egul

ar

A

lto

Cam

bio

de d

ólar

= $

10.

30. P

reci

os si

n IV

A

Page 27: TESIS TARJETA PROGRAMABLE - cenidet.edu.mx Joaquin Rivero... · componente como tarjetas de adquisición de datos o controladores lógicos programables (PLCs). En este trabajo se

Diseño y construcción de una tarjeta programable Capítulo 2. Determinación de las características de adquisición, procesamiento de datos y control funcionales de la tarjeta programable

15

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

• Familia Básica en Máscara ROM • Familia Característica en Máscara ROM • Familia OTP • Familia S

La familia que interesa es la familia S subfamilia SB/CB porque es la única que posee memoria de programa tipo Flash. Hasta el momento sólo hay versiones de 32 kbytes en Flash y con conversor analógico 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 núcleo de la familia característica de alta escala de integración. La característica 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 característica se tiene una unidad de conversión analógica-digital (COP8CB), temporizadores de alta velocidad, ocho puertos, unidad de comunicación serial USART (transmisión y recepción síncrona y asíncrona universal) y reinicio por bajo voltaje de alimentación. Se temporiza con cristales de hasta 20MHz y es ISP (In System Programming, se puede programar el microcontrolador en circuito). [2] 2.2.1.2. Microchip PIC A finales de los 70’s, General Instruments tenía un procesador de 16 bits conocido como CP1600. Éste era grande y pasó al olvido perdiendo terreno frente al 8086 de Intel y el 68000 de Motorola. El problema con el CP1600 fue que tenía capacidad de E/S limitada, y entonces General Instruments diseñó un procesador más pequeño para actuar como un controlador de E/S. La idea era que este controlador podía proporcionar no solamente las E/S para el CP1600, sino que además ser un procesador permitiendo proporcionar algún grado de control inteligente. Este procesador fue llamado Controlador de Interfaz Periférica (Peripheral Interface Controller) o PIC. El CP1600 desapareció pero la pequeña compañía existe. A mediados de los 80’s, la división de microelectrónica de General Instruments se convirtió en Microchip y el procesador PIC fue su producto central. Los PICs son ampliamente usados en los controles de la consola de juegos Playstation de Sony, juguetes infantiles, aparatos domésticos y sistemas industriales. La arquitectura original del PIC tiene solamente un acumulador (conocido como registro de trabajo o registro w) y de 25 a 368 bytes de RAM en los procesadores originales. El byte

Page 28: TESIS TARJETA PROGRAMABLE - cenidet.edu.mx Joaquin Rivero... · componente como tarjetas de adquisición de datos o controladores lógicos programables (PLCs). En este trabajo se

Diseño y construcción de una tarjeta programable Capítulo 2. Determinación de las características de adquisición, procesamiento de datos y control funcionales de la tarjeta programable

16

menos significativo del contador de programa, el registro de estado y varios registros de control están ubicados en la parte baja del espacio RAM y pueden ser accesados por operaciones de movimiento de memoria. La parte superior de la memoria RAM es para datos. Microchip se refiere al espacio RAM como “registros” aunque tienen funcionalidad limitada como registros reales. Son principalmente para almacenamiento de datos. Aparte de algunas excepciones, el PIC no tiene buses externos y es una computadora contenida dentro de un circuito integrado. La expansión es posible usando las interfases periféricas del microcontrolador (SPI e I2C) o los puertos digitales de E/S. El PIC se destaca de otros microcontroladores para aplicaciones en las que el tamaño y el consumo de potencia son críticos. El PIC es de tipo RISC, es decir, está basado en un conjunto reducido de instrucciones. La arquitectura es Harvard, en la cual el programa y los datos se encuentran en memorias independientes. La memoria de datos es de 8 bits, mientras que la memoria de código es de 12 o 16 bits dependiendo de la familia de PIC. [3] El conjunto de microcontroladores PIC se distribuye en cuatro familias [4]:

• Básica (PIC12C5xx y PIC16C5x) • Media (PIC12C6xx y PIC16Cxx) • Alta (PIC17Cxxx) • Mejorada (PIC18Cxxx)

El ambiente de desarrollo de software de Microchip (MPLAB) proporciona un ensamblador, un simulador y software para grabar el código en los microcontroladores. MPLAB puede descargarse gratuitamente del sitio Web de Microchip (http://www.microchip.com). Existen varios compiladores del lenguaje C comerciales (CCS, PICC, C18) para los PIC de los que pueden encontrarse versiones de demostración en la página oficial de cada compilador. 2.2.1.3. Atmel AVR El AVR fue desarrollado en Noruega y es producido por ATMEL. Es un microcontrolador RISC con arquitectura Harvard diseñado para una rápida ejecución y un bajo consumo de potencia. Tiene 32 registros de 8 bits de propósito general y con 118 instrucciones provee un ambiente de programación versátil. En muchos AVRs, la pila se encuentra en la memoria general. Puede entonces ser manipulada por instrucciones y no tiene límite de tamaño. El AVR tiene los espacios de memoria de programa y datos separados y soporta un espacio de dirección de hasta 8M. [3]

Page 29: TESIS TARJETA PROGRAMABLE - cenidet.edu.mx Joaquin Rivero... · componente como tarjetas de adquisición de datos o controladores lógicos programables (PLCs). En este trabajo se

Diseño y construcción de una tarjeta programable Capítulo 2. Determinación de las características de adquisición, procesamiento de datos y control funcionales de la tarjeta programable

17

Hay tres familias básicas dentro de la arquitectura AVR:

• ATtiny, para aplicaciones de pequeña escala. • AT90xxxx, que es la familia original. • ATmega, para aplicaciones complejas.

Para el desarrollo de software, se dispone de un puerto de gcc (compilador de C desarrollado en el proyecto GNU) para el AVR. ATMEL proporciona un ensamblador, un simulador y software para grabar los programas en los microcontroladores. El software de ATMEL se puede descargar gratuitamente en su sitio Web (http://www.atmel.com). 2.2.1.4. Motorola HC11 / HC912 El HCMOS MC68HC11A8 es un microcontrolador de 8 bits con capacidades periféricas integradas altamente sofisticadas. Un diseño completamente estático y un proceso de fabricación de semiconductor oxido-metal complementario de alta densidad (High-density Complementary Metal-Oxide Semiconductor o HCMOS) permiten dispositivos de serie E para operar en frecuencias de 3 MHz a corriente directa, con bajo consumo de potencia. La tecnología CMOS de alta densidad utilizada en el MC68HC11A8 combina el menor tamaño y mayores velocidades con baja potencia y alta inmunidad al ruido de CMOS. Los sistemas de memoria integrados incluyen 8 Kbytes de ROM, 512 bytes de EEPROM y 256 bytes de RAM estática. Más funciones periféricas están dentro del chip. Se incluye un conversor analógico a digital de 8 canales con resolución de 8 bits, además de una interfaz de comunicación serial asíncrona (SCI) y una interfaz periférica serial síncrona (SPI). El sistema temporizador principal de 16 bits tiene tres líneas de entrada de captura, cinco líneas de salida de comparación y una función de interrupción de tiempo real. Un subsistema acumulador de pulsos de 8 bits puede contar eventos externos o medir periodos externos. La circuitería de auto monitoreo está incluida en el circuito integrado para proteger contra errores del sistema. Un sistema de perro guardián (watchdog) de operación apropiada protege contra fallas por software. Un sistema de monitoreo de reloj genera un reinicio al sistema en caso de que se pierda la señal de reloj o se ejecute demasiado lento. Se dispone de dos modos de operación controlados por software, WAIT y STOP, para ahorrar energía. [5] El MC68HC912 es un microcontrolador de 16 bits compuesto de periféricos estándares dentro del chip. El bus externo multiplexado puede operar en modo reducido de 8 bits para interconectar con una memoria de 8 bits en sistemas de menor costo. [6]

Page 30: TESIS TARJETA PROGRAMABLE - cenidet.edu.mx Joaquin Rivero... · componente como tarjetas de adquisición de datos o controladores lógicos programables (PLCs). En este trabajo se

Diseño y construcción de una tarjeta programable Capítulo 2. Determinación de las características de adquisición, procesamiento de datos y control funcionales de la tarjeta programable

18

2.2.2. Controladores de señal digital En la actualidad cada vez más se empieza a desarrollar la tecnología mezclada entre microprocesadores y DSP's. Diversas son las razones para que se produzca esta integración, sin embargo, es posible identificar una en particular: los requerimientos de control en tiempo real bajo condiciones cada vez más exigentes en cuanto a necesidad de cálculo han llevado a los fabricantes de microcontroladores (Microchip, ST, etc.) a integrar a sus microprocesadores características de DSP (unidades de cálculo paralelas, ejecución paralela de instrucciones o pipeline, etc.) y por el otro lado los fabricantes de DSP's (Texas Instruments, Motorola, etc.) empiezan a utilizar las características de microcontroladores (conversores A/D, puertos digitales E/S, bloques de modulación por ancho de pulso o PWM) integrándolas dentro del DSP. Estos nuevos dispositivos son nombrados controladores de señal digital. Un controlador de señal digital (Digital Signal Controller o DSC) es un controlador incrustado en un solo chip que integra los atributos de control de un microcontrolador con la eficiencia y rendimiento computacional de un procesador de señal digital. 2.2.2.1. Texas Instruments C2000 La plataforma TMS320C2000 de controladores de señal digital establece el estándar de desempeño e integración periférica ofreciendo una combinación única de tecnología líder en DSPs de Texas Instruments con la integración de periféricos y facilidad de uso de microcontroladores. La familia TMS320C24x de controladores de señal digital ofrece de 20 a 40 MIPS de desempeño DSP junto con el control y facilidad de uso de un microcontrolador con memoria Flash o ROM integrada y son ideales para implementar algoritmos de control sofisticados en aplicaciones sensibles de costo y limitados de espacio como productos de línea blanca. Al igual que el C28x, el C24x ofrece seguridad total de código para su propiedad de código intelectual. El conjunto de instrucciones de un ciclo permite calcular funciones matemáticas complejas en tiempo real mientras que la arquitectura Harvard optimiza la matemática vectorial, ideal para aplicaciones de control embebido. La arquitectura avanzada tipo Harvard del controlador C24x maximiza la potencia de procesamiento manteniendo dos estructuras de bus de memoria separadas, programa y datos, para ejecución a velocidad completa. Esta múltiple estructura de bus permite la lectura de datos e instrucciones simultáneamente. Las instrucciones soportan transferencia de datos entre los dos espacios. La familia TMS320C28x de controladores de señal digital son los primeros controladores de 32 bits basados en DSP de la industria con memoria Flash o ROM en tarjeta y desempeño hasta de 150 millones de instrucciones por segundo (MIPS). Centrados a motores y controles industriales y aplicaciones automotrices. El núcleo C28x es el núcleo de mayor desempeño de control optimizado y ofrece hasta 150 MIPS de ancho de banda computacional para manejar numerosos algoritmos de control sofisticado en tiempo real como control de velocidad sin sensores, PWM aleatorio y corrección del factor de potencia.

Page 31: TESIS TARJETA PROGRAMABLE - cenidet.edu.mx Joaquin Rivero... · componente como tarjetas de adquisición de datos o controladores lógicos programables (PLCs). En este trabajo se

Diseño y construcción de una tarjeta programable Capítulo 2. Determinación de las características de adquisición, procesamiento de datos y control funcionales de la tarjeta programable

19

El C28x es además el núcleo más eficiente de código en la industria y su código es completamente compatible con dispositivos actuales de la familia C2000. [7] Varias características únicas disponibles en el núcleo del controlador C28x fueron desarrolladas junto con el compilador C para ofrecer una excelente relación de C a ensamblador de 1.1. El núcleo del controlador C28x fue diseñado únicamente para soportar la librería “IQ-math” dando al diseñador la comodidad del desarrollo de algoritmos de punto flotante a la perfección combinado con la efectividad de costos de una máquina de punto fijo. En la tabla 2.3 se comparan las dos familias de controladores C2000.

Tabla 2.3 Comparación de familia de controladores C2000.

Parámetro Controladores de punto fijo C24x

Controladores de punto fijo C28x

Unidades

Frecuencia de trabajo 20 – 40 150 MHz Velocidad de procesamientos

20 – 40 150 MIPS

Arquitectura Punto fijo de 16 bits Punto fijo de 32 bits Memoria Flash / ROM 8 – 32 mil / 4 – 32 mil Hasta 128 mil / 4 mil Palabra RAM Hasta 2.5 mil 18 mil Palabra ADC 10 bit, 500 ns 12 bit, 80 ns Periféricos SCI, SPI, CAN SCI, SPI, CAN,

McBSP

Administrador de eventos

Hasta 16 PWM, E/S de propósito general, 4 temporizadores, CAP/QEP

16 PWM, E/S de propósito general, 7 temporizadores, CAP/QEP

Precio (por unidad en la compra de mil unidades)

22.00 – 180.00 64.00 – 182.00 Pesos mexicanos

2.2.2.2. Microchip dsPIC Los controladores de señal digital dsPIC abarcan un amplio campo de requerimientos de desempeño, haciéndolo una arquitectura ideal para cualquier consideración de un microcontrolador de 16 bits, DSP o incluso un microcontrolador de 32 bits. Los dispositivos fueron diseñados para proporcionar un aspecto familiar a los usuarios de microcontroladores, especialmente a los usuarios de microcontroladores PIC. Las características de DSP fueron integradas para facilitar la adopción por los nuevos usuarios de tecnología DSP. Además, la estructura de precio de los dispositivos dsPIC los hace aceptables para aplicaciones de control embebido. Los controladores de señal digital dsPIC fueron planeados desde las bases para proporcionar todas las características que un usuario esperaría de un microcontrolador de 16 bits. Un conjunto rico de instrucciones asociado con amplios modos de

Page 32: TESIS TARJETA PROGRAMABLE - cenidet.edu.mx Joaquin Rivero... · componente como tarjetas de adquisición de datos o controladores lógicos programables (PLCs). En este trabajo se

Diseño y construcción de una tarjeta programable Capítulo 2. Determinación de las características de adquisición, procesamiento de datos y control funcionales de la tarjeta programable

20

direccionamiento opera sobre un conjunto de registros de trabajo de propósito general y una pila de software. El resultado es una muy buena eficiencia de compilación en C. Todos los dispositivos usan tecnología de memoria Flash para la memoria de programa y la EEPROM de datos, para ofrecer la máxima flexibilidad en tiempos de ciclos de manufactura. La tecnología de autoprogramación en circuito permite la actualización remota de la memoria de programa y la EEPROM de datos. La alta confiabilidad de la memoria Flash permite una retención de datos por 40 años y hasta un millón de ciclos de grabado y borrado a 85 grados centígrados. Un poderoso conjunto de características DSP permiten un desempeño competitivo. Un multiplicador de 17x17 bits en un solo ciclo, dos acumuladores de 40 bits y un registro de corrimiento cíclico de 40 bits; ciclos de Do y Repeat; redondeo y truncamiento de resultados y soporte de un modo de direccionamiento especial para buffers circulares y transformadas rápidas de Fourier (FFT’s). Además, la arquitectura dsPIC soporta una estructura flexible de procesamiento de interrupciones. Cada dispositivo incluye un extenso conjunto de módulos periféricos, incluyendo temporizadores, subsistemas seriales y canales de convertidor analógico a digital. Algunos dispositivos contienen periféricos avanzados orientados para aplicaciones específicas como control de motores, audio o conectividad a Internet. Por último pero no menos importante, los dispositivos contienen lógica hardware que permite depuración y programación Flash en circuito sin remover el dispositivo de la tarjeta de aplicación. Los dsPICs están disponibles en dos categorías de velocidad: una versión de 20 MIPS y una versión de 30 MIPS. [8] Las familias en las que se dividen los dsPICs son:

• Familia de propósito general. Esta familia es ideal para una amplia variedad de aplicaciones embebidas para microcontroladores de 16 bits. Además, existen variantes con interfases codificadores-decodificadores (codecs) que se ajustan para aplicaciones de audio.

• Familia de control de motores y conversión de potencia. Esta familia soporta aplicaciones de control de motores, como motores de CD sin escobillas, motores de inducción de una y tres fases y motores de reluctancia conmutativa. Son ideales para fuentes ininterrumpidas de poder (UPS), inversores, fuentes de poder conmutativos y corrección del factor de potencia.

• Familia de sensores. Los productos de esta familia tienen opciones diseñadas para soportar aplicaciones de control embebido de bajo costo y alto desempeño. Los encapsulados de 18 y 28 pines son diseñados para ajustarse a aplicaciones de espacio crítico.

Page 33: TESIS TARJETA PROGRAMABLE - cenidet.edu.mx Joaquin Rivero... · componente como tarjetas de adquisición de datos o controladores lógicos programables (PLCs). En este trabajo se

Diseño y construcción de una tarjeta programable Capítulo 2. Determinación de las características de adquisición, procesamiento de datos y control funcionales de la tarjeta programable

21

2.2.3. Herramientas de desarrollo Las herramientas de desarrollo son los programadores, emuladores y tarjetas de evaluación para cada microcontrolador. Los programadores son los dispositivos con los que se puede programar el microcontrolador. Los emuladores son herramientas que permiten probar el circuito de control y en donde se puede visualizar la ejecución del programa, detenerlo en alguna línea del código de programa, así como modificar el contenido de memoria de datos. Las tarjetas de evaluación son tarjetas con los circuitos necesarios para que el microcontrolador y sus periféricos funcionen. En cuanto a software, algunos fabricantes proporcionan de forma gratuita un entorno integrado de desarrollo (IDE) el cual consta básicamente de un editor, un compilador y un simulador. El simulador tiene implementadas las funciones que realizaría el microcontrolador de acuerdo al programa y a las condiciones establecidas como son el estado de las terminales del microcontrolador. Algunos fabricantes independientes de los microcontroladores desarrollan programas compiladores de un lenguaje de alto nivel al lenguaje ensamblador del microcontrolador. Buscando mantener la sencillez y economía para la programación de los microcontroladores, se muestran las herramientas de desarrollo disponibles para cada microcontrolador desde algunos que puede armar el usuario hasta los comerciales. Para el microcontrolador COP8 de National Semiconductor, el ambiente de desarrollo es el WCOP8 IDE, y el programador es una interfaz sencilla que se conecta al puerto paralelo de la computadora y utiliza el programa FLASHWIN para cargar el programa al microcontrolador. Este programador utiliza la característica ISP (In System Programming) en donde puede programarse el microcontrolador cuando se encuentra conectado en el circuito de trabajo. La emulación se puede realizar con algunas herramientas comerciales del fabricante como son la unidad de emulador y programación (Emulator and Programming Unit), el módulo de depuración (Debug Module) y el depurador “ICE Master”. Algunas herramientas pueden emular en tiempo real y pueden tanto emular como programar o emular solamente. El ambiente de trabajo utilizado para los microcontroladores PIC de Microchip es el MPLAB IDE, también puede comunicarse y trabajar con los programadores PICStart Plus, MPLAB PM3, PRO MATE II y los emuladores ICD 2, ICE 4000 y ICE 2000; todos estos productos comerciales de Microchip. También existe una diversidad de programadores fáciles de armar que se conectan al puerto paralelo o serie de la computadora. Algunos de estos programadores son el NOPP, el JDM, el PIPO 2, el PP2 y el GTP. Algunos pueden grabar el PIC estando conectado en el circuito de trabajo. Algunos programas que se utilizan con estos programadores son IC PROG, PONY PROG y WinPic 800. Los programas para los microcontroladores AVR de Atmel pueden ser desarrollados en AVRStudio o WinAVR. El programador más sencillo es una interfaz con un buffer de protección conectado al puerto paralelo, este programador es utilizado junto con el AVRStudio. Algunas de las herramientas para emular los AVR’s son ICE 40, ICE 50 y JTAG ICE 2.

Page 34: TESIS TARJETA PROGRAMABLE - cenidet.edu.mx Joaquin Rivero... · componente como tarjetas de adquisición de datos o controladores lógicos programables (PLCs). En este trabajo se

Diseño y construcción de una tarjeta programable Capítulo 2. Determinación de las características de adquisición, procesamiento de datos y control funcionales de la tarjeta programable

22

Para realizar la compilación de los programas para el MC68HC11 se utiliza el IASM11, los programas disponibles para simulación 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 evaluación del MC68HC11 y MC68HC12 son sistemas mínimos 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 señal digital C2000 de Texas Instruments. Utiliza el lenguaje C para la programación de los dispositivos. Estos controladores ya vienen ensamblados en tarjetas de desarrollo o módulos de evaluación 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. También 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 evaluación, tarjetas de desarrollo, programadores y emuladores específicos para una familia de microcontroladores o solamente para un microcontrolador. 2.3. Proceso de selección del microcontrolador con el que opera la tarjeta

programable La elección de un microcontrolador para una aplicación se dificulta usualmente por la existencia de una enorme variedad de opciones y características de los chips y otros factores de difícil ponderación como son: existencia en el mercado, documentación y apoyo técnico, disponibilidad y costo de las herramientas de desarrollo, conocimiento de otros productos del fabricante, seriedad del proveedor y obtención gratuita de muestras. Los criterios considerados para determinar el microcontrolador a utilizar en la tarjeta son:

1. Frecuencia de operación.- Da una idea de la velocidad de procesamiento del microcontrolador.

2. Número de canales analógicos/digitales de entrada/salida.- Es la cantidad de variables analógicas/digitales de entrada/salida que tiene el microcontrolador.

3. Tamaño de memoria de programa.- La capacidad en kilobytes para almacenar el programa de control.

4. Tamaño de memoria de datos.

Page 35: TESIS TARJETA PROGRAMABLE - cenidet.edu.mx Joaquin Rivero... · componente como tarjetas de adquisición de datos o controladores lógicos programables (PLCs). En este trabajo se

Diseño y construcción de una tarjeta programable Capítulo 2. Determinación de las características de adquisición, procesamiento de datos y control funcionales de la tarjeta programable

23

La capacidad en bytes para almacenar datos medidos, datos procesados o valores calculados.

5. Tipo de encapsulado. Sirve para identificar la dimensión y también la disposición de terminales para la realización en circuito impreso.

6. Número de canales analógicos/digitales de entrada/salida. Es la cantidad de variables analógicas/digitales de entrada/salida que tiene el microcontrolador.

7. Interfaz de comunicación. Los estándares que permiten la comunicación de la tarjeta programable con otros dispositivos (como la PC u otra tarjeta similar).

8. Costo. El precio por unidad de microcontrolador.

9. Lenguaje y/o compilador. Lenguaje en el que puede programarse y compiladores el microcontrolador

10. Disponibilidad de herramientas de programación y desarrollo. Facilidad para conseguir o elaborar las herramientas de programación y desarrollo.

11. Costo de herramientas de programación y desarrollo. En las figuras 2.1, 2.2 y 2.3 se pueden comparar con facilidad los microcontroladores de acuerdo a la frecuencia de operación, número de terminales de E/S y memoria de programa que posee cada uno. Se marca con una línea para diferenciar cuáles microcontroladores tienen un valor adecuado para cada parámetro considerado de acuerdo a las necesidades descritas en la columna de valor máximo de la tabla 2.1. Las características principales de los microcontroladores están concentradas en la tabla 2.2.

Figura 2.1 Comparación de microcontroladores en cuanto a frecuencia de operación.

Frecuencia de operación (MHz)

24

120120

4040

2016108643

0

20

40

60

80

100

120

140

MC68HC11

ATtiny2

8

ATmega1

03

MC68HC12

PIC16

F84

ST7Lite

0

PIC16

F877

PIC16

C765

PIC18

F452

TMS320L

F2407

A

dsPIC

30F

dsPIC

30F-B

Frecuencia de operación (MHz)

Requerimiento mínimo

Page 36: TESIS TARJETA PROGRAMABLE - cenidet.edu.mx Joaquin Rivero... · componente como tarjetas de adquisición de datos o controladores lógicos programables (PLCs). En este trabajo se

Diseño y construcción de una tarjeta programable Capítulo 2. Determinación de las características de adquisición, procesamiento de datos y control funcionales de la tarjeta programable

24

Figura 2.2 Comparación de microcontroladores en cuanto a número de terminales de E/S.

Figura 2.3 Comparación de microcontroladores en cuanto a memoria de programa.

Numero de E/S

13

38

6368

413333333230

1311

0

10

20

30

40

50

60

70

80

ATtiny2

8

PIC16

F84

ST7Lite

0

dsPIC

30F

ATmega1

03

PIC16

F877

PIC16

C765

PIC18

F452

MC68HC11

TMS320L

F2407

A

MC68HC12

dsPIC

30F-B

Numero de E/S´

´

Requerimiento mínimo

Memoria de programa (KB)

8

32 32

128

144

1 1 2 816

24

10

20

40

60

80

100

120

140

160

PIC16

F84

ST7Lite

0

MC68HC11

ATtiny2

8

PIC16

F877

PIC16

C765

PIC18

F452

dsPIC

30F

MC68HC12

TMS320L

F2407

A

ATmega1

03

dsPIC

30F-B

Memoria de programa (KB)

Requerimiento mínimo

Page 37: TESIS TARJETA PROGRAMABLE - cenidet.edu.mx Joaquin Rivero... · componente como tarjetas de adquisición de datos o controladores lógicos programables (PLCs). En este trabajo se

Diseño y construcción de una tarjeta programable Capítulo 2. Determinación de las características de adquisición, procesamiento de datos y control funcionales de la tarjeta programable

25

Para obtener el intervalo de la familia dsPIC30F, se graficaron dos elementos de esta familia, el más austero y el más completo. Los microcontroladores útiles para la mayoría de las plantas o procesos son los que se encuentran en la parte superior de la línea interrumpida de cada una de las tres gráficas anteriores; dichos microcontroladores tienen un costo ligeramente menor al de algunos otros que cuentan con mejores características, por lo que se optó por seleccionar un microcontrolador que ofrezca mayores prestaciones a la tarjeta y con disponibilidad de información y apoyo técnico sin que el costo del microcontrolador varíe significativamente. También se consideró la utilización de nuevas tecnologías para tener referencias de consulta en el CENIDET. Con base en los valores de los criterios anteriormente mencionados, el microcontrolador que se considera idóneo para el desarrollo de este proyecto es de la familia dsPIC30F, ya que proporciona mejores características a la tarjeta sin que la variación del precio sea muy significativo y es una nueva tendencia en cuanto a microcontroladores que están adquiriendo características de procesadores de señal digital (DSP). Se adquirieron los dsPIC30F pero no se consiguió el programador de dsPICs y éstos no se pueden programar con los programadores PICSTART Plus, TE-20 y EPIC. Por consecuencia se seleccionó al PIC18F452 que tiene características cercanas al dsPIC30F como una velocidad de procesamiento de 10 MIPS comparado con 30 MIPS del dsPIC30F además de que se puede adquirir fácilmente al contrario de los dsPIC que no había venta al menudeo en México. En la tabla 2.4 se muestra la comparación del PIC18F452 y la familia dsPIC30F.

Tabla 2.4 Comparación entre el PIC18F452 y el dsPIC30F.

Características PIC18F452 dsPIC30F Memoria de programa Flash 32 KBytes 12 – 144 KBytes Velocidad de procesamiento 10 MIPS 20 o 30 MIPS Número de terminales de entradas/salidas digitales 24 13

Número de terminales de entradas analógicas 5 13

Conjunto de instrucciones optimizado para compilador C

Si Si

Memoria de datos EEPROM 256 Bytes 1 – 4 KBytes Número de instrucciones 75 84

Page 38: TESIS TARJETA PROGRAMABLE - cenidet.edu.mx Joaquin Rivero... · componente como tarjetas de adquisición de datos o controladores lógicos programables (PLCs). En este trabajo se

Diseño y construcción de una tarjeta programable Capítulo 2. Determinación de las características de adquisición, procesamiento de datos y control funcionales de la tarjeta programable

26

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

Figura 2.4 Circuito oscilador del microcontrolador

La tabla 2.5 indica el valor de los capacitores cerámicos 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 Selección de capacitores

MODO FRECUENCIA DEL CRISTAL

(MHz)

C1 (pF)

C2 (pF)

0.032 33 33 LP (Cristal de baja potencia) 0.200 15 15

0.200 22-68 22-68 1 15 15 XT

(Cristal) 4 15 15 4 15 15 8 15-33 15-33

20 15-33 15-33 HS

(Cristal de alta velocidad) 25 15-33 15-33

Esquema de tiempo de ejecución de instrucciones La entrada de la señal de reloj por OSC1 es internamente dividido en cuatro relojes de cuadratura no traslapados, llamados Q1, Q2, Q3 y Q4. Internamente el contador de programa (CP) es incrementado cada pulso de reloj de Q1, la instrucción es buscada en la memoria de programa y almacenada en el registro de instrucción en Q4. La instrucción es codificada y ejecutada en el siguiente ciclo de Q1 a Q4. El flujo de búsqueda y ejecución de la instrucción es mostrado en la figura 2.5.

XTAL

C1

RF

C2 REPOSO

Alógicainterna

OSC2

OSC1

PIC18FXXX

<

>

Page 39: TESIS TARJETA PROGRAMABLE - cenidet.edu.mx Joaquin Rivero... · componente como tarjetas de adquisición de datos o controladores lógicos programables (PLCs). En este trabajo se

Diseño y construcción de una tarjeta programable Capítulo 2. Determinación de las características de adquisición, procesamiento de datos y control funcionales de la tarjeta programable

27

Figura 2.5 Flujo de ejecución de instrucciones.

Flujo simultáneo de búsqueda y ejecución de instrucciones (pipelining) Un ciclo de instrucción es el tiempo en el que se ejecuta una instrucción y consta de cuatro ciclos de reloj (Q1, Q2, Q3 Y Q4). Las instrucciones de búsqueda y ejecución son realizadas de tal forma que la búsqueda requiere de un ciclo de instrucción mientras que la decodificación y ejecución requiere de otro. Sin embargo debido a la búsqueda y ejecución simultánea (pipelining), cada instrucción se ejecuta efectivamente en un solo ciclo. Excepcionalmente si una instrucción produce una alteración del incremento normal del contador de programa (por ejemplo GOTO) entonces se requieren dos ciclos para completar la instrucción. Ver figura 2.6.

Figura 2.6 Flujo paralelo de búsqueda/ejecución (pipelining).

2.4.1. Temporizadores del microcontrolador Los temporizadores internos del microcontrolador tienen varias funciones. Pueden ser usados como contadores o como una base de tiempo para otros módulos dentro del microcontrolador. En el caso del microcontrolador PIC18F452, se tienen 4 temporizadores que son:

Tcy0

Tcy1

Tcy3

Tcy2

Tcy4

Tcy5

Buscar inst.1 Ejecutar inst.11 MOVLW 55h

2 MOVWF PORTB

3 GOTO 5

4 BSF PORTA,BIT3 (NOP forzado)

5 BCF PORTB,6

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

Buscar inst.4 NOP buscar inst.5 Ejecutar inst.5

CP CP+2 CP+4

OSC1

Q1

Q2

Q3

Q4

CP

Ejecuta instrucción (CP-2) y Busca instrucción (CP)

Ejecuta instrucción (CP) y Busca instrucción (CP+2)

Ejecuta instrucción (CP+2) y Busca instrucción (CP+4)

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

Page 40: TESIS TARJETA PROGRAMABLE - cenidet.edu.mx Joaquin Rivero... · componente como tarjetas de adquisición de datos o controladores lógicos programables (PLCs). En este trabajo se

Diseño y construcción de una tarjeta programable Capítulo 2. Determinación de las características de adquisición, procesamiento de datos y control funcionales de la tarjeta programable

28

• El TMR0 es un temporizador/contador de 8/16 bits con preescala programable. Puede configurarse para trabajar con 8 bits o con 16 bits, y seleccionar el flanco ascendente o descendente para aplicaciones como contador de eventos externos.

• El TMR1 es un temporizador/contador de 16 bits. Puede ser utilizado como

contador de eventos externos cada flanco ascendente.

• El TMR2 es un temporizador/contador de 8 bits con un registro de periodo de 8 bits que se utiliza como base de tiempo para la generación de señales de control por modulación de ancho de pulso.

• El TMR3 es un temporizador/contador de 16 bits. También funciona como contador de eventos en el flanco ascendente después del primer flanco descendente.

Todos los temporizadores pueden ser leídos y se puede escribir un nuevo valor en ellos sin importar el valor que tengan previamente. 2.4.2. Modulación de ancho de pulso generada por el microcontrolador La salida del microcontrolador que se utiliza para modulación por ancho de pulso (PWM, Pulse Width Modulation) que es utilizado para control de velocidad de motores de CD. Esta señal esta formada con una base de tiempo (período) y un tiempo en el que la salida permanece en nivel alto (ciclo útil). La salida PWM puede mostrarse en la figura 2.7.

Figura 2.7 Salida PWM.

La señal PWM generada por el microcontrolador PIC18F452 depende principalmente del valor del periodo que se encuentra en el registro PR2, y del valor de ciclo útil que se encuentra en el registro CCPR1L (byte bajo del registro 1 del módulo de captura/comparación/PWM) y los bits 5 y 4 del registro CCP1CON (registro de control del módulo 1 de captura/comparación/PWM). El periodo PWM para el microcontrolador se puede calcular usando la ecuación 2.1:

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

La ecuación 2.2 sirve para calcular el ciclo útil de la señal PWM en tiempo:

Ciclo útil PWM = (CCPR1L:CCP1CON<5:4>) • TOSC • (Valor de prescala TMR2) (2.2)

Periodo

Ciclo útil

Page 41: TESIS TARJETA PROGRAMABLE - cenidet.edu.mx Joaquin Rivero... · componente como tarjetas de adquisición de datos o controladores lógicos programables (PLCs). En este trabajo se

Diseño y construcción de una tarjeta programable Capítulo 2. Determinación de las características de adquisición, procesamiento de datos y control funcionales de la tarjeta programable

29

Para ambas ecuaciones, el valor de prescala de TMR2 se configura en el registro T2CON (registro de control de TMR2). Para configurar y usar el microcontrolador para las señales de PWM deben de seguirse los siguientes pasos:

1. Establecer el periodo PWM escribiéndolo en el registro PR2. 2. Establecer el ciclo útil del PWM escribiendo el dato correspondiente en el registro

CCPR1L y en los bits 4 y 5 de CCP1CON. 3. Configurar la terminal CCP1 como salida en el bit 2 del registro TRISC. 4. Establecer el valor de prescala del temporizador TMR2 y habilitarlo en el registro

T2CON. 5. Configurar el módulo CCP1 para operar en PWM.

2.4.3. Tiempo de conversión del conversor análogo/digital La precisión de la lectura de sensores de variables analógicas (por ejemplo, sensores de temperatura) está en función de la resolución del convertidor analógico/digital y del tiempo de adquisición. Para que el convertidor A/D alcance su precisión especificada, se debe esperar el tiempo necesario para que se cargue completamente al nivel de voltaje del canal de entrada. El modelo de entrada analógica se muestra en la figura 2.8. La impedancia de la fuente (RS) y la impedancia del interruptor interno de muestreo (RSS) varían de acuerdo al voltaje del dispositivo (VDD). La impedancia de la fuente afecta el voltaje de desplazamiento en la entrada analógica (debido a la corriente de fuga del terminal). La impedancia máxima recomendada para fuentes analógicas es de 2.5 kΩ. Después de seleccionar el canal de entrada analógica, debe realizarse la adquisición antes de que empiece la conversión (debido a que el capacitor de retención es desconectado de la terminal de entrada cuando empieza la conversión).

Page 42: TESIS TARJETA PROGRAMABLE - cenidet.edu.mx Joaquin Rivero... · componente como tarjetas de adquisición de datos o controladores lógicos programables (PLCs). En este trabajo se

Diseño y construcción de una tarjeta programable Capítulo 2. Determinación de las características de adquisición, procesamiento de datos y control funcionales de la tarjeta programable

30

Figura 2.8 Modelo de la entrada analógica.

Se puede utilizar la ecuación 2.3 para calcular el tiempo mínimo de adquisición. Esta ecuación 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 máximo error permitido por el conversor A/D para alcanzar su resolución específica.

TACQ = TAMP + TC + TCOFF (2.3)

Donde: TACQ = Tiempo mínimo de adquisición. TAMP = Tiempo de establecimiento del amplificador. TC = Tiempo de carga del capacitor de retención. TCOFF = Coeficiente de temperatura. Con la ecuación 2.4 se calcula el tiempo de carga del capacitor de retención para el cálculo del tiempo mínimo de adquisición.

TC = -(120 pF)(1 kΩ + RSS + RS) ln(1/2048) (2.4)

El tiempo de conversión A/D por bit se denomina TAD. La conversión A/D requiere 12 veces el tiempo TAD por cada conversión de 10 bits. Para una correcta conversión A/D, se debe seleccionar el reloj de conversión para asegurar un tiempo mínimo de 1.6 μs.

65432

5 6 7 8 9 10 11

VDD[Volts]

Interruptor de muestreo [kΩ]

donde: VAIN = Voltaje analógico de entrada RS = Impedancia de la fuente CPIN = Capacitancia de entrada. VT = Voltaje de umbral. IFUGA = Corriente de fuga en la terminal

debido a varias conexiones. RIC = Resistencia de interconexión. SS = Interruptor de muestreo. CRETEN = Capacitancia de muestreo y retención

(del DAC).

DD

Rs

PINFUGA

V = 0.6V

V = 0.6VR < 1k SS Rss

RETENVAIN

± 500 mA

ANx

5 pF

SS

Interruptor de muestreo

V

V

T

TIC

CI C = 120 pF

Page 43: TESIS TARJETA PROGRAMABLE - cenidet.edu.mx Joaquin Rivero... · componente como tarjetas de adquisición de datos o controladores lógicos programables (PLCs). En este trabajo se

Diseño y construcción de una tarjeta programable Capítulo 2. Determinación de las características de adquisición, procesamiento de datos y control funcionales de la tarjeta programable

31

El resultado de la conversión 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 según el estado del bit ADFM. Para iniciar la conversión A/D se deben seguir los siguientes pasos:

1. Configurar el módulo A/D: • Configurar los pines analógicos, las referencias de voltaje y las E/S digitales

(ADCON1). • Seleccionar el canal de entrada analógica (ADCON0). • Seleccionar el reloj de conversión A/D (ADCON0). • Encender el módulo A/D (ADCON0).

2. Configurar la interrupción del conversor A/D (si se desea). 3. Esperar el tiempo requerido de adquisición. 4. Iniciar la conversión:

• Poner a uno el bit GO/DONE del registro (ADCON0). 5. Esperar que se complete la conversión, ya sea por:

• Verificando que el bit GO/DONE se ponga a cero. • Esperar la interrupción del conversor A/D.

6. Leer los registros de resultado del conversor A/D (ADRESH/ADRESL). 7. Para otra conversión, ir al paso 1 o 2 si se requiere cambiar o no el canal del

conversor A/D. Se requiere una espera mínima de 2 TAD antes de iniciar otra conversión.

2.5. Interfases de comunicación La transferencia de información puede realizarse básicamente de dos formas: en serie o en paralelo. En la comunicación serie la información digital viaja por una línea de bit en bit. Esta transmisión puede ser síncrona o asíncrona, es decir, si utiliza una señal de reloj o no durante la transmisión de la información. La gran ventaja de la comunicación serie es su simplicidad y economía al estar implementada por un par de líneas. En la comunicación paralela el transmisor y el receptor están conectados por un bus de datos compuesto por tantas líneas como bits tiene la palabra de trabajo. Típicamente la palabra de trabajo es de 8 bits. La comunicación paralela es más rápida que la serie, sin embargo es compleja y cara debido a que el enlace físico necesita muchas líneas. Además la proximidad entre las líneas la hace muy sensible a la captación y generación de ruidos e interferencias, lo que reduce la distancia entre los dispositivos y la seguridad en el intercambio de datos. Aunque la comunicación serie es básicamente enviar datos digitales sobre una línea de bit en bit, existen varias maneras de hacerlo y el proceso de comprensión entre el transmisor y el receptor puede variar. Esto da lugar a diversas normas y métodos de comunicación serie que son conocidos como protocolos.

Page 44: TESIS TARJETA PROGRAMABLE - cenidet.edu.mx Joaquin Rivero... · componente como tarjetas de adquisición de datos o controladores lógicos programables (PLCs). En este trabajo se

Diseño y construcción de una tarjeta programable Capítulo 2. Determinación de las características de adquisición, procesamiento de datos y control funcionales de la tarjeta programable

32

2.5.1. Interfaz de comunicación entre tarjetas El bus IIC (Inter Integrated Circuit) es una red muy barata y efectiva utilizada para interconectar dispositivos periféricos en sistemas embebidos de pequeña escala. También se conoce como I2C y ha existido por más de 20 años. Es equivalente al SPI (Serial Peripheral Interface), pero su operación es un poco diferente. El I2C es un bus de dos líneas en el que se pueden conectar varios dispositivos. El bus es bidireccional, de baja velocidad y sincronizado a un reloj común. Un dispositivo puede ser agregado o retirado del bus I2C en operación 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 estándar y 400 kbps en modo rápido. Las dos líneas usadas para interconectar con el bus I2C son SDA (dato serial) y SCL (reloj serial). Ambas líneas están 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 dirección ú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, más de un dispositivo puede asumir el rol de maestro del bus. 2.5.2. Interfaz de comunicación entre la tarjeta y la computadora La interfaz de comunicación seleccionada para comunicar la tarjeta con la computadora es la RS-232C. Esta interfaz serial se ha usado desde los 60’s. El RS-232C se utiliza para intercomunicar dispositivos seriales con cables de longitud de hasta 25 metros. Anteriormente varios periféricos de computadoras tenían interfaz RS-232C. Con la necesidad de transferir grandes cantidades de datos rápidamente, el RS-232C está siendo sustituido como la conexión estándar por el USB o el IEEE 1394. Sin embargo, todavía es un puerto de comunicación útil y sencillo para sistemas embebidos. La mayoría de los microcontroladores poseen una unidad USART en su arquitectura, éste es un circuito que se encarga de convertir la información paralela del microcontrolador a información serie para el periférico o dispositivo con el que se está comunicando y viceversa. La pieza faltante para la interfaz RS-232C es un circuito que convierta la transmisión serial de y hacia los niveles RS-232C, ya que esta interfaz trabaja con niveles de ±5 a ±15 VCD. El circuito integrado MAX232 es el encargado de adaptar los niveles lógicos a RS-232C.

Page 45: TESIS TARJETA PROGRAMABLE - cenidet.edu.mx Joaquin Rivero... · componente como tarjetas de adquisición de datos o controladores lógicos programables (PLCs). En este trabajo se

Diseño y construcción de una tarjeta programable Capítulo 2. Determinación de las características de adquisición, procesamiento de datos y control funcionales de la tarjeta programable

33

2.6. Descripción de la tarjeta programable de adquisición, procesamiento de datos

y control Las características de la tarjeta programable se muestran en la tabla 2.6.

Tabla 2.6 Especificación de la tarjeta programable

Característica Cantidad Tipo Intervalo Unidad De programa 32 Kbytes Memoria De datos 1 MBytes 4 Analógicas 0-5 V 16(1) Digitales 0,5 V Entradas 1 Corriente 4-20 mA 16(1) Digitales 0,5 V 8 Potencia 0-20(2) V Salidas 1 Corriente 4-20 mA

Frecuencia de muestreo 13800 Muestreos/ segundo

Resolución AD 10 Bits Precisión máxima AD 0.1 % Tiempo de ciclo de instrucción 100(3) ns

Alimentación ±15 V Consumo máximo 150 mA

Compilador -Ensamblador -C

Puerto de comunicación con PC RS232

Puerto de comunicación (tarjeta/periféricos) I2C

Periféricos 1 Pantalla LCD Intervalo de temperatura de operación 0-50(4) °C

Nota: (1) Físicamente son las mismas terminales, pero se pueden configurar mediante programación para que sean entradas ó salidas.

(2) El voltaje de la salida de potencia depende de la fuente de alimentación conectada en el conector de voltaje externo de la tarjeta programable.

(3) Depende de la frecuencia de operación del microcontrolador. (4) Estimación con base en las especificaciones del componente más sensible a la

temperatura.

Page 46: TESIS TARJETA PROGRAMABLE - cenidet.edu.mx Joaquin Rivero... · componente como tarjetas de adquisición de datos o controladores lógicos programables (PLCs). En este trabajo se

Diseño y construcción de una tarjeta programable Capítulo 3. Diseño electrónico de la tarjeta de adquisición, procesamiento de datos y control

34

CAPÍTULO 3. DISEÑO ELECTRÓNICO DE LA TARJETA

Page 47: TESIS TARJETA PROGRAMABLE - cenidet.edu.mx Joaquin Rivero... · componente como tarjetas de adquisición de datos o controladores lógicos programables (PLCs). En este trabajo se

Diseño y construcción de una tarjeta programable Capítulo 3. Diseño electrónico de la tarjeta de adquisición, procesamiento de datos y control

35

3.1. Descripción a bloques de la tarjeta programable La tarjeta programable se encuentra dividida en módulos de acuerdo a la función que realizan, además que permite un mejor análisis y verificación de operación. Los módulos de la tarjeta programable se muestran en la figura 3.1.

Figura 3.1 Módulos que conforman la tarjeta programable.

Dentro de la tarjeta principal se encuentran la mayoría de los módulos, dejando en otras tarjetas los módulos de procesamiento y de E/S de 4-20 mA. El módulo de E/S de 4-20 mA se colocó en una tarjeta externa debido a que no es común aplicarla en varios procesos, pero se realizó para poder utilizar un sensor y un actuador que trabajen con el estándar industrial de 4-20 mA.

Módulo de E/S de 4-20 mA

Módulo de

procesamiento dsPIC30F4013

Módulo de

procesamiento PIC18F452

Módulo de comunicación

con la PC (RS232)

Módulo de entradas

analógicas Módulo de potencia

para motores

Módulo de memoria EEPROM

Módulo de comunicación entre tarjetas

(I2C)

Módulo de E/S digitales

Módulo de alimentación

(5 y ±15 VCD)

Pantalla de cristal líquido

1 - Tarjeta principal

2 - Tarjeta de procesamiento

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

Page 48: TESIS TARJETA PROGRAMABLE - cenidet.edu.mx Joaquin Rivero... · componente como tarjetas de adquisición de datos o controladores lógicos programables (PLCs). En este trabajo se

Diseño y construcción de una tarjeta programable Capítulo 3. Diseño electrónico de la tarjeta de adquisición, procesamiento de datos y control

36

El módulo de procesamiento se colocó en una tarjeta externa para poder utilizar cualquier microcontrolador. De esta forma sólo tendrá que fabricarse la tarjeta de procesamiento para utilizar otro microcontrolador, en vez de construir la tarjeta programable completa. 3.2. Diagramas esquemáticos electrónicos de la tarjeta programable Los diagramas esquemáticos de la tarjeta se realizaron en OrCAD para generar las tarjetas de circuito impreso. OrCAD permite modificar automáticamente el diseño de la tarjeta de circuito impreso cuando se realizan modificaciones en el diagrama esquemático. • Módulo de entradas y salidas digitales En esta etapa se podrán conectar a través de compuertas lógicas (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 señales provenientes de los sensores. El conector de configuración (jumper) J25 permite configurar la dirección de las señales (entradas o salidas) y debe ser igual a la configuración del puerto B por software. Los conectores tienen señales de voltaje de 5 Volts, tierra y de voltaje de 5 Volts con una resistencia limitadora. Ver figura 3.2.

Figura 3.2 Circuito electrónico del módulo de entradas/salidas digitales.

Las terminales de E/S digitales tienen conectores de configuración para poner la terminal a pull-up o pull-down y evitar que se dañe debido a que el PIC es de tecnología CMOS. La máxima 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 cálculo del valor mínimo para las resistencias de pull-up y pull-down es:

VCC

VCC

B2

B5

B3B4

B1B0

B6B7

B5

B1

B4

B6

B2

B0

B7

B3

RB0

R21

10K

U2

74HC245

23456789

1817161514131211

119

A1A2A3A4A5A6A7A8

B1B2B3B4B5B6B7B8

DIROE

R42

47K

J2612

C28

100 nF

J42

1234

C

R47

220

123456789

J43

1234

J39

1234

J41

1234

J45

1234

J40

1234

J44

1234

J38

1234

R1470

R4R5R6

R2R3

A la tarjeta de

procesamiento

Page 49: TESIS TARJETA PROGRAMABLE - cenidet.edu.mx Joaquin Rivero... · componente como tarjetas de adquisición de datos o controladores lógicos programables (PLCs). En este trabajo se

Diseño y construcción de una tarjeta programable Capítulo 3. Diseño electrónico de la tarjeta de adquisición, procesamiento de datos y control

37

5 V25 mA200

R

R

=

= Ω

Las resistencias de pull-up son de 330 Ω y las resistencias de pull-down son de 560 Ω. Ambos valores aseguran un valor menor de 25 mA a cada terminal de puerto del microcontrolador. • Módulo de entradas analógicas En este módulo las señales analógicas (figura 3.3) provienen de sensores que pueden ser de temperatura, fotorresistencias o cualquier otra señal de 0-5 Volts, se acondicionan por medio de seguidores de tensión con amplificadores operacionales y filtro pasabajas de 5 KHz para eliminar ruido en la señal. El amplificador operacional es de baja potencia para que pueda funcionar este módulo cuando la tarjeta este alimentada con pilas. Las ecuaciones 3.1, 3.2 y 3.3 se utilizan para el cálculo del filtro pasabajas:

5cf KHz=

2 31,400c cfω π= = (3.1)

1 10 nFC =

2 12 20 nF 22 nFC C= = ≈ (3.2)

1

0.707R=cCω

(3.3)

-9

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

= Ω ≈

Donde R son las dos resistencias de entrada, C1 es el capacitor de entrada conectado a tierra y C2 es el capacitor de retroalimentación. [9]

Page 50: TESIS TARJETA PROGRAMABLE - cenidet.edu.mx Joaquin Rivero... · componente como tarjetas de adquisición de datos o controladores lógicos programables (PLCs). En este trabajo se

Diseño y construcción de una tarjeta programable Capítulo 3. Diseño electrónico de la tarjeta de adquisición, procesamiento de datos y control

38

Figura 3.3 Circuito electrónico del módulo de entradas analógicas.

Los conectores de entrada disponen de conexión a 5 Volts y a tierra para conectar el sensor directamente. • Módulo de alimentación El módulo de alimentación (figura 3.4) proporciona los niveles de voltajes necesarios para la operación 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 mayoría de los circuitos integrados funcionan con este voltaje. Los otros reguladores son utilizados para módulos externos como el módulo de 4-20 mA.

Figura 3.4 Circuito electrónico del módulo de alimentación.

VAN

C26

+

-

U7A

MCP6044

3

21

+

-

U7B5

67

+

-

U7C10

98

+

-

U7D12

1314

R40

470

R39

470

C2110nF

C25

C22

22nFR29

2K2

R31

2K2

R35

470

R36R37

R38

470

C

R41

47K

J22

123

J23

123

J25

123

J24

123

AN1

AN3

AN2

AN0

VCC

VCC1

VAN

VCC

D0D1D2

D7D6D5D4D3

R46

470

D8JP4

CONECTOR A TARJETA 4-20 mA

1 23 45 67 89 1011 1213 14

L1

0.5mH

L2

0.5mH

D7

U9LM7805C/TO220

1 3

2

IN OUT

GN

D

J27

CON3

123

U6LM7815C/TO220

1 3

2

IN OUT

GN

D

C44

0.1uF

C43

0.1uF

U1 LM7915C/TO220

2 3

1

IN OUT

GN

D

C30

0.1uF

C29

0.1uF

F11 A C31

0.1uF

C32

0.1uF

C33

1000uF/50v

D4

1N4148

C37

100uF/50v

C38

100uF/50v

C34

100uF/50v

C40

100uF/50v

C36

100uF/100v

C39

100uF/50v

C35

1000uf/50v

C41

100uF/50v

D6

C42

0.1uF

R43

470

R44470

RA5

Page 51: TESIS TARJETA PROGRAMABLE - cenidet.edu.mx Joaquin Rivero... · componente como tarjetas de adquisición de datos o controladores lógicos programables (PLCs). En este trabajo se

Diseño y construcción de una tarjeta programable Capítulo 3. Diseño electrónico de la tarjeta de adquisición, procesamiento de datos y control

39

Los reguladores LM7815, LM7915 y LM7805 son utilizados debido a que permiten una corriente máxima de salida de 1 Ampere, cuentan con protección térmica y tienen un voltaje de caída 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 están funcionando. A la salida del regulador LM7805 se encuentran dos filtros para reducir el ruido separando el voltaje para el módulo de entradas analógicas del voltaje de alimentación general. El diodo D4 protege el circuito de alimentación contra inversiones de polaridad. • Módulo de memoria EEPROM En esta etapa se tienen dos memorias EEPROM de 512 Kbytes cada una, que se conectan al microcontrolador por medio del bus I2C. Los microinterruptores (DIPswitchs) permiten configurar por hardware los últimos tres bits de la dirección de la memoria EEPROM. La tarjeta programable podrá almacenar datos de mediciones en aplicaciones de adquisición de datos. Las memorias EEPROM 24FC512 pueden reemplazarse por otras memorias de distinta capacidad que tengan la misma disposición de terminales. La figura 3.5 muestra el circuito esquemático del módulo de memoria EEPROM. Las resistencias de pull-up para las señales de I2C pueden ser de 2 kΩ a 10 kΩ. [11] Se definió un valor de 4.7 KΩ para estas resistencias.

Figura 3.5 Circuito electrónico del módulo de memoria EEPROM.

• Módulo de comunicación con la PC Esta etapa consta del circuito MAX232 que junto con los capacitores forma una interfaz de comunicación serial entre los niveles TTL (0 - 5 Volts) con los que trabaja el

VCC

R48

4K7 SW5

SW DIP-3

1 2 3

6 5 4

U10

24FC512A0A1

SDASCLA2

C50

100nF

C3

C4

Page 52: TESIS TARJETA PROGRAMABLE - cenidet.edu.mx Joaquin Rivero... · componente como tarjetas de adquisición de datos o controladores lógicos programables (PLCs). En este trabajo se

Diseño y construcción de una tarjeta programable Capítulo 3. Diseño electrónico de la tarjeta de adquisición, procesamiento de datos y control

40

microcontrolador y los niveles RS232 de la computadora. Se utilizó la configuración típica de conexión mostrada en la hoja de datos del MAX232. Ver figura 3.6.

Figura 3.6 Circuito electrónico del módulo de comunicación con la PC.

Los diodos D2 y D3 con la resistencia R28 permiten reiniciar el microcontrolador desde la computadora poniendo en estado alto la línea RTS del puerto serie desde la computadora. Esta opción puede habilitarse o deshabilitarse con el jumper S1de la tarjeta de procesamiento. • Módulo de comunicación I2C Emplea los puertos RC3/SCK/SCL y RC4/SDI/SDA, cada una de ellas conectadas por medio de resistencias a 5 Volts. Todos los periféricos que empleen esta interfaz de comunicación deberán conectarse a estas líneas (SCL Y SDA). En la figura 3.7 se muestra la conexión 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 módulo de memoria EEPROM.

RESET POR PCVCC

RC6

RC7

D3

5V1

C3

C2

C1

10uF/25V

C6

10uF/25V

C4

10uF/25V

R334.7

P1594837261

C7100uF/25V

D2

1N4148

U3

MAX232

138

1110

134526

129147

R1INR2INT1INT2IN

C+C1-C2+C2-V+V-

R1OUTR2OUTT1OUTT2OUT

R28

330R32

330

A la tarjeta de procesamiento

Page 53: TESIS TARJETA PROGRAMABLE - cenidet.edu.mx Joaquin Rivero... · componente como tarjetas de adquisición de datos o controladores lógicos programables (PLCs). En este trabajo se

Diseño y construcción de una tarjeta programable Capítulo 3. Diseño electrónico de la tarjeta de adquisición, procesamiento de datos y control

41

Figura 3.7 Circuito electrónico del módulo de comunicación I2C.

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

VCC

J47

I2C

12

R45

4K7

U8

24FC512A0A1

SDASCLA2

C27

100nF

SW3

1 2 3

6 5 4

C3

C4

Page 54: TESIS TARJETA PROGRAMABLE - cenidet.edu.mx Joaquin Rivero... · componente como tarjetas de adquisición de datos o controladores lógicos programables (PLCs). En este trabajo se

Diseño y construcción de una tarjeta programable Capítulo 3. Diseño electrónico de la tarjeta de adquisición, procesamiento de datos y control

42

Figura 3.8 Circuito electrónico del módulo de potencia para motores

• Conector para pantalla de cristal líquido Adicionalmente en caso de que se quiera visualizar algunos de los parámetros que están variando en la planta o proceso, está disponible un conector (figura 3.9) en la tarjeta principal para una pantalla de cristal líquido (LCD). El LCD esta integrado a la tarjeta programable y es de 2 líneas y 16 caracteres por línea. 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 iluminación del LCD.

Figura 3.9 Circuito electrónico del conector para pantalla de cristal líquido.

VCC

B0B1B2B3

B7

B5B4

B6

R19

10K

R20

820

JP5

HEADER 7X2

1 23 45 67 89 1011 1213 14

RE1RE2

RE0

VCC2VCC

VCC1 VCC2VCC

VCC1

B7

RB0C0C1

C5

B6C2

A4

C20 C45100nF

C46C47

U4

L293

27

1015

19

361114

8

1A2A3A4A

1,2EN3,4EN

1Y2Y3Y4Y

VC

C2

U5

L293

27

1015

19

361114

8

1A2A3A4A

1,2EN3,4EN

1Y2Y3Y4Y

VC

C2

C12 C13

C10

100nF C14C11

C9

C8100nF

C16 C18

C15

C19100nF

C17

C

R34

10K

J35

1 2 3

J36

1 2 3

C24

100uF/25V

C23

J33

CO

N5

12345

J34

CO

N5

12345

SW4

1 2 3 4

8 7 6 5

Page 55: TESIS TARJETA PROGRAMABLE - cenidet.edu.mx Joaquin Rivero... · componente como tarjetas de adquisición de datos o controladores lógicos programables (PLCs). En este trabajo se

Diseño y construcción de una tarjeta programable Capítulo 3. Diseño electrónico de la tarjeta de adquisición, procesamiento de datos y control

43

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

Figura 3.10 Circuito electrónico del módulo de procesamiento.

El circuito oscilador consiste del cristal de cuarzo de 12 MHz y los capacitores con el valor adecuado según la tabla 2.3. El capacitor C3 es el elemento principal del circuito de reinicio al encendido así como el reinicio manual presionando el botón SW1. El diodo D1 ayuda a que el capacitor se descargue en la resistencia R21 cuando se presiona el botón SW1. • Módulo de E/S de 4-20 mA Este módulo externo está basado en los circuitos integrados XTR110 y RCV420 los cuales son un transmisor y un receptor de señales de 4-20 mA. Estos circuitos junto con otros componentes permiten convertir una señal de corriente de 4-20 mA a una señal de voltaje de 0-5 Volts y viceversa, es decir, que se pueden usar tanto para señales de entrada como de salida de corriente. Se utiliza el DAC0808 junto con el amplificador operacional LF351 para generar la señal de voltaje analógico para el transmisor de 4-20 mA. Con la resistencia variable R4 se ajusta la ganancia para que la salida del amplificador operacional sea 5 Volts

VCC

R2310K

C310uF

D1

1N4148

12MHz

C1

100 nF

C2

100 nF

SW1

12

S1

C5

22pF

R21

100

C6

10 uF / 16V

C4

22pF

U1

PIC18F452

1

234567

89

10

11

13

14

19202122

32

27282930

3334353637383940

2625242318171615

MCLR/Vpp

RA0/AN0RA1/AN1RA2/AN2/VREF-RA3/AN3/VREF+RA4/TOCKIRA5/AN4/SS#

RE0/RD#/AN5RE1/WR#/AN6RE2/CS#/AN7

VCC

OSC1/CLKIN

OSC2/CLKOUT

RD0/PSP0RD1/PSP1RD2/PSP2RD3/PSP3

VCC

RD4/PSP4RD5/PSP5RD6/PSP6RD7/PSP7

RB0/INTRB1RB2RB3PGMRB4RB5RB6/PGCRB7/PGD

RC7/RX/DTRC6/TX/CKRC5/SDORC4/SDI/SDARC3/SCK/SCLRC2/CCP1RC1/T1OSO/CCP2RC0/T1OSI/T1CKI

A la tarjeta principal

Page 56: TESIS TARJETA PROGRAMABLE - cenidet.edu.mx Joaquin Rivero... · componente como tarjetas de adquisición de datos o controladores lógicos programables (PLCs). En este trabajo se

Diseño y construcción de una tarjeta programable Capítulo 3. Diseño electrónico de la tarjeta de adquisición, procesamiento de datos y control

44

cuando todas las entradas del conversor analógico/digital estan a nivel alto. La alimentación de esta tarjeta se obtiene del módulo de alimentación de la tarjeta principal. El transistor MOSFET Q1 le da potencia a la salida de corriente del transmisor XTR110. Ver figura 3.11.

-15VCC+15VCC

+5VCC +15VCC-15VCC

-15VCC

+15VCC

+15VCC

+5VCC

U3

XTR110

16

8

5

3 14

126

2 15

117

9

4

1

13

10

+ Vcc

Zero Adj3

Vin2(5V)

Vref In Gate Driv e

Vref SenseZero Adj1

Comm Vref Force

Vref AdjZero Adj2

16mA Span

Vin1(10V)

Source Res

SourceSense

4mA Span

U1

DAC0808

12111098765

14

15

4

2

16

133

A8A7A6A5A4A3A2A1

VR+

VR-

IOUT

IOUT

COMP

V+

V-

U2

RCV420

16

8

5

314

126

215

117

9

4

1

13

10

V +

Ref Trim

Ref Com

+ InRcv Out

Ref InNC1

CTRcv f B

Ref OutRef Noise Red

NC2

V -

- In

Rcv Com

Ref f B

JP1

HEADER 7X2

1 23 45 67 89 1011 1213 14

+

- U4

LF3513

26

7 14 5

R1

3K3

R23K3

R3 1K R4

10K

C1

33pF

J1

ENTRADA 4-20 mA

12

J2

SALIDA 4-20 mA

12

Q1MOSFET MTP2955

1

2

3

+C2

1 uF

Figura 3.11 Circuito electrónico del módulo de E/S de 4-20 mA.

Cada uno de los circuitos integrados tiene un capacitor cerámico de desacoplamiento de 100 nF en sus terminales de alimentación. Los circuitos electrónicos se simularon en el programa Proteus para verificar su funcionamiento, debido a que permite programar virtualmente el microcontrolador y realizar simulaciones paso a paso o en forma animada de los circuitos. 3.3. Diagramas esquemáticos electrónicos de la tarjeta de aplicación Además de los circuitos anteriores, con el propósito de realizar fácil y rápidamente las pruebas simuladas de la tarjeta programable, se diseñó y construyó una tarjeta de aplicación. Esta tarjeta consta de:

• Un módulo para generar entradas digitales (botones pulsadores) y/o visualizar salidas digitales (LEDs) de la tarjeta programable.

• Un módulo que genera señales analógicas provenientes de distintos elementos (un sensor de temperatura LM35, una fotorresistencia y dos potenciómetros).

• Un módulo de indicadores de 7 segmentos de cátodo común (1 indicador conectado directamente o 4 indicadores multiplexados).

• Un módulo de conversión A/D o D/A en base al integrado PCF8591, que funciona con el protocolo I2C.

Page 57: TESIS TARJETA PROGRAMABLE - cenidet.edu.mx Joaquin Rivero... · componente como tarjetas de adquisición de datos o controladores lógicos programables (PLCs). En este trabajo se

Diseño y construcción de una tarjeta programable Capítulo 3. Diseño electrónico de la tarjeta de adquisición, procesamiento de datos y control

45

• Generador de pulsos al temporizador/contador TMR0 (RA4/T0CKI) por medio de un botón pulsador.

• Botón pulsador que sirve para generar una petición de interrupción externa (RB0/INT).

El circuito electrónico de la tarjeta de aplicación se muestra en la figura 3.12.

VCC

VAN

VCC1

VAN

VCC1

VCC1

VCC

VCC

VCC

VCC

VCC

A2

S3

S0S1

D1

A4

S3

S5S6

S1

S4S3

S0

D6

S1

S4

B5

D3D5D7

D4

D5

S3

S5

C3

D3

S2S3

S5

S2

S7

D7

S1S0

S5

C5

A5

S7S6

S5

S0

S2

S6

RB0

D2

S7B4

D6

S4

S2

S4

S0

D1D2D4

S4

C4

S6

S2S1

S7

B5

B4

S6

D0

D0

B3

B1

B1B3B2

B7

B2

B0

B6

B0

B6 B7

R210K 13

2

R110K1 3

2

U1

LM35/TO

1 2VS+ VOUT

R44K7

R3

R5LDR

J4

1 2 3

J1

1 2 3

J2

1 2 3

C447uF/16v

J3

1 2 3

SW20

R15

1k

R13

1k

R12

220

JP2

124

5

67

910

ed

3

c

dp

ba

8

fg

JP3

124

5

67

910

ed

3

c

dp

ba

8

fg

SW18

JP5

124

5

67

910

ed

3

c

dp

ba

8fg

JP4

124

5

67

910

ed

3

c

dp

ba

8

fg

U2

74LS48

7126

453

1312111091514

ABCD

BIRBILT

OAOBOCODOEOFOG

U3

PCF8591

15

14

13

12

11109

32

567

4

1AOUT

VREF

AGND

EXT

OSCSCLSDA

AIN2AIN1

A0A1A2

AIN3

AIN0

SW3

SW4

SW11

SW9

SW5

SW8

SW6

SW10

SW7

SW17

SW12

SW14

SW15

SW16

SW13

C

R101 2

3456789

C

R11

123456789

Q3

2N3904

32

1

Q2

2N3904

32

1

Q4

2N3904

32

1

Q1

2N3904

32

1

R7220

R6220

R810K

Q5

2N3904

32

1

J5

12

D1

C1

100n

R9

10K

13

2

SW19

C5

R14470

D27

LED

JP6

1 23 45 67 89 1011 1213 1415 1617 1819 2021 2223 2425 2627 2829 3031 3233 3435 36

JP1

124

5

67

910

ed

3

c

dp

ba

8

fg

D10

D12

D13

D11

D20

D19

D21

D18

D14

D16

D15

D17

D25

D23

D22

D24

D26

D3D2 D5 D7D6 D8D4 D9

J6

12

J7

CON2

12

B4B5

A5

B7

B4

B1

C3

RB

0

AN3

B5

B2

C4

B3

AN3

A4

B0

B6

C5

B7 B6

Figura 3.12 Circuito electrónico de la tarjeta de aplicación

3.4. Diseño de las tarjetas de circuito impreso Después de verificar el funcionamiento de los circuitos electrónicos por medio de simulaciones en el programa Proteus, se realizaron los diseños de las placas de circuito impreso en OrCAD. Debido a la complejidad de algunos circuitos, las placas de la tarjeta principal, de la tarjeta de procesamiento y de la tarjeta de aplicación se diseñaron para placas de doble cara. La tarjeta del módulo de E/S de 4-20 mA se diseñó para realizarse en placa de una cara. El proceso de realización del diseño de la placa de circuito impreso es el traslado del diagrama esquemático del circuito electrónico al módulo de Layout de OrCAD. En este módulo se realiza la disposición de los componentes sobre la placa. Los componentes fueron organizados de acuerdo a los módulos descritos en la sección 3.2.

Page 58: TESIS TARJETA PROGRAMABLE - cenidet.edu.mx Joaquin Rivero... · componente como tarjetas de adquisición de datos o controladores lógicos programables (PLCs). En este trabajo se

Diseño y construcción de una tarjeta programable Capítulo 3. Diseño electrónico de la tarjeta de adquisición, procesamiento de datos y control

46

Después de distribuir los componentes para minimizar la densidad de las pistas, se realizó la operación de AutoRoute para que OrCAD genere automáticamente la colocación de las pistas de acuerdo al dibujo esquemático. A pesar de utilizar la función automática de enrutado, fue necesario reubicar algunas pistas para que no hubiera cortocircuitos. El ancho mínimo de las pistas fue determinado con una calculadora [12] basada en la curva de ajuste de la norma IPC-D-275 para placas de circuitos impresos. Los datos utilizados son:

max

max2

I = 1 AΔt = 10 °C

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

Donde Imax es la corriente máxima que circulará en la pista y se consideró la corriente máxima de salida de los reguladores de voltaje; Δtmax es el aumento máximo de temperatura de la pista de circuito impreso con respecto a la temperatura ambiente cuando circule la corriente máxima; y el grosor del conductor es el espesor del cobre de la placa fenólica. Después de introducir los datos, el resultado fue un ancho de pista requerido de 9.8 milésimas de pulgada o 0.248 mm. Esto significa que una corriente de 1 Ampere circulando a través de una pista de 0.248 mm de ancho, producirá un aumento de 10 °C. Si el ancho de la pista es mayor, el aumento de temperatura es menor que 10 °C. El ancho de pista utilizado para la realización de las tarjetas es de 0.381 mm y la corriente que circula por las pistas cuando la tarjeta está en funcionamiento es menor de 1 Ampere, por lo tanto el aumento de temperatura es menor de 5 °C. En el anexo D se muestran los diseños de las placas de circuito impreso. Las medidas de las tarjetas electrónicas pueden consultarse en la tabla 3.1:

Tabla 3.1 Dimensiones físicas de las tarjetas electrónicas.

Tarjeta Largo (mm) Ancho (mm) 1. Principal 195 120 2. De procesamiento 80 55 3. De E/S de 4 – 20 mA 65 55 4. De aplicación 145 95

Page 59: TESIS TARJETA PROGRAMABLE - cenidet.edu.mx Joaquin Rivero... · componente como tarjetas de adquisición de datos o controladores lógicos programables (PLCs). En este trabajo se

Diseño y construcción de una tarjeta programable Capítulo 4. Construcción y pruebas de las tarjetas De adquisición, procesamiento de datos y control electrónicas

47

CAPÍTULO 4. CONSTRUCCIÓN Y PRUEBAS DE LAS TARJETAS ELECTRÓNICAS

Page 60: TESIS TARJETA PROGRAMABLE - cenidet.edu.mx Joaquin Rivero... · componente como tarjetas de adquisición de datos o controladores lógicos programables (PLCs). En este trabajo se

Diseño y construcción de una tarjeta programable Capítulo 4. Construcción y pruebas de las tarjetas De adquisición, procesamiento de datos y control electrónicas

48

4.1. Construcción de las tarjetas electrónicas Las tarjetas se hicieron por método serigráfico debido a que es confiable y económico para la elaboración de tarjetas complejas de circuitos impresos. Las conexiones entre caras de la tarjeta (conocidas como through holes o vías) se realizaron de manera directa al no disponer de la máquina que realiza las vías. 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 eléctricas de la tarjeta programable. Las tarjetas de circuito impreso que se realizaron son:

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

Figura 4.1 Tarjeta principal.

Page 61: TESIS TARJETA PROGRAMABLE - cenidet.edu.mx Joaquin Rivero... · componente como tarjetas de adquisición de datos o controladores lógicos programables (PLCs). En este trabajo se

Diseño y construcción de una tarjeta programable Capítulo 4. Construcción y pruebas de las tarjetas De adquisición, procesamiento de datos y control electrónicas

49

Figura 4.2 Tarjeta de procesamiento.

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

Page 62: TESIS TARJETA PROGRAMABLE - cenidet.edu.mx Joaquin Rivero... · componente como tarjetas de adquisición de datos o controladores lógicos programables (PLCs). En este trabajo se

Diseño y construcción de una tarjeta programable Capítulo 4. Construcción y pruebas de las tarjetas De adquisición, procesamiento de datos y control electrónicas

50

Figura 4.4 Tarjeta de aplicación.

Finalmente se integraron la tarjeta principal, la tarjeta de procesamiento, la tarjeta de 4-20 mA y la pantalla de cristal líquido en una base de acrílico para formar la tarjeta programable. La conexión de la tarjeta principal con las tarjetas externas se realiza por medio de cable plano con conectores. 4.2. Emulación funcional de los módulos de la tarjeta programable Después de que la tarjeta fue ensamblada, se realizaron pruebas de cada uno de los módulos de la tarjeta programable, éstas se muestran en la tabla 4.1 donde se indican los módulos utilizados como entrada y salida de datos.

Tabla 4.1 Pruebas de la tarjeta programable.

N° Nombre Módulo de entrada Módulo de salida Puerto B (E/S digitales) Puerto D (E/S digitales) 1 E/S digitales Puerto D (E/S digitales) Puerto B (E/S digitales)

2 Entradas analógicas Entrada analógica RA0 Puerto B (E/S digitales)

3 Potencia para motores * Potencia para motores

4 Pantalla de cristal líquido (LCD) * LCD

5 Comunicación RS232 Puerto B (E/S digitales) RS232

6 Comunicación I2C * Memoria EEPROM E/S de 4-20 mA Puerto B (E/S digitales) 7 E/S de 4 - 20 mA * E/S de 4-20 mA

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

Page 63: TESIS TARJETA PROGRAMABLE - cenidet.edu.mx Joaquin Rivero... · componente como tarjetas de adquisición de datos o controladores lógicos programables (PLCs). En este trabajo se

Diseño y construcción de una tarjeta programable Capítulo 4. Construcción y pruebas de las tarjetas De adquisición, procesamiento de datos y control electrónicas

51

Todos los programas en la parte inicial tienen la función de incluir la librería del PIC18F452, las librerías necesarias de acuerdo a las instrucciones programadas (# include) y las directivas de configuración del microcontrolador (# pragma config). Para la programación del PIC18F452 durante estas pruebas se deshabilitaron las opciones del oscilador del perro guardián (watchdog timer) y el reinicio por bajo voltaje para evitar que se reinicie el programa de prueba en los ciclos infinitos de ejecución o por caídas en el voltaje de alimentación, también se deshabilita la programación en bajo voltaje para que el pin RB5 pueda funcionar como entrada/salida digital. 4.2.1. Prueba de E/S digitales Se prueban los módulos de entrada/salida digitales. Se divide en dos partes, en la primera parte el estado del puerto B es el complemento a 1 del puerto D. Primero se configuran los puertos asignando el valor 0xFF al registro TRISB para configurar el puerto B como entrada y el valor de 0x00 al registro TRISD para configurar el puerto D como salida. Después, en un ciclo infinito se le asigna al puerto D el complemento a 1 del puerto B. En la segunda parte de esta prueba, el estado del puerto D es el complemento a 1 del puerto B. Los valores asignados a TRISB y TRISD se intercambian para que el puerto D sea la entrada y el puerto B sea la salida. En ambas pruebas, las salidas (LEDs) y las entradas (interruptores) interactuaron correctamente de acuerdo al programa en el microcontrolador. 4.2.2. Prueba de entradas analógicas Se muestran los ocho bits más altos de la conversión A/D de un potenciómetro conectado al canal AN0. Esta prueba permitió probar el funcionamiento del módulo de entradas analógicas. Gracias a la facilidad de programar en lenguaje C, el proceso de configuración del conversor analógico a digital descrito en el capítulo 2, se simplifica en una sola instrucción que es:

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

En esta instrucción se selecciona el oscilador RC interno como el reloj del conversor A/D; el resultado justificado a la izquierda (los ocho bits más significativos del resultado de la conversión están en el registro ADRESH); configura el microcontrolador para que operen 5 terminales como entradas analógicas y utilizar el voltaje de alimentación como voltaje de referencia para el conversor; selecciona el canal 0 como entrada a convertir y deshabilita la interrupción generada por el conversor A/D.

Page 64: TESIS TARJETA PROGRAMABLE - cenidet.edu.mx Joaquin Rivero... · componente como tarjetas de adquisición de datos o controladores lógicos programables (PLCs). En este trabajo se

Diseño y construcción de una tarjeta programable Capítulo 4. Construcción y pruebas de las tarjetas De adquisición, procesamiento de datos y control electrónicas

52

La rutina utilizada en un ciclo infinito para leer el valor analógico de entrada y mostrarlo en el puerto B es realizado cuando se utilizan las subrutinas de la librería del conversor A/D. ConvertADC(); // Inicia la conversión while (BusyADC()); // Espera a que la conversión finalice PIR1bits.ADIF = 0; // Se limpia la bandera de interrupción del conversor AD PORTB = ADRESH; // Copia los 8 bits mas significativos al PORTB Después de una conversión se necesita un tiempo de espera de 2 veces el tiempo de adquisición por bit (TAD) antes de iniciar la siguiente conversión. El valor mínimo de TAD es de 1.6 μs, por lo que se requiere de un retardo de 3.2 μs. Para programar los retardos en el PIC18F452 se utiliza la ecuación 4.1 para calcular los ciclos de instrucción necesarios para el retardo.

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

Aplicando la ecuación 3.2 para un retardo de 3.2 μs se obtiene:

( )-6 6Ciclos 3.2 10 12 10 4 9.6 10= • = ≈i i La instrucción para generar el retardo es: Delay10TCYx(1); //Retardo de 3.2 μs para 12 MHz En la librería “delays.h” se incluyen varias funciones para generar los retardos en múltiplos del tiempo de ciclo de instrucción. Como resultado, la respuesta mostrada en los LEDs fue proporcional a la posición del potenciómetro. 4.2.3. Prueba de potencia para motores En esta prueba se verificó el funcionamiento del módulo de potencia de motores. De acuerdo al estado del puerto D dos motores de corriente directa giran a la izquierda o a la derecha. Se asigna el valor de 0xFF al registro TRISD para que el puerto D funcione como entrada, y se asignan los valores de 0x00 a los registros TRISA, TRISB y TRISC porque las terminales del módulo de potencia son RA4, RB0, RB6, RB7, RC0, RC1, RC2 y RC5. Para el control de los motores se está asignando constantemente el valor de una terminal del puerto D a un valor de una terminal de salida del módulo de potencia de motores.

Page 65: TESIS TARJETA PROGRAMABLE - cenidet.edu.mx Joaquin Rivero... · componente como tarjetas de adquisición de datos o controladores lógicos programables (PLCs). En este trabajo se

Diseño y construcción de una tarjeta programable Capítulo 4. Construcción y pruebas de las tarjetas De adquisición, procesamiento de datos y control electrónicas

53

Los motores se accionaron de acuerdo al estado de los pulsadores conectados al puerto D del microcontrolador. 4.2.4. Prueba de la pantalla de cristal líquido (LCD) Para esta prueba se envió a la pantalla de cristal líquido (LCD) el mensaje “CENIDET MECATRÓNICA”. En esta prueba se realizó el protocolo de transmisión para enviar las instrucciones de configuración del LCD y del mensaje, y posteriormente se envían 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 líquido. Los retardos utilizados son de 1 milisegundo y de 10 microsegundos. Estos fueron calculados con la ecuación 4.1 para obtener los ciclos de instrucción necesarios para generar el retardo. Para generar el retardo de 1 ms:

( )-3 6Ciclos 1 10 12 10 4 3000= • =i i

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

Por lo que las instrucciones para cada uno de los retardos son: Delay1KTCYx(3); //Retardo de 1 ms para 12 MHz Delay10TCYx(3); //Retardo de 10 μs para 12 MHz Se mostró en el LCD el mensaje enviado desde la tarjeta programable. 4.2.5. Prueba de comunicación con la PC Esta prueba consistió en enviar el estado del puerto D a la computadora por medio del puerto RS232. Se verificó el funcionamiento del módulo de comunicación 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 librerías específicas para desarrollar el programa de prueba. Con una sola instrucción se configura el módulo de transmisión y recepción síncrono/asíncrono universal (USART). Para configurar la velocidad de comunicación, se requiere calcular el valor de la variable spbrg que se almacena en el registro del generador de velocidad de transmisión en baudios. Las fórmulas del cálculo de la variable spbrg dependen de la velocidad y tipo de transmisión serial de datos. Las ecuaciones 4.2 y 4.3 se utilizan para modo asíncrono a alta velocidad y a baja velocidad respectivamente, y la ecuación 4.4 se utiliza para modo síncrono.

Page 66: TESIS TARJETA PROGRAMABLE - cenidet.edu.mx Joaquin Rivero... · componente como tarjetas de adquisición de datos o controladores lógicos programables (PLCs). En este trabajo se

Diseño y construcción de una tarjeta programable Capítulo 4. Construcción y pruebas de las tarjetas De adquisición, procesamiento de datos y control electrónicas

54

( )( )Velocidad deseada 16 1OSCspbrg F= − (4.2)

( )( )Velocidad deseada 64 1OSCspbrg F= − (4.3)

( )( )Velocidad deseada 4 1OSCspbrg F= − (4.4)

Como se definió una velocidad de 19200 baudios en modo asíncrono, se utiliza la ecuación 4.2. Sustituyendo FOSC = 12 MHz y Velocidad = 19200 en la ecuación 4.2 se obtiene:

( )( )612 10 19200 16 1 38.06 38spbrg = − = ≈i

El valor de spbrg se coloca al final de la instrucción OpenUSART() para configurar la velocidad de transmisión de datos (ver programa de prueba 5 en anexo E). Con la instrucción WriteUSART(x) se envía el valor de la variable x por el puerto serie. Se mostró correctamente en la pantalla de la computadora los datos enviados por el puerto D de la tarjeta programable. 4.2.6. Prueba de memorias EEPROM Esta prueba utiliza dos programas, uno para escribir dos datos en la memoria EEPROM y otro para leer el primer dato y mostrarlo en el puerto D. Se configura el módulo de transmisión I2C con la instrucción OpenI2C() para operar en modo maestro y velocidad estándar 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 ecuación 4.5.

( )( )Reloj 4 1OSCF SSPADD= +i (4.5)

Para el modo de velocidad estándar de 100 KHz y la frecuencia de oscilación de 12 MHz, el valor de SSPADD es:

( )6

3

12 10SSPADD 1 294 100 10

= − =i

i i

En el primer programa se ejecuta el protocolo de transmisión I2C para enviar un dato a una de las memorias EEPROM. Se envía primero la dirección de la EEPROM con la instrucción de escritura (0xA0). Como es una memoria de 512 KBytes, utiliza una palabra (2 bytes) para el direccionamiento interno, se envía el byte inferior de la dirección y luego el byte superior. Después se envían los dos datos a almacenar (0xA5 y 0x00) y finaliza el programa.

Page 67: TESIS TARJETA PROGRAMABLE - cenidet.edu.mx Joaquin Rivero... · componente como tarjetas de adquisición de datos o controladores lógicos programables (PLCs). En este trabajo se

Diseño y construcción de una tarjeta programable Capítulo 4. Construcción y pruebas de las tarjetas De adquisición, procesamiento de datos y control electrónicas

55

En el segundo programa se realiza el protocolo sin utilizar las instrucciones de la librería “i2c.h”. Se envía la dirección con la instrucción de lectura y la dirección interna de la memoria EEPROM. Después empieza a recibir los datos solicitados y finaliza el programa. Los datos almacenados en la memoria EEPROM fueron recuperados y el dato mostrado (0xA5) correspondía con el que fue solicitado. 4.2.7. Prueba de E/S de 4-20 mA Antes de realizar pruebas a este módulo, se caracterizó el receptor y el transmisor de corriente. Para el receptor se enviaron señales de corriente desde 4 hasta 20 mA cada 2 mA, tanto en forma ascendente como descendente para verificar la linealidad del circuito integrado. En la tabla 4.2 se muestran los resultados obtenidos de la caracterización del receptor RCV420.

Tabla 4.2 Caracterización del receptor de 4-20 mA.

Salida (V) Entrada de corriente (mA) Prueba 1 (Ascendente) Prueba 2 (Descendente)

4 0.02 0.00 6 0.63 0.64 8 1.27 1.27 10 1.89 1.90 12 2.52 2.52 14 3.16 3.17 16 3.80 3.80 18 4.42 4.43 20 5.05 5.05

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

Page 68: TESIS TARJETA PROGRAMABLE - cenidet.edu.mx Joaquin Rivero... · componente como tarjetas de adquisición de datos o controladores lógicos programables (PLCs). En este trabajo se

Diseño y construcción de una tarjeta programable Capítulo 4. Construcción y pruebas de las tarjetas De adquisición, procesamiento de datos y control electrónicas

56

Figura 4.5 Gráfica de respuesta del receptor de 4-20 mA.

Para la caracterización del transmisor, se calcularon los valores digitales necesarios para que la salida del conversor digital-analógico entregue cada uno de los niveles de corriente de la tabla 4.2. Se utilizó una resistencia de 250Ω como resistencia de carga típica según 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 Caracterización del transmisor de 4-20 mA.

Salida (mA) Dato programado (hexadecimal) Valor ideal Valor real

Error (%)

0x00 4 4 0.00 0x20 6 6 0.00 0x40 8 8 0.00 0x60 10 10.1 1.00 0x80 12 12.1 0.83 0x9F 14 14.1 0.71 0xBF 16 16.2 1.25 0xDF 18 18.2 1.11 0xFF 20 20.2 1.00

0

1

2

3

4

5

6

2 4 6 8 10 12 14 16 18 20 22Corriente de entrada (mA)

Vo

lta

je d

e s

alid

a (

Vo

lts

)

Prueba ascendente Prueba descendente

Page 69: TESIS TARJETA PROGRAMABLE - cenidet.edu.mx Joaquin Rivero... · componente como tarjetas de adquisición de datos o controladores lógicos programables (PLCs). En este trabajo se

Diseño y construcción de una tarjeta programable Capítulo 4. Construcción y pruebas de las tarjetas De adquisición, procesamiento de datos y control electrónicas

57

El error máximo que presenta el transmisor de 4-20 mA es de 1.25 %. Después de la caracterización del receptor y del transmisor de corriente, se realizó una prueba para la entrada de 4-20 mA donde se mostró el dato del receptor de corriente en el puerto B. La salida del receptor RCV420 está conectada a una entrada analógica del microcontrolador. Se configura el conversor A/D con la instrucción OpenADC(). Este programa es similar al programa de prueba del módulo de entradas analógicas. Se visualizó correctamente en binario el valor de la corriente de entrada a la tarjeta de 4-20 mA. Para probar el transmisor de corriente, el programa realizado enciende todas las terminales del puerto B para que el transmisor envíe 20 mA, después de 10 segundos éstas se apagan para que el transmisor envíe 4 mA. Esto se realiza infinitamente hasta que se apague la tarjeta. En la salida de la tarjeta de 4-20 mA se leían los valores de corriente generados por el programa de prueba. Después de haber realizado estas pruebas, se comprobó que los módulos de la tarjeta programable funcionan correctamente.

Page 70: TESIS TARJETA PROGRAMABLE - cenidet.edu.mx Joaquin Rivero... · componente como tarjetas de adquisición de datos o controladores lógicos programables (PLCs). En este trabajo se

Diseño y construcción de una tarjeta programable Capítulo 5. Diseño y construcción de plantas de adquisición, procesamiento de datos y control

58

CAPÍTULO 5. DISEÑO Y CONSTRUCCIÓN DE PLANTAS

Page 71: TESIS TARJETA PROGRAMABLE - cenidet.edu.mx Joaquin Rivero... · componente como tarjetas de adquisición de datos o controladores lógicos programables (PLCs). En este trabajo se

Diseño y construcción de una tarjeta programable Capítulo 5. Diseño y construcción de plantas de adquisición, procesamiento de datos y control

59

5.1. Descripción de plantas a controlar Para demostrar la funcionalidad y versatilidad de la tarjeta programable, se diseñaron y construyeron tres prototipos de plantas con los que la tarjeta programable debe interactuar; Adquiere datos por medio de sensores, los procesa de acuerdo a un logaritmo de control y envía las señales de salida a las plantas para controlar su proceso. Es importante señalar que las plantas se construyeron con el objetivo de mostrar la funcionalidad de la tarjeta programable, por lo que en el proceso de diseño no se consideraron cálculos de resistencia de materiales. Las plantas o procesos se describen a continuación: Robot móvil seguidor de línea.- Robot con dos sensores ópticos de reflexión orientados hacia el piso para detectar una línea negra sobre fondo blanco y dos motores de corriente directa con caja reductora para que el robot pueda desplazarse. Modelo a escala de una plataforma de seguimiento solar.- Tiene dos grados de libertad de tipo giratorio y utiliza un motor de corriente directa para cada uno de ellos. La luz del sol es detectada por medio de sensores ópticos y el giro en cada eje está limitado mediante sensores electromecánicos. Cámara térmica con temperatura controlada.- Consiste en dos cubos de acrílico (uno dentro de otro). El control de temperatura es en el volumen del cubo interno. Tiene un calefactor, un agitador de aire para mantener uniforme la temperatura, un sensor de temperatura, un inyector, un extractor de aire y dos ductos por donde circula el aire que es regulado mediante compuertas. En la tabla 5.1 se describen las plantas que se fabricaron, los recursos y el tipo de control que cada una de ellas utiliza.

Tabla 5.1 Descripción de plantas fabricadas

Planta Objetivo de control Sensores

No. de Canales de

entrada

No. de canales de

salida Actuadores Tipo de

control

Robot móvil seguidor de línea

Seguir línea negra sobre superficie blanca

2 sensores ópticos de reflexión

2 (digitales) 2 (potencia para motores)

2 motores de CD Enc/apag

Modelo a escala de plataforma de seguimiento solar

Orientar la placa colectora hacia el sol

5 micro interruptores 21 fototransistores 1 encoder

13 (digitales) 2 (potencia para motores)

2 motores de CD Enc/apag

Cámara térmica con temperatura controlada

Controlar la temperatura de un ambiente aislado térmicamente

1 sensor de temperatura

1 (digital) 1 (analógica)

1 (digital) 5 (potencia para motores)

1 calefactor 1 soplador 1 extractor de aire 2 solenoides

Propor-cional- integral

Page 72: TESIS TARJETA PROGRAMABLE - cenidet.edu.mx Joaquin Rivero... · componente como tarjetas de adquisición de datos o controladores lógicos programables (PLCs). En este trabajo se

Diseño y construcción de una tarjeta programable Capítulo 5. Diseño y construcción de plantas de adquisición, procesamiento de datos y control

60

5.2. Robot móvil seguidor de línea 5.2.1. Objetivo El robot móvil debe seguir una línea negra trazada sobre una superficie blanca. Esto se logra mediante dos sensores ópticos de reflexión (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 línea obscura sobre fondo claro o viceversa. El robot emplea dos motores de corriente directa (CD) para poderse mover, cada motor se controla de forma independiente para que el robot pueda girar. Ver figura 5.1

Figura 5.1 Robot móvil seguidor de línea

5.2.2. Requerimientos de la planta El robot móvil requiere de la tarjeta programable: dos entradas digitales (RD0 Y RD1), por donde entran las señales provenientes de los sensores al microcontrolador, y cuatro salidas del módulo de potencia L293 (RA4, RB6, RB7 y RC2), por donde la tarjeta envía las señales para activar/desactivar cada uno de los motores de 12 VCD. 5.2.3. Diseño mecánico El robot móvil consta de un chasis metálico rectangular de 66 x 79 mm. En la parte delantera del chasis van montados dos motores eléctricos de 12 VCD / 0.5 Amperes. Cada motor tiene una caja reductora en cuyas salidas se montan las ruedas del robot. En la parte posterior del chasis se localiza una rueda “loca” y en la parte frontal la placa porta sensores. Ver figura 5.2

Giro del motor izquierdo

Giro del motorderecho

Rueda “loca” Sensores

Chasis

Page 73: TESIS TARJETA PROGRAMABLE - cenidet.edu.mx Joaquin Rivero... · componente como tarjetas de adquisición de datos o controladores lógicos programables (PLCs). En este trabajo se

Diseño y construcción de una tarjeta programable Capítulo 5. Diseño y construcción de plantas de adquisición, procesamiento de datos y control

61

Figura 5.2 Robot móvil seguidor de línea

5.2.4. Diseño eléctrico del robot móvil 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 señales a la tarjeta, y, cuatro canales de salida para operar los motores de CD en ambas direcciones. El sensor empleado en el robot móvil 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’ lógico (+ 5 VCD) a la tarjeta, en caso contrario ingresa un ‘0’ lógico (0 VCD). La figura 5.3 muestra el circuito electrónico empleado por el robot móvil. La corriente en el fotodiodo es limitada por R1, la señal del sensor es el voltaje presente en la resistencia R2. Estas resistencias son calculadas con la ecuación 5.1.

1 CC f

f

V VR

I−

= (5.1)

Donde: Vcc = Voltaje de alimentación = 5 Volts Vf = Voltaje del diodo en polarización directa = 1.25 Volts If = Corriente del fotodiodo en polarización directa = 50 mA R1 = 75 Ω

Chasis

Ruedas delanteras

Rueda “loca”

Motores de 12 VCD

Soporte de sensores

Page 74: TESIS TARJETA PROGRAMABLE - cenidet.edu.mx Joaquin Rivero... · componente como tarjetas de adquisición de datos o controladores lógicos programables (PLCs). En este trabajo se

Diseño y construcción de una tarjeta programable Capítulo 5. Diseño y construcción de plantas de adquisición, procesamiento de datos y control

62

5 VCC

5 VCC

SENSOR IZQ

CNY70

SENSOR DER

CNY70

R247 K

R247 K

R175

R175

MOTORIZQUIERDO15 VCD

MOTORDERECHO15 VCD

TA

RJE

TA

PR

OG

RA

MA

BLE

RD0

RD1

RC2

RB6

RA4

RB7

Figura 5.3 Circuito electrónico del robot móvil seguidor de línea.

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 señal que se envía a la tarjeta programable. Con una resistencia de 47 kΩ la tarjeta detectó perfectamente las señales enviadas desde los sensores del robot móvil. 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 están sobre la línea oscura, el robot móvil se debe mover en línea recta. Posición 1 del robot en la figura 5.4.

2. Si se activa el sensor izquierdo debido a que salió de la línea oscura, el robot debe girar a la derecha hasta que el sensor se vuelva a desactivar. Posición 2 del robot en la figura 5.4

3. Si se activa el sensor derecho debido a que salió de la línea oscura, el robot debe girar a la izquierda hasta que el sensor se vuelva a desactivar. Posición 3 del robot en la figura 5.4

4. Si ambos sensores se activan debido a que salen de la línea oscura, el robot debe detenerse. Posición 4 en la figura 5.4

Page 75: TESIS TARJETA PROGRAMABLE - cenidet.edu.mx Joaquin Rivero... · componente como tarjetas de adquisición de datos o controladores lógicos programables (PLCs). En este trabajo se

Diseño y construcción de una tarjeta programable Capítulo 5. Diseño y construcción de plantas de adquisición, procesamiento de datos y control

63

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

El algoritmo de control se representa mediante el diagrama de flujo en el anexo D.1. El programa fuente que controla esta planta se realizó en lenguaje C, utilizando el compilador C18 específico para la familia de microcontroladores PIC18. En el anexo D.2 se encuentra el programa fuente que controla el robot móvil seguidor de línea. 5.3. Modelo a escala de una plataforma de seguimiento solar 5.3.1. Objetivo Orientar la placa colectora de la planta a la dirección del sol, con la finalidad de aprovechar al máximo la energía calorífica 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 conexión (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

Posición 1 Avanza en línea recta

Posición 2 Gira a la derecha

Posición 3Gira a la izquierdaPosición 4

Se detiene el robot

Page 76: TESIS TARJETA PROGRAMABLE - cenidet.edu.mx Joaquin Rivero... · componente como tarjetas de adquisición de datos o controladores lógicos programables (PLCs). En este trabajo se

Diseño y construcción de una tarjeta programable Capítulo 5. Diseño y construcción de plantas de adquisición, procesamiento de datos y control

64

24 VCD

5 VCD

TIP125

TIP120

BC548

R13k3

150k

R2

MOTOR24VCD

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 región de saturación, 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]

Figura 5.6 Circuito de operación simplificado del puente H.

Cálculo de la resistencia conectada a la base del transistor TIP 125 IL(max) = 2 A R1 = VR1 / IR1 R1 = VR1 / IB(sat) VR1 = 24 – (VBE(on) del TIP 125) – (VCE(on) del BC548) – (VBE(on) del TIP 120) VR1 = 24 – 2 - 0.6 -2.5 = 18.9 V

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

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

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

24 VCD

24 VCD

TIP120

TIP125

TIP120

TIP125

BC548BC548

R2

R13k3

150k

R13k3

150k

TIP125

TIP120

TIP125

TIP120

BC548 BC548

R13k3

R13k3

150kR2

150k

R2

R2

MOTOR GIROVERTICAL 24 VCD

MOTOR GIROHORIZONTAL24 VCD

RD0 RD1

RD3RD2

Page 77: TESIS TARJETA PROGRAMABLE - cenidet.edu.mx Joaquin Rivero... · componente como tarjetas de adquisición de datos o controladores lógicos programables (PLCs). En este trabajo se

Diseño y construcción de una tarjeta programable Capítulo 5. Diseño y construcción de plantas de adquisición, procesamiento de datos y control

65

IBmin = IL(max) / hFE IBmin = 2 A / 1000 = 2 mA Considerando IB = 5 mA R1 = 18.9 V / 5 mA = 3.78 kΩ El valor próximo comercial es de 3.3 kΩ. Siendo R1 = 3.3 kΩ, la corriente de base para saturación de los transistores TIP120 y TIP125 es: IB(sat) = 18.9 V / 3300 Ω = 5.72 mA Cálculo de la resistencia conectada a la base del transistor BC548 R2 = VR2(on) / IR2(max) VR2(on) = 5 - VBE(on)BC548 - VBE(on)TIP120 VR2(on) = 5 - 0.77 – 2.5 = 1.73 V IBmin = IL(max) / hFEBC548 IBmin = 5.72 mA / 800 = 7.15 μA Considerando IB = 10 μA R2 = 1.73 V / 10 μA = 173 kΩ El valor próximo comercial es de 150 kΩ. Siendo R2 = 150 kΩ, la corriente de base para saturación de los transistores BC548 es: IB(sat) = 1.73 V / 150 kΩ = 11.53 μA 5.3.3. Diseño mecánico 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.

Page 78: TESIS TARJETA PROGRAMABLE - cenidet.edu.mx Joaquin Rivero... · componente como tarjetas de adquisición de datos o controladores lógicos programables (PLCs). En este trabajo se

Diseño y construcción de una tarjeta programable Capítulo 5. Diseño y construcción de plantas de adquisición, procesamiento de datos y control

66

Figura 5.7 Diseño mecánico 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. Diseño eléctrico del modelo a escala de la plataforma de seguimiento solar La placa colectora tiene instalada una placa semicircular de acrílico con 21 sensores fotoeléctricos distribuidos de la siguiente manera:

• Un sensor colocado en la parte superior de la placa semicircular (sensor principal). Ver figura 5.8

• Dos grupos de ocho sensores cada uno, ubicados en los extremos de la placa semicircular. Los ocho sensores de cada grupo están conectados en paralelo La separación entre sensores consecutivos es de 10º. Ver figura 5.8 y 5.9.

• Cuatro sensores (sensor1, sensor2, sensor3, y sensor4) alrededor del sensor principal con una inclinación de 20º con respecto a la dirección este. Ver figura 5.8.

En cada uno de los límites de giros horizontal y vertical, la planta tiene instalado un interruptor de límite. Para posicionar horizontalmente la placa colectora en la rutina de inicio, la planta cuenta con un interruptor de límite instalado en el centro de la polea de giro de la placa colectora. Ver figura 5.9.

Varilla roscada

Polea roscada

Dados deslizantes

Poleas de placa colectora

Bujes depolea

Motor girovertical

Motor girohorizontal

Buje

Placacolectora

Mecanismo de giro vertical Modelo completo del modelo a escalade plataforma de seguimiento solar

Soportevertical

Page 79: TESIS TARJETA PROGRAMABLE - cenidet.edu.mx Joaquin Rivero... · componente como tarjetas de adquisición de datos o controladores lógicos programables (PLCs). En este trabajo se

Diseño y construcción de una tarjeta programable Capítulo 5. Diseño y construcción de plantas de adquisición, procesamiento de datos y control

67

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

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

La figura 5.10 muestra el circuito eléctrico del modelo a escala de la plataforma de seguimiento solar.

Sensorcentral

Grupo izquierdo de 8 sensores conectados en paralelo

Grupo derecho de 8 sensores conectados en paralelo

Sensor 4Sensor 1

Sensor 2

Sensor 3

Interruptor delímite inferior

Placa semicircularde acrílico Placa colectora

Girohorizontal

10º

Sensores

Motor de giro vertical

Girovertical

Motor girohorizontal

Interruptor de límite superior

Interruptor delímite central

Soporte vertical

Page 80: TESIS TARJETA PROGRAMABLE - cenidet.edu.mx Joaquin Rivero... · componente como tarjetas de adquisición de datos o controladores lógicos programables (PLCs). En este trabajo se

Diseño y construcción de una tarjeta programable Capítulo 5. Diseño y construcción de plantas de adquisición, procesamiento de datos y control

68

Figura 5.10 Circuito eléctrico 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 también se muestra la distribución de los sensores colocados en la parte superior de la placa colectora

1. Al pulsar el botón de arranque la placa colectora gira simultáneamente a la izquierda y hacia arriba/abajo deteniendo cada uno de estos giros hasta que ésta se posicione horizontalmente en el límite de giro izquierdo.

2. Posterior a la rutina de inicio la placa colectora inicia una rutina de búsqueda la cual consiste en giros horizontales a la izquierda y a la derecha. Las primeras cuatro veces que la placa colectora llegue a los límites de giro, realizará ahí un giro vertical de 2.5º hacia arriba, y las próximas 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 búsqueda, la planta se detendrá.

3. El giro vertical de la placa colectora es definido por un encoder fotoeléctrico montado en el motor de giro vertical de la planta.

4. Si en la rutina de búsqueda el sol es detectado por uno de los sensores del grupo izquierdo de la placa de acrílico, entonces la placa colectora primero frenará su giro horizontal y después girará verticalmente hacia arriba, frenando este giro hasta que el sensor principal apunte hacia el sol.

5 VCC 5 VCC

5 VCC

5 VCC

5 VCC5 VCC 5 VCC

GRUPO IZQUIERDO DE SENSORES

R1330

R1330 S6

INT DE ARRANQUE

GRUPO DERECHO DE SENSORES

R1330

SEN

SO

RPR

INC

IPA

L

SENSOR 1SENSOR 4

SEN

SOR

2

SEN

SOR

3

INT

LIM

IZQ

INT

LIM

DER

INT

LIM

SU

P

INT

LIM

INF

R1330

INT

LIM

CE

NTR

AL

R1330

R1330

R1330

R1330

R1330

R1330

R1 33

0

R1

330

ENCODER

R1330

R1

330

MOTOR DE 24 VCCGIRO IZQ/DER

MOTOR DE 24 VCCGIRO SUB/BAJ

RA4 RB0RB1 RB2

RB3RB4RB5 RB6RB7

RD0

RD1

RD2

RD3

RD4 RD5RD6 RD7

TARJETA PROGRAMABLE

TARJETA DEPOTENCIA(2 PUENTES H)

RA5

Page 81: TESIS TARJETA PROGRAMABLE - cenidet.edu.mx Joaquin Rivero... · componente como tarjetas de adquisición de datos o controladores lógicos programables (PLCs). En este trabajo se

Diseño y construcción de una tarjeta programable Capítulo 5. Diseño y construcción de plantas de adquisición, procesamiento de datos y control

69

5. Si en la rutina de búsqueda el sol es detectado por uno de los sensores del grupo derecho de la placa de acrílico, entonces la placa colectora primero frenará su giro horizontal y después girará verticalmente hacia abajo, frenando este giro hasta que el sensor principal apunte hacia el sol.

6. La rutina de búsqueda 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 cuál de los seis sensores que rodean al principal se activa para realizar los giros que harán que el sensor principal apunte nuevamente hacia el sol, y en consecuencia la placa colectora también 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 lógica cuando se detecta la luz por los sensores restantes es similar

Figura 5.11 Referencia de giros e identificación de sensores.

Cabe aclarar que la precisión de los movimientos está limitada, debido a que se utilizaron poleas/bandas para la transmisión de movimiento de los motores a la planta (las bandas se deslizan), además las piezas que conforman el mecanismo de giro vertical no se fabricaron con la maquinaria apropiada por lo que varía el grado de rozamiento de las piezas a lo largo de su carrera de trabajo. Debido a lo anterior es difícil 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 código fuente en el anexo D.4.

Motor / giro vertical

Grupo izq. sensores

Detalle “A”

Límite giro arriba

Grupo der. sensores

Sube

Bajalímite giro abajo

Límite central

Giro der. Giro izq. Límite giro izquierda

Límite giro derecha

Sensor principal

Sensor 1

Detalle “A”Vista superior de la planta

Sensor 2 Sensor 3

Sensor 4

Sensor grupo der.

Sensor grupo izq.

Giro der.

Giro izq.

Page 82: TESIS TARJETA PROGRAMABLE - cenidet.edu.mx Joaquin Rivero... · componente como tarjetas de adquisición de datos o controladores lógicos programables (PLCs). En este trabajo se

Diseño y construcción de una tarjeta programable Capítulo 5. Diseño y construcción de plantas de adquisición, procesamiento de datos y control

70

5.4. Cámara térmica con temperatura controlada 5.4.1. Objetivo Controlar la temperatura dentro de la cámara térmica con un controlador tipo proporcional o proporcional-integral, configurado por medio de un instrumento virtual de LabVIEW. 5.4.2. Diseño mecánico Por ser una planta didáctica, se hizo de acrílico para poder observar los componentes y su funcionamiento en el interior de la cámara. 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 están 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 acrílico en las esquinas internas de éste último. Los elementos que se encuentran dentro de la cámara térmica 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 cámara, unos ductos de ventilación y un sensor de temperatura. El calefactor se encuentra en una base de porcelana. La base del calefactor y el agitador de aire están atornillados a la base del cubo interno. El sensor de temperatura se encuentra a 3 cm. de la parte central de la cara superior del cubo interno. Ver figura 5.12.

Figura 5.12 Cámara térmica con temperatura controlada.

Sopladorde aire

Agitador de aire

Calefactor

Extractorde aire

Solenoide de apertura de compuerta

Sensor de temperatura

Cubo externo

Cubo interno

Page 83: TESIS TARJETA PROGRAMABLE - cenidet.edu.mx Joaquin Rivero... · componente como tarjetas de adquisición de datos o controladores lógicos programables (PLCs). En este trabajo se

Diseño y construcción de una tarjeta programable Capítulo 5. Diseño y construcción de plantas de adquisición, procesamiento de datos y control

71

Los ductos se fabricaron de acuerdo a las dimensiones del soplador y el extractor de aire. Cada ducto tiene una compuerta que está conectada al núcleo móvil 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 cámara y expulse el aire caliente. La cámara térmica está sellada con silicón para optimizar el aislamiento térmico. 5.4.3. Diseño eléctrico de la cámara térmica El calefactor es de tipo resistivo. El sensor de temperatura es el LM35 el cual tiene una salida de 10 mV/°C y está conectado directamente al módulo de entradas analógicas de la tarjeta programable. Todos los elementos (excepto el calefactor) se conectan al exterior a través de un conector DB9 macho. Para controlar adecuadamente el calefactor, se utiliza una señal de referencia proveniente de un sencillo circuito detector de cruce por cero (ver figura 5.13) de la señal de corriente alterna. [15]

(2)

- +

(1)

120 VCA

CD4093

REFERENCIA DE CRUCE POR CERO

Figura 5.13 Circuito generador de señal de referencia.

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

Figura 5.14 Señal de referencia.

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

F = 60 Hz+9V

+5V

t

t

2

1

Page 84: TESIS TARJETA PROGRAMABLE - cenidet.edu.mx Joaquin Rivero... · componente como tarjetas de adquisición de datos o controladores lógicos programables (PLCs). En este trabajo se

Diseño y construcción de una tarjeta programable Capítulo 5. Diseño y construcción de plantas de adquisición, procesamiento de datos y control

72

TIC226D

180

470MOC3010

CARGA

100

100 nF120 VCA

SEÑAL DE DISPARO

Figura 5.15 Circuito de control de CA.

Los falsos disparos del TRIAC se pueden prevenir con el uso de una red snubber entre las terminales MT1 y MT2 para limitar la razón 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 conexión de la tarjeta programable con los circuitos electrónicos adicionales y los elementos de la cámara térmica se muestran en la figura 5.16.

Figura 5.16 Diagrama eléctrico de la cámara térmica y la tarjeta programable.

5.4.4. Requerimientos de la planta Para controlar esta planta la tarjeta programable utiliza un canal de entrada analógica (sensor de temperatura), un canal de entrada digital (señal 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 señal de control del calefactor. Además de estos recursos de la tarjeta programable, se utiliza un circuito detector de cruce por cero y un circuito de interfaz de CA.

CALEFACTOR

120

VCA

120 VCA- +

LM35

VS+ VOUT

A-

+

EXTRACTOR

A -+

AGITADOR

A-

+

SOPLADOR

TAR

JETA

PR

OG

RA

MA

BLEAN0

RB0

RD0

GND

+5V

RC1

RC0

RA4

RC2

RC5

COMPUERTA EXTRACTOR

COMPUERTA SOPLADOR

Page 85: TESIS TARJETA PROGRAMABLE - cenidet.edu.mx Joaquin Rivero... · componente como tarjetas de adquisición de datos o controladores lógicos programables (PLCs). En este trabajo se

Diseño y construcción de una tarjeta programable Capítulo 5. Diseño y construcción de plantas de adquisición, procesamiento de datos y control

73

5.4.5. Algoritmo de control La parte central del algoritmo de control es el controlador proporcional-integral. Para deducir la fórmula de control PI a programar se realizó el siguiente proceso. Siendo la ecuación de un controlador PI el que se muestra en la ecuación 5.2.

0

( ) ( ) ( )t

P IC t K E t K E t dt= + ∫ (5.2)

Considerando la aproximación 5.3 para la parte integral:

0

0( ) ( )

NtE t dt Ts E n∑∫ ∼ (5.3)

La ecuación de control PI aplicado a tiempo discreto puede rescribirse como:

0( ) ( ) ( )

N

P SIC n K E n T E nK= + ∑

0

( ) ( ) ( )N

S IC n K E n T T E n⎛ ⎞≈ +⎜ ⎟⎝ ⎠

∑ (5.4)

Donde: KP = K KI = K/TI

La ecuación 5.4 puede programarse en el microcontrolador. El programa del microcontrolador está diseñado para trabajar junto con el instrumento virtual de LabVIEW mostrado en la figura 5.17.

Page 86: TESIS TARJETA PROGRAMABLE - cenidet.edu.mx Joaquin Rivero... · componente como tarjetas de adquisición de datos o controladores lógicos programables (PLCs). En este trabajo se

Diseño y construcción de una tarjeta programable Capítulo 5. Diseño y construcción de plantas de adquisición, procesamiento de datos y control

74

Figura 5.17 Instrumento virtual de configuración y visualización de la cámara térmica.

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 botón “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 30°C – 70°C para evitar altas temperaturas que puedan afectar a la cámara térmica o a los elementos internos. La variable Kp esta limitada a que sea mayor que cero para que la acción 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 botón 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, también se enciende el indicador “LEYENDO”.

5. En caso de error de configuración o error de acceso del puerto, se encienden unos indicadores para mostrar el origen de la falla.

6. Presionando el botón de “PARO” el instrumento virtual detiene su ejecución. Al encender la tarjeta programable, el proceso de operación es: 1. Se inicializan los puertos y se configuran los módulos de conversor A/D y de USART

del microcontrolador.

Page 87: TESIS TARJETA PROGRAMABLE - cenidet.edu.mx Joaquin Rivero... · componente como tarjetas de adquisición de datos o controladores lógicos programables (PLCs). En este trabajo se

Diseño y construcción de una tarjeta programable Capítulo 5. Diseño y construcción de plantas de adquisición, procesamiento de datos y control

75

2. Se enciende el agitador y espera la recepción de datos por el puerto serie. 3. Después de que los 3 datos (setpoint, Kp y Ti) son recibidos, se lee la temperatura de la

cámara térmica por medio del sensor LM35. 4. El dato de temperatura es enviada a la computadora y se escala para las futuras

operaciones. Se tiene aproximadamente un 1 digital del conversor A/D por cada ½ °C de temperatura. En el programa, se manejan los valores de temperatura en décimas de grado Celsius para que las variables sean de tipo entero.

5. Se calcula el error y el error acumulado. 6. Si el valor de Ti es diferente de cero, se calcula la parte integral del controlador; en caso

contrario la parte integral se iguala a cero. Se calcula el valor del controlador de acuerdo a la fórmula 5.4.

7. El valor del controlador es adaptado para que controle el voltaje eficaz aplicado al calefactor.

La tarjeta programable sigue funcionando sin importar que se haya presionado el botón de “PARO” en el instrumento virtual. El diagrama de flujo del programa de control de la cámara térmica puede consultarse en el anexo D.5 y el código fuente del programa de control en el anexo D.6. El código gráfico del programa de monitoreo y control de la cámara térmica se muestra en el anexo D.7.

Page 88: TESIS TARJETA PROGRAMABLE - cenidet.edu.mx Joaquin Rivero... · componente como tarjetas de adquisición de datos o controladores lógicos programables (PLCs). En este trabajo se

Diseño y construcción de una tarjeta programable Capítulo 6. Experimentación y análisis de resultados de adquisición, procesamiento de datos y control

76

CAPÍTULO 6. EXPERIMENTACIÓN Y ANÁLISIS DE RESULTADOS

Page 89: TESIS TARJETA PROGRAMABLE - cenidet.edu.mx Joaquin Rivero... · componente como tarjetas de adquisición de datos o controladores lógicos programables (PLCs). En este trabajo se

Diseño y construcción de una tarjeta programable Capítulo 6. Experimentación y análisis de resultados de adquisición, procesamiento de datos y control

77

6.1. Pruebas y resultados de la tarjeta programable con el robot móvil seguidor de línea

La prueba aplicada al robot móvil seguidor de línea 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 posición de partida para recorrer la pista en sentido contrario a las manecillas del reloj. Los puntos donde el robot móvil reacciona para girar a la izquierda están marcados con la letra “I”, los puntos donde el robot móvil gira hacia la derecha están marcados con la letra “D”. Después de las curvas, el robot móvil reacciona a la recta y entonces avanza para continuar la trayectoria. El ancho de la línea es de 3 cm.

Figura 6.1 Pista de prueba del robot móvil seguidor de línea.

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

Page 90: TESIS TARJETA PROGRAMABLE - cenidet.edu.mx Joaquin Rivero... · componente como tarjetas de adquisición de datos o controladores lógicos programables (PLCs). En este trabajo se

Diseño y construcción de una tarjeta programable Capítulo 6. Experimentación y análisis de resultados de adquisición, procesamiento de datos y control

78

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

Las pruebas realizadas al sistema de control de la planta se llevaron a cabo con un foco incandescente de 100 Watts, el cual simuló al sol. En las pruebas se detectaron algunos problemas mecánicos 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 definición de la dirección de los sensores fotoeléctricos se logró mediante tubo termo contráctil (thermofit). Para realizar las pruebas se colocó el foco en una determinada posición, y entonces se oprimió el botón de arranque. Inicia la rutina de posicionamiento de inicio y después la rutina de búsqueda en donde el foco fue detectado por el grupo derecho de ocho sensores, por lo que frena horizontalmente y después 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 dirección del sensor número 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. Después 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 límites 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 dirección hasta que se accionó el límite inferior de giro vertical, provocando que el sistema se reinicie desde la posición de inicio “home”. De manera similar se hizo la prueba para verificar la respuesta al accionamiento del interruptor de límite de giro vertical hacia arriba. Se probaron los límites de giro horizontal moviendo el foco de tal manera que la planta lo siguiera hasta que se activó el límite de giro horizontal derecho. Para esta posición los sensores uno y tres se inhabilitan mediante programa, por lo que la planta ya no pudo girar mas a la derecha, protegiéndola así del sobregiro a la derecha. De manera similar se realizó la prueba de protección de sobre giro a la izquierda. Los resultados de las pruebas realizadas se consideran satisfactorios, considerando la falta de maquinaria y equipo para la fabricación de los mecanismos de la planta, además del mínimo presupuesto empleado para su fabricación. El ajuste de la longitud de los tubos que direccionan la luz del foco hacia los sensores fotoeléctricos 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 dirección 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.

Page 91: TESIS TARJETA PROGRAMABLE - cenidet.edu.mx Joaquin Rivero... · componente como tarjetas de adquisición de datos o controladores lógicos programables (PLCs). En este trabajo se

Diseño y construcción de una tarjeta programable Capítulo 6. Experimentación y análisis de resultados de adquisición, procesamiento de datos y control

79

La respuesta que dieron las protecciones de sobregiros tanto horizontales como verticales fue satisfactoria en todas las pruebas que se hicieron. Las diez pruebas que se hicieron, primero haciendo que el sistema siguiera al foco hasta los límites verticales. En estos casos el sistema al sensar los límites verticales respondió, llevando el sistema a la posición 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, después 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 electromecánicos, se resolvieron mediante programación. Esto consiste básicamente 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 electromecánicos. 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 rápido en la etapa de seguimiento, la planta perderá el rastro, por lo que ya no podrá seguirlo. Con una velocidad moderada del movimiento del foco, la planta funciona satisfactoriamente. 6.3. Pruebas y resultados de la tarjeta programable con la cámara térmica con

temperatura controlada Se realizaron varias pruebas preliminares para comprobar el funcionamiento de la cámara térmica. Estas pruebas preliminares están listadas a continuación: Comprobación de voltaje eficaz. Esta prueba abarcó desde el análisis matemático para la obtención del voltaje eficaz de una onda senoidal recortada hasta la verificación con el osciloscopio del corte de la señal de corriente alterna. Comunicación serie tarjeta programable – PC. Se probó la transmisión del dato adquirido del sensor LM35 hacia la computadora y visualizarlo gráficamente en LabVIEW. Comunicación serie PC – tarjeta programable. Se realizó un programa de prueba para que el microcontrolador muestre los 3 datos enviados desde LabVIEW.

Page 92: TESIS TARJETA PROGRAMABLE - cenidet.edu.mx Joaquin Rivero... · componente como tarjetas de adquisición de datos o controladores lógicos programables (PLCs). En este trabajo se

Diseño y construcción de una tarjeta programable Capítulo 6. Experimentación y análisis de resultados de adquisición, procesamiento de datos y control

80

a) Comprobación de voltaje eficaz. Para esta prueba se requirieron los siguientes datos:

175 Volts

60 HertzpV

F

=

=

para obtener la ecuación de la señal de corriente alterna:

( ) 175sin(120 )f t π=

La fórmula para el voltaje eficaz de cualquier señal es:

0

1 ( )t

efV f t dtT

= ∫ (6.1)

Aplicando la ecuación 6.1 para el cálculo del voltaje eficaz de la onda recortada se obtiene:

( ) ( )( )( )

1 1

2 2 2

2

1 175sin(120 ) 175sin(120 )T T

ef t T tV dt dt

Tπ π

+= +∫ ∫

( )11

sin 240 1175 30 2120 60ef

tV t

ππ

⎛ ⎞= − +⎜ ⎟

⎝ ⎠

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 Experimentación de voltaje eficaz y tiempo de recorte.

Vef deseado (Volts)

t1 (obtenido de gráfica)

(ms)

t1 programado

(ms)

t1 medido

(ms)

Vinst gráfica (Volts)

Vinst medido (Volts)

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

Page 93: TESIS TARJETA PROGRAMABLE - cenidet.edu.mx Joaquin Rivero... · componente como tarjetas de adquisición de datos o controladores lógicos programables (PLCs). En este trabajo se

Diseño y construcción de una tarjeta programable Capítulo 6. Experimentación y análisis de resultados de adquisición, procesamiento de datos y control

81

Se comprobó que el tiempo de retardo programado corresponde al tiempo de retardo real y por lo tanto, los recortes de señal dan valores de voltaje eficaz cercanos a los que se deseaban. Durante esta prueba se elevó la temperatura dentro de la cámara térmica a un valor mayor de 100 °C. El agitador de aire se deformó por la alta temperatura, por lo que se decidió limitar la temperatura de operación de la cámara térmica. b) Comunicación serie tarjeta programable – PC. Se programó el microcontrolador para estar enviando la señal del dato de temperatura cada segundo a la computadora por medio del puerto serie. Los datos recibidos eran visualizados en una gráfica del instrumento virtual programado en LabVIEW. Con esto se probó la transmisión por puerto serie de la tarjeta programable a la computadora. c) Comunicación serie PC – tarjeta programable. En esta prueba se enviaban los datos de las variables desde el instrumento virtual de LabVIEW a la tarjeta programable. En la tarjeta, se almacenaban los datos recibidos en tres variables y eran mostrados por el puerto D en la tarjeta de aplicación. Los datos enviados desde la computadora eran los que se mostraban en la tarjeta de aplicación de la tarjeta programable. Después de comprobar con estas pruebas las etapas esenciales tanto a nivel físico como a nivel de programación, se procedió a realizar las pruebas de la cámara térmica. Las pruebas de la cámara térmica consistieron en un controlador proporcional y un controlador proporcional-integral. En la primera prueba se inició el instrumento virtual, se encendió la tarjeta programable y se colocó el valor de “setpoint” (45 °C) y un valor de Kp (3). El valor de Ti se conserva en cero. Después se presionó el botón de “LISTO” para que el controlador empezara a funcionar. La temperatura se estabilizó después de 2.5 minutos sin llegar a la temperatura requerida debido a que es un controlador de tipo proporcional. Finalmente se detuvo el instrumento virtual y se activaron las compuertas, el soplador y el extractor de aire para sacar el aire caliente de la cámara térmica.

Page 94: TESIS TARJETA PROGRAMABLE - cenidet.edu.mx Joaquin Rivero... · componente como tarjetas de adquisición de datos o controladores lógicos programables (PLCs). En este trabajo se

Diseño y construcción de una tarjeta programable Capítulo 6. Experimentación y análisis de resultados de adquisición, procesamiento de datos y control

82

Figura 6.2 Prueba de controlador proporcional.

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

Figura 6.3 Prueba de controlador proporcional-integral.

La forma poligonal de la señal 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 cámara térmica.

Page 95: TESIS TARJETA PROGRAMABLE - cenidet.edu.mx Joaquin Rivero... · componente como tarjetas de adquisición de datos o controladores lógicos programables (PLCs). En este trabajo se

Diseño y construcción de una tarjeta programable Capítulo 7. Conclusiones de adquisición, procesamiento de datos y control

83

CAPÍTULO 7. CONCLUSIONES

Page 96: TESIS TARJETA PROGRAMABLE - cenidet.edu.mx Joaquin Rivero... · componente como tarjetas de adquisición de datos o controladores lógicos programables (PLCs). En este trabajo se

Diseño y construcción de una tarjeta programable Capítulo 7. Conclusiones de adquisición, procesamiento de datos y control

84

7.1. Conclusiones El resultado final del desarrollo de este trabajo de tesis, es una tarjeta programable que permite controlar una amplia variedad de procesos de acuerdo al algoritmo de control programado en el microcontrolador. Esta tarjeta puede operar de forma autónoma o con conexión 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 analógico (resistencias variables, fotorresistencias, sensores de temperatura). Los actuadores que pueden ser controlados por la tarjeta programable no deben requerir más 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. Además puede utilizar un sensor y un actuador que trabaje con el estándar industrial de 4-20 mA. Tiene una pantalla de cristal líquido para mostrar resultados, condiciones de operación o lo que el usuario quiera visualizar. Existen sistemas comerciales de adquisición de datos que pueden realizar la lectura de varios sensores e interactuar con la computadora, pero están 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 instrumentación como LabVIEW comparado con otros módulos de adquisición de datos que funcionan solamente con el programa del fabricante. Por su diseño 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 característica 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 diseñar y construir una tarjeta programable y autónoma de adquisición, procesamiento de datos y control con opción de conexión a la computadora o a otra tarjeta similar. Además de lograr todas las metas planteadas, incluyendo que el costo de los componentes fue de $1,099.17 MN (ver anexo E), se obtuvieron los siguientes logros: • Tarjeta de procesamiento intercambiable. • Tarjeta de aplicación para emulación, pruebas y prácticas con la tarjeta programable. • Plantas para demostrar la funcionalidad de la tarjeta, incluyendo los programas de

control de cada una: o Robot móvil seguidor de línea. o Modelo a escala de plataforma de seguimiento solar. o Cámara térmica con temperatura controlada.

Page 97: TESIS TARJETA PROGRAMABLE - cenidet.edu.mx Joaquin Rivero... · componente como tarjetas de adquisición de datos o controladores lógicos programables (PLCs). En este trabajo se

Diseño y construcción de una tarjeta programable Capítulo 7. Conclusiones de adquisición, procesamiento de datos y control

85

En el disco compacto de la tesis esta este documento en formato electrónico y documentación adicional sobre la fabricación, operación y uso de la tarjeta programable, además de todos los programas realizados. 7.2. Trabajos futuros Este trabajo de tesis abre la posibilidad de nuevos de proyectos de tesis para ampliar las aplicaciones de la tarjeta, facilitar la utilización al usuario y facilitar el desarrollo de otros trabajos de tesis. Algunos de los posibles trabajos futuros que involucren la tarjeta programable son: • Realizar prácticas sobre microcontroladores de la materia de “Computación Básica”,

y trabajos finales de la materia de “Sensores, Actuadores e Interfases” del plan de estudios de la Coordinación de Mecatrónica del cenidet.

• Desarrollar un programa de simulación de la tarjeta programable junto con las plantas

de prueba para poder elaborar y validar los modelos de las plantas. • Realizar una interfaz gráfica en la computadora que facilite la utilización de la tarjeta

programable permitiendo configurar la tarjeta programable, leer las terminales de entrada y controlar las terminales de salida desde la computadora.

• Diseñar interfases para comunicar la tarjeta programable por medio de puertos de

comunicación alámbricos (USB, Ethernet) e inalámbricos (IrDA, Bluetooth), para tener una mayor velocidad de transmisión de datos para aplicaciones de visión y capacidad para conectar la tarjeta con dispositivos portátiles (computadoras portátiles, PDAs).

• En algunos proyectos del cenidet, hay retrasos por la falta de un controlador

económico que sea de fácil manejo, porque se tiene que diseñar uno desde cero. Al término de este trabajo, se está realizando una tesis que considera la utilización de esta tarjeta programable para el monitoreo y control de un secador de caña de azúcar.

• Para poder aplicar a plantas con dinámica de mayor velocidad o un nivel mayor de

procesamiento matemático, se pueden utilizar controladores de señal digital (como los dsPICs) los cuales tienen características de un microcontrolador y de un DSP como la facilidad de implementación, y se podrían reutilizar todos los programas de la tarjeta realizados en esta tesis con ajustes mínimos.

• Para el avance en el campo de la Mecatrónica, puede utilizarse la tarjeta para la

aplicación, demostración o desarrollo de algoritmos de comunicación de inteligencia artificial distribuida para realizar tareas entre varios robots.

Page 98: TESIS TARJETA PROGRAMABLE - cenidet.edu.mx Joaquin Rivero... · componente como tarjetas de adquisición de datos o controladores lógicos programables (PLCs). En este trabajo se

Diseño y construcción de una tarjeta programable Referencias de adquisición, procesamiento de datos y control

86

REFERENCIAS [1] Jan Axelson. “USB Complete. Everything you need to develop custom USB

peripherals”. Lakeview Research, Estados Unidos de América, 2001. [2] Jesús Flores V. “MICROCONTROLADOR COP8. Manual de Teoría y Práctica

Básica”. National Semiconductor Corp., México, 2001. [3] John Catsoulis. “Designing embedded hardware”. O’ Reilly, Estados Unidos de

América, 2002. [4] José María Ángulo Usategui e Ignacio Ángulo Martínez. “Microcontroladores PIC:

Diseño práctico de aplicaciones 1ª parte”. McGraw-Hill, España, 2003. [5] Motorola. “MC68HC11A8 HCMOS Single-chip microcontroller”. Motorola Inc,

Estados Unidos de América, 1996. [6] Motorola. “MC68HC12B family data sheet”. Motorola Inc, Estados Unidos de

América, 2004. [7] Texas Instruments. “C2000 Controllers”. Estados Unidos de América, consultado en

mayo de 2005, http://focus.ti.com/mcu/docs/overview.tsp?templateId=5992& navigationId=11468&path=templatedata/cm/mcuovw/data/C2000_ovw

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

América, 2004. [9] Robert F. Coughlin. “Amplificadores operacionales y circuitos integrados lineales”.

Editorial Prentice Hall, México, 1999. [10] Hen Chan. “Electronic Circuitry EE303”, Notas de clase. Mohawk College, Canada,

2000. [11] AN10216-01 “Manual de I2C” de Philips. [12] Brad Suppanz. “Calculadora de ancho de pista para placa de circuito impreso”.

Consultado en enero de 2005, http://www.geocities.com/suppanz/TraceWidth.htm [13] Programa de monitoreo del puerto serie. Descargado en abril de 2005,

http://tapec.uv.es/edupic/test/Comunica.exe [14] Buscador de hojas de datos de componentes electrónicos. Consultado en septiembre

de 2005, http://www.alldatasheet.com [15] Resistor. Electrónica Práctica. Numero 203, Revistas profesionales, España, 2004.

Page 99: TESIS TARJETA PROGRAMABLE - cenidet.edu.mx Joaquin Rivero... · componente como tarjetas de adquisición de datos o controladores lógicos programables (PLCs). En este trabajo se

Diseño y construcción de una tarjeta programable Referencias de adquisición, procesamiento de datos y control

87

[16] John Iovine. “Pic Microcontroller Project Book”. McGraw-Hill, Estados Unidos de América, 2004.

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

application. [18] Reglas del concurso de robots de carreras de microbótica en México. Consultado en

septiembre de 2005, http://www.microbotica.org/reglamenteo/carreras.pdf

Page 100: TESIS TARJETA PROGRAMABLE - cenidet.edu.mx Joaquin Rivero... · componente como tarjetas de adquisición de datos o controladores lógicos programables (PLCs). En este trabajo se

Diseño y construcción de una tarjeta programable Anexos de adquisición, procesamiento de datos y control

88

Anexo A. Circuitos esquemáticos de la tarjeta programable

Figura A.1 Circuito esquemático de tarjeta principal.

VC

C

VCC

VCC

2

VCC

VC

C1

VAN

VCC

VCC

2V

CC

VCC

VCC

1VC

C2

VCC

VCC

VCC

VC

C1

VAN

VCC VC

C

VC

C

VC

C1

VAN

VC

C

VC

C

H20

H2

L13

L2

H6H15

L9

H7

L9

H19

H18

H10

L7

L8

H17

L4

H17

H6

L12

H8

L7

L3

H13

H12

H2

H16

H9

H7

H21

H19

L4

L5

H3

H14

L3

H8

L10

H1

H18

H15

H16

L2

L10

L6

L11

H3

H5

H5

H4

L6

H9

L5

L1

H4

L8

H13

H21H20

H14

L12L11

L13

H12

L1

H1

H10

H11H11

L18

L16

L14L14

L16L17L18

L21L20L19

L15

L17

L19

L21

L20

L15

C2

D2

RES

ET

PO

R P

C

C5

C5

D5

D3

D3

B3

B3

C1

B3

C2

B7

D4

D1

D0

RB

0 RB

0

B1

D0

B0

C5

B2

D7

B7

D6

B2

B0

B7

C1

C0

C1

B1

B1

B2

C5

D7

B0

C5

B6

B1

D6

D5

C2

B7

B0

D4

C0

B2

C0

D2

D6

D0

B7

D3

D1

RA5

B3

D1

D7

D5

D4

D2

D0

D1

D2

D7

D6

D5

D4

D3

B0

B1

B2

B3

B7

B6

B4

B6

B5

B4

B6

B6

B6

B5

B5

B4

B5

B4

B5

B4

C4

C3

A4

A4

A4 A

4

C26

U2

74H

C24

5

23456789

1817161514131211

1 19

A1

A2

A3

A4

A5

A6

A7

A8

B1

B2

B3

B4

B5

B6

B7

B8

DIR

OE

C20

+ -U7D

12 1314

+ -U7C

10 98

+ -U7B

5 67

+ -U7A

MC

P60

44

3 21

C47

C46

C45

100n

F

R39

470

R40

470

J47

I2C1 2

U5

L293

2 7 10 15 1 9

3 6 11 14

8

1A 2A 3A 4A 1,2E

N3,

4EN

1Y 2Y 3Y 4YVCC2

U4

L293

2 7 10 15 1 9

3 6 11 14

8

1A 2A 3A 4A 1,2E

N3,

4EN

1Y 2Y 3Y 4YVCC2

J28 USB

1 2 3 4

VBU

SD

-D

+G

ND

5 6

R45

4K7

C8

100n

FC

9

C11

C14

C10

100n

FC

13C

12

C17

C19

100n

F

C15

C18

C16

C22

22nF

C25

C21 10

nF

R32

330

R28

330

R31

2K2

R29

2K2

U8

24FC

512

A0

A1

SD

ASC

LA

2

D8

R46

470

JP4

CO

NE

CTO

R A

TA

RJE

TA 4

-20

mA

12

34

56

78

910

1112

1314

R22

47K

C

R34

10K

R20

820

R19

10K

R48

4K7

R4247K

R33

4.7

SW

5

SW

DIP

-3

123

654 J3

0 123

J29 1

23

J31

123

R36

R35

470

R38

470

R37

J35 1

23

R23

R30

1K5

J2612

C

R41

47K

R27

R26

C48

C49

100n

F

L2

0.5m

H

L1

0.5m

H

U3

MA

X232

13 8 11 10 1 3 4 5 2 6

12 9 14 7

R1I

NR

2IN

T1IN

T2IN

C+

C1-

C2+

C2-

V+ V-

R1O

UT

R2O

UT

T1O

UT

T2O

UT

P15 9 4 8 3 7 2 6 1

D7

U9

LM78

05C

/TO

220

13

2

INO

UT

GND

JP3

EN

T. P

RO

G

VPP/

MC

LR#

RB3

/PG

MR

B7/P

GD

RB6

/PG

C1

23

45

6

C4

10uF

/25V

C2

C1

10uF

/25V

C3

C7

100u

F/25

V

C6

10uF

/25V

D2

1N41

48

JP1

CO

NE

CTO

R A

TA

RJE

TA D

E uC

12345678910111213141516171819202122232425262728293031323334353637383940

R24

R25

J36 1

23

C27

100n

F

J27

CO

N3

123

U10

24FC

512

A0

A1

SD

ASC

LA

2

U6

LM78

15C

/TO

220

13

2

INO

UT

GND

C43 0.1uF

C44 0.1uF

C50

100n

F

C23

C24

100u

F/2

5VJ32

FTE

. VC

D E

XT.

1 2

J34

CON5

12345

J33

CON5

12345

D3

5V1

JP5

HEA

DER

7X2

12

34

56

78

910

1112

1314

R1

470

R2

R4

R3

R8

R6

R9

R5

R7

U1

LM79

15C

/TO

220

23

1

INO

UT

GND

R10

470

R11

R13

R12

R14

C29 0.1uF

C30 0.1uF

R17

R18

470

R16

C28

100

nF

R15

J1 123

D4

1N41

48

C33

1000uF/50v

C32 0.1uF

C31 0.1uF

C

R47 220

1 23456789

F1 1 A

C35

1000uf/50v

C39 100uF/50v

C36 100uF/100v

C40 100uF/50v

C34 100uF/50vC38 100uF/50v

C37 100uF/50v

J2 123

J5 123

J4 123

J7 123

J3 123

J6 123

C42 0.1uF

D6

C41 100uF/50v

R2110K

J14 1

23

J9 123

J8 123

J11 1

23

J12 1

23

J15 1

23

J13 1

23

J10 1

23

JP2

HE

ADE

R 1

8X2

12

34

56

78

910

1112

1314

1516

1718

1920

2122

2324

2526

2728

2930

3132

3334

3536

J21 1

23

J18 1

23

J20 1

23

J17 1

23

J19 1

23

J16 1

23

J23 123

J22 123

J24 123

J25 123

J43

1234

J39

1234

J41

1234

J40

1234

J44

1234

J38

1234

J42

1234

J45

1234

SW4

1234

8765

R44 470

R43 470

SW

3

123

654

C4

RC

4

RC

3

C3

RC4

RC

6

AN

3

RC

6

RC3

RE1

AN

0

RC

7

RA

5

AN

1

RC

7

RB

0

RE0

RE2

AN2

RA5

C3

C4

C3

C4

RE

1R

E2

RE

0

AN1

AN3

AN2

AN0

Page 101: TESIS TARJETA PROGRAMABLE - cenidet.edu.mx Joaquin Rivero... · componente como tarjetas de adquisición de datos o controladores lógicos programables (PLCs). En este trabajo se

Diseño y construcción de una tarjeta programable Anexos de adquisición, procesamiento de datos y control

89

Figura A.2 Circuito esquemático de tarjeta de procesamiento.

VCC

VCC

U1

PIC

18F4

52

1

2 3 4 5 6 7 8 9 10

11 1314

19 20 21 22

32

27 28 29 3033 34 35 36 37 38 39 40 2625242318171615

MC

LR/V

pp

RA0

/AN

0R

A1/A

N1

RA2

/AN

2/VR

EF-

RA3

/AN

3/VR

EF+

RA4

/TO

CKI

RA5

/AN

4/SS

#

RE0

/RD

#/AN

5R

E1/W

R#/

AN6

RE2

/CS#

/AN

7

VC

C

OSC

1/C

LKIN

OS

C2/

CLK

OU

T

RD

0/PS

P0R

D1/

PSP1

RD

2/PS

P2R

D3/

PSP3

VC

C

RD

4/PS

P4R

D5/

PSP5

RD

6/PS

P6R

D7/

PSP7

RB0

/INT

RB1

RB2

RB3

PGM

RB4

RB5

RB6

/PG

CR

B7/P

GD

RC

7/R

X/D

TR

C6/

TX/C

KR

C5/

SDO

RC

4/SD

I/SD

AR

C3/

SCK/

SCL

RC

2/C

CP1

RC

1/T1

OSO

/CC

P2R

C0/

T1O

SI/T

1CKI

XTL

C2

100

nF

C1

100

nF

C5

22pF

C4

22pF

C3 10uF

JP1

HEA

DER

20X

2

12345678910111213141516171819202122232425262728293031323334353637383940

S1

C6

10 u

F / 1

6V

R23

10K

D1

1N41

48

SW1

12

R21

100

Page 102: TESIS TARJETA PROGRAMABLE - cenidet.edu.mx Joaquin Rivero... · componente como tarjetas de adquisición de datos o controladores lógicos programables (PLCs). En este trabajo se

Diseño y construcción de una tarjeta programable Anexos de adquisición, procesamiento de datos y control

90

Figura A.3 Circuito esquemático de la tarjeta de 4-20 mA.

-15V

CC

+15V

CC

+5V

CC

+15V

CC

-15V

CC

-15V

CC +1

5VC

C

+15V

CC

+5VC

C

U3 XT

R11

0

16

85314 12

6215 11

79

41

13 10

+ Vc

c

Zer

o A

dj3

Vin

2(5V

)

Vre

f In

Gat

e D

rive

Vref

Sens

eZ

ero

Adj

1

Com

mV

ref

Forc

e

Vref

Adj

Zer

o A

dj2

16m

A S

pan

Vin

1(10

V)

Sou

rce

Res

Sou

rceS

ense

4mA

Spa

n

U1

DAC

0808

12 11 10 9 8 7 6 5 14 15

4 2 16

13 3

A8 A7 A6 A5 A4 A3 A2 A1 VR+

VR-

IOU

T

IOU

T

CO

MP

V+ V-

U2

RC

V42

0

16

85314 12

6215 11

79

41

13 10

V +

Ref

Trim

Ref

Com+ In

Rcv

Out

Ref

In

NC

1

CT

Rcv

fB

Ref

Out

Ref

Noi

se R

edN

C2

V -

- In

Rcv

Com

Ref

fB

JP1

HE

AD

ER 7

X2

12

34

56

78

910

1112

1314

+-

U4

LF35

132

6

71

45

R1

3K3

R2

3K3

R3

1KR

4 10K

C1

33pF

J1

EN

TRA

DA

4-20

mA

1 2

J2

SALI

DA

4-20

mA

1 2

Q1

MO

SFE

T M

TP29

551

23

+C

2

1 uF

Page 103: TESIS TARJETA PROGRAMABLE - cenidet.edu.mx Joaquin Rivero... · componente como tarjetas de adquisición de datos o controladores lógicos programables (PLCs). En este trabajo se

Diseño y construcción de una tarjeta programable Anexos de adquisición, procesamiento de datos y control

91

Figura A.4 Circuito esquemático de tarjeta de aplicación.

VC

C

VA

N

VC

C1

VA

N

VC

C1

VC

C1

VCC

VC

C

VC

C

VC

C

VC

C

A2

S3

S0

S1

D1

A4

S3

S5

S6

S1

S4

S3

S0

D6

S1

S4

B5

D3

D5

D7

D4

D5

S3

S5

C3

D3

S2 S3

S5

S2

S7

D7

S1S0

S5

C5

A5

S7S

6S

5

S0

S2

S6

RB

0

D2

S7

B4

D6

S4

S2

S4

S0

D1

D2

D4

S4

C4

S6

S2

S1

S7

B5

B4

S6

D0

D0

B3

B1

B1

B3

B2

B7

B2 B

0

B6

B0

B6B

7

R5

LDR

R3

10K

U1

LM35

/TO

12

VS+

VO

UT

R110

K1

32

R2 10

K1

3

2

J3 123

C4

47uF

/16v

J2 123

J1 123

J4 123

SW20

R13

1k

R15

1k

R12

3K9

JP2

124 567 9 10ed

3

c dpba

8

f g

SW18

JP3

124 567 9 10ed

3

c dpba

8f g

JP4

124 567 9 10ed

3

c dpba

8

f g

JP5

124 567 9 10ed

3

c dpba

8

f g

U2

74LS

48

7 1 2 64 5 3

13 12 11 10 9 15 14A B C DB

IR

BI

LT

OA

OB

OC

OD

OE

OF

OG

U3 PC

F85

91

15 14 13 12 1110932 5 6 741

AOU

T

VRE

F

AG

ND

EXT

OS

CS

CL

SD

A

AIN

2A

IN1

A0

A1

A2

AIN

3

AIN

0

SW4

SW3

SW7

SW10

SW6

SW8

SW5

SW9

SW11

SW13

SW16

SW15

SW14

SW12

SW17

C

R11

470

123456789

Q4

2N39

04

32

1

Q2

2N39

04

32

1

Q3

2N39

04

32

1

Q5

2N39

04

32

1

R8

10K

R6

220

R7

3K9

Q1

2N39

04

32

1

J5 1 2

D1

R9 10

K

13

2

C1

100n

C5

100n

SW19

D27 LE

D

R14

3K9

JP6

12

34

56

78

910

1112

1314

1516

1718

1920

2122

2324

2526

2728

2930

3132

3334

3536

JP1

124 567 9 10ed

3

c dpba

8

f g

D11

D13

D12

D10

D17

D15

D16

D14

D18

D21

D19

D20

D26

D24

D22

D23

D25

D4

D8

D6

D7

D5

D2

D3

D9

J6

1 2

J7 CO

N2

1 2

C

R10

470

12 3 4 5 6 7 8 9

R4

470

B4

B5

A5

B7B4

B1

C3

RB0

AN

3

B5

B2

C4

B3A

N3

A4

B0

B6

C5

B7

B6

Page 104: TESIS TARJETA PROGRAMABLE - cenidet.edu.mx Joaquin Rivero... · componente como tarjetas de adquisición de datos o controladores lógicos programables (PLCs). En este trabajo se

Diseño y construcción de una tarjeta programable Anexos de adquisición, procesamiento de datos y control

92

Anexo B. Diseños de placas de circuito impreso

Figura B.1 Diseño de la cara superior de la tarjeta principal.

Page 105: TESIS TARJETA PROGRAMABLE - cenidet.edu.mx Joaquin Rivero... · componente como tarjetas de adquisición de datos o controladores lógicos programables (PLCs). En este trabajo se

Diseño y construcción de una tarjeta programable Anexos de adquisición, procesamiento de datos y control

93

Figura B.2 Diseño de la cara inferior de la tarjeta principal.

Page 106: TESIS TARJETA PROGRAMABLE - cenidet.edu.mx Joaquin Rivero... · componente como tarjetas de adquisición de datos o controladores lógicos programables (PLCs). En este trabajo se

Diseño y construcción de una tarjeta programable Anexos de adquisición, procesamiento de datos y control

94

A B C D

1 1

2 2

3 3

4 4

5 5

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

Page 107: TESIS TARJETA PROGRAMABLE - cenidet.edu.mx Joaquin Rivero... · componente como tarjetas de adquisición de datos o controladores lógicos programables (PLCs). En este trabajo se

Diseño y construcción de una tarjeta programable Anexos de adquisición, procesamiento de datos y control

95

Tabla B.1 Ubicación de componentes en la tarjeta principal.

Compo-nente

Ubica-ción

C1 5B C2 4B C3 4B C4 4B C6 5A C7 5B C8 4C C9 4C C10 5C C11 5D C12 5C C13 5D C14 5D C15 5C C16 5D C17 5D C18 5D C19 4D C20 5D C21 3D C22 3C C23 4C C24 5C C25 3D C26 3D C27 4D C28 3B C29 4A C30 4B C31 4C C32 4C C33 4A C34 4B C35 4A

Compo-nente

Ubica-ción

C36 4C C37 4C C38 4B C39 4C C40 4C C41 4C C42 4C C43 4A C44 4B C45 5D C46 4C C47 4D C48 2D C49 2D C50 4D D2 5B D3 5A D4 4C D6 2D D7 4C D8 4B F1 4A J1 3C J2 4C J3 3C J4 3C J5 3C J6 3C J7 3C J8 3C J9 3C

J10 3C J11 2C J12 2C

Compo-nente

Ubica-ción

J13 3C J14 2C J15 2C J16 2C J17 2C J18 2C J19 2C J20 2C J21 2C J22 2D J23 3D J24 3D J25 3D J26 3B J27 4A J28 2D J29 2C J30 2D J31 2D J32 4A J33 5D J34 5D J35 5C J36 4C J38 5D J39 5C J40 5C J41 5C J42 5B J43 5B J44 5A J45 5A J47 4D JP1 3A

Compo-nente

Ubica-ción

JP2 1A JP3 2D JP4 1C JP5 1D P1 5A R1 3A R2 3A R3 3A R4 3A R5 2A R6 2A R7 2B R8 2B R9 2B R10 2B R11 2A R12 2A R13 2B R14 2B R15 2B R16 2A R17 2B R18 2A R19 1D R20 1D R21 2B R22 2C R23 3C R24 2C R25 2C R26 3C R27 2C R28 5B R29 2D

Compo-nente

Ubica-ción

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

Page 108: TESIS TARJETA PROGRAMABLE - cenidet.edu.mx Joaquin Rivero... · componente como tarjetas de adquisición de datos o controladores lógicos programables (PLCs). En este trabajo se

Diseño y construcción de una tarjeta programable Anexos de adquisición, procesamiento de datos y control

96

Figura B.4 Diseño de la cara superior de la tarjeta de procesamiento.

Page 109: TESIS TARJETA PROGRAMABLE - cenidet.edu.mx Joaquin Rivero... · componente como tarjetas de adquisición de datos o controladores lógicos programables (PLCs). En este trabajo se

Diseño y construcción de una tarjeta programable Anexos de adquisición, procesamiento de datos y control

97

Figura B.5 Diseño de la cara inferior de la tarjeta de procesamiento.

Page 110: TESIS TARJETA PROGRAMABLE - cenidet.edu.mx Joaquin Rivero... · componente como tarjetas de adquisición de datos o controladores lógicos programables (PLCs). En este trabajo se

Diseño y construcción de una tarjeta programable Anexos de adquisición, procesamiento de datos y control

98

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

Page 111: TESIS TARJETA PROGRAMABLE - cenidet.edu.mx Joaquin Rivero... · componente como tarjetas de adquisición de datos o controladores lógicos programables (PLCs). En este trabajo se

Diseño y construcción de una tarjeta programable Anexos de adquisición, procesamiento de datos y control

99

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

Page 112: TESIS TARJETA PROGRAMABLE - cenidet.edu.mx Joaquin Rivero... · componente como tarjetas de adquisición de datos o controladores lógicos programables (PLCs). En este trabajo se

Diseño y construcción de una tarjeta programable Anexos de adquisición, procesamiento de datos y control

100

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

Page 113: TESIS TARJETA PROGRAMABLE - cenidet.edu.mx Joaquin Rivero... · componente como tarjetas de adquisición de datos o controladores lógicos programables (PLCs). En este trabajo se

Diseño y construcción de una tarjeta programable Anexos de adquisición, procesamiento de datos y control

101

Figura B.9 Diseño de la cara superior de la tarjeta de aplicación.

Page 114: TESIS TARJETA PROGRAMABLE - cenidet.edu.mx Joaquin Rivero... · componente como tarjetas de adquisición de datos o controladores lógicos programables (PLCs). En este trabajo se

Diseño y construcción de una tarjeta programable Anexos de adquisición, procesamiento de datos y control

102

Figura B.10 Diseño de la cara inferior de la tarjeta de aplicación.

Page 115: TESIS TARJETA PROGRAMABLE - cenidet.edu.mx Joaquin Rivero... · componente como tarjetas de adquisición de datos o controladores lógicos programables (PLCs). En este trabajo se

Diseño y construcción de una tarjeta programable Anexos de adquisición, procesamiento de datos y control

103

Figura B.11 Capa de leyenda de componentes de la tarjeta de aplicación.

Page 116: TESIS TARJETA PROGRAMABLE - cenidet.edu.mx Joaquin Rivero... · componente como tarjetas de adquisición de datos o controladores lógicos programables (PLCs). En este trabajo se

Diseño y construcción de una tarjeta programable Anexos de adquisición, procesamiento de datos y control

104

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

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

Nº Nombre Módulo de entrada Módulo de salida Programa

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

1.A

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

digitales) 1.B

2 Entradas analógicas Entrada analógica RA0 Puerto B (E/S

digitales) 2

3 Potencia para motores * Potencia para motores 3

4 Pantalla de

cristal líquido (LCD)

* LCD 4

5 Comunicación RS232 Puerto B (E/S digitales) RS232 5

6 Comunicación I2C * Memoria EEPROM 6.A

6.B

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

7.A 7 E/S de 4 - 20

mA * E/S de 4-20 mA 7.B * En estas pruebas los datos iniciales o de control son generados en el módulo de procesamiento. La descripción de operación de cada programa se detalla en la sección 4.1. Programa 1.A – Entradas/salidas digitales #include <p18f452.h> #pragma config OSC = HS #pragma config BOR = OFF #pragma config WDT = OFF #pragma config LVP = OFF void main (void) PORTB = 0;LATB = 0; TRISB = 0xFF; // PORTB entrada PORTD = 0;LATD = 0; INTCON2 = 0x80; TRISD = 0x00; // PORTD salida while (1)

Page 117: TESIS TARJETA PROGRAMABLE - cenidet.edu.mx Joaquin Rivero... · componente como tarjetas de adquisición de datos o controladores lógicos programables (PLCs). En este trabajo se

Diseño y construcción de una tarjeta programable Anexos de adquisición, procesamiento de datos y control

105

PORTD = ~PORTB; // PORTD = complemento a 1 de PORTB Programa 1.B – Entradas/salidas digitales #include <p18f452.h> #pragma config OSC = HS #pragma config BOR = OFF #pragma config WDT = OFF #pragma config LVP = OFF void main (void) PORTB = 0;LATB = 0; TRISB = 0x00; // PORTB salida PORTD = 0;LATD = 0; INTCON2 = 0x80; TRISD = 0xFF; // PORTD entrada while (1) PORTB = ~PORTD; // PORTB = complemento a 1 de PORTD

Page 118: TESIS TARJETA PROGRAMABLE - cenidet.edu.mx Joaquin Rivero... · componente como tarjetas de adquisición de datos o controladores lógicos programables (PLCs). En este trabajo se

Diseño y construcción de una tarjeta programable Anexos de adquisición, procesamiento de datos y control

106

Programa 2 – Entradas analógicas #include <p18f452.h> #include <delays.h> #include <adc.h> void main (void) INTCON = 0; // Deshabilita las interrupciones PORTA = 0;LATA = 0; TRISA = 0xEF; // RA4 SALIDA PORTB = 0;LATB = 0; INTCON2 = 0x80; TRISB = 0; // PORTB SALIDA OpenADC(ADC_FOSC_RC & ADC_LEFT_JUST & ADC_5ANA_0REF,ADC_CH0 & ADC_INT_OFF); while (1) // Ciclo infinito Delay10TCYx(1); // Retardo de 3.2 us para 12 MHz ConvertADC(); // Inicia la conversión while (BusyADC()); // Espera a que la conversión finalice PIR1bits.ADIF = 0; //Limpia la bandera de interrupción del conversor AD PORTB = ADRESH; // Copia los 8 bits mas significativos al PORTB Programa 3 – Potencia para motores #include <p18f452.h> void main (void) PORTA = 0; LATA = 0; TRISA = 0x00; // PORTA salida PORTB = 0; LATB = 0; TRISB = 0x00; // PORTB salida PORTC = 0; LATC = 0; TRISC = 0x00; // PORTC salida PORTD = 0; LATD = 0; TRISD = 0xFF; // PORTD entrada while (1) PORTCbits.RC2 = PORTDbits.RD0; PORTBbits.RB6 = PORTDbits.RD1; PORTBbits.RB7 = PORTDbits.RD2; PORTAbits.RA4 = PORTDbits.RD3; PORTCbits.RC1 = PORTDbits.RD4; PORTCbits.RC0 = PORTDbits.RD5; PORTBbits.RB0 = PORTDbits.RD6; PORTCbits.RC5 = PORTDbits.RD7;

Page 119: TESIS TARJETA PROGRAMABLE - cenidet.edu.mx Joaquin Rivero... · componente como tarjetas de adquisición de datos o controladores lógicos programables (PLCs). En este trabajo se

Diseño y construcción de una tarjeta programable Anexos de adquisición, procesamiento de datos y control

107

Programa 4 – Pantalla de cristal líquido (LCD) #include <p18f452.h> #include <delays.h> #define RS PORTEbits.RE0 #define RW PORTEbits.RE1 #define EN PORTEbits.RE2 unsigned char mensaje[]='c','e','n','i','d','e','t',mensaje2[]='m','e','c','a','t','r','o','n','i','c','a'; unsigned int i=0; /* Conexiones del LCD PORTB - DATOS RE0 - RS RE1 - RW RE2 - ENA - DelayFor18TCY() provides a 18 Tcy delay - DelayPORXLCD() provides at least 15ms delay - DelayXLCD() provides at least 5ms delay */ void main(void) ADCON1=0x02; TRISB=0x00; TRISE=0x00; // Configura el LCD externo RW=0; RS=0; EN=1; //Transmisión 8 bits, una línea, 5x8 puntos PORTB=0x38; Delay1KTCYx(3); EN=0; Delay1KTCYx(3); RS=0; EN=1; //Mensaje fijo PORTB=0x06; Delay1KTCYx(3); EN=0; Delay1KTCYx(3); RS=0; EN=1; //Enciende display PORTB=0x0C; Delay1KTCYx(3); EN=0; Delay1KTCYx(3); RS=1; for(i=0;i<7;i++)

Page 120: TESIS TARJETA PROGRAMABLE - cenidet.edu.mx Joaquin Rivero... · componente como tarjetas de adquisición de datos o controladores lógicos programables (PLCs). En este trabajo se

Diseño y construcción de una tarjeta programable Anexos de adquisición, procesamiento de datos y control

108

EN=1; PORTB=mensaje[i]; Delay1KTCYx(3); EN=0; Delay1KTCYx(3); RS=0;Delay10TCYx(1);EN=1; //Cambia de renglón PORTB=0xC0; Delay10TCYx(3); EN=0; Delay10TCYx(3); RS=1; for(i=0;i<11;i++) EN=1; PORTB=mensaje2[i]; Delay1KTCYx(3); EN=0; Delay1KTCYx(3); while(1); Programa 5 – Comunicación 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); //Envía el valor de PORTD

Page 121: TESIS TARJETA PROGRAMABLE - cenidet.edu.mx Joaquin Rivero... · componente como tarjetas de adquisición de datos o controladores lógicos programables (PLCs). En este trabajo se

Diseño y construcción de una tarjeta programable Anexos de adquisición, procesamiento de datos y control

109

if(TXSTAbits.TRMT == 1) break; CloseUSART(); Programa 6.A – Comunicación 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 – Comunicación 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

Page 122: TESIS TARJETA PROGRAMABLE - cenidet.edu.mx Joaquin Rivero... · componente como tarjetas de adquisición de datos o controladores lógicos programables (PLCs). En este trabajo se

Diseño y construcción de una tarjeta programable Anexos de adquisición, procesamiento de datos y control

110

void main(void) unsigned char buffer[4]; OpenI2C(MASTER, SLEW_OFF);// Inicializa el modulo I2C SSPADD = 29; // 400kHz Baud clock(6.5) @12MHz // 100kHz Baud clock(29) @12MHz SSPCON2=0x00; TRISC=0x18; PORTD=0;LATD=0;TRISD=0; SSPCON2bits.SEN = 1; // Envía bit de inicio while(SSPCON2bits.SEN); // y lo espera para limpiar SSPCON2bits.ACKDT = 0; // el bit de ACK PIR1bits.SSPIF = 0; SSPBUF = 0xA0; // 10100000 - Comando de escritura while(!PIR1bits.SSPIF); // espera la interrupción PIR1bits.SSPIF = 0; // entonces limpia la bandera. SSPBUF = 0x00; // Se envía el byte alto while(!PIR1bits.SSPIF); // de la dirección 0x0000 PIR1bits.SSPIF = 0; // SSPBUF = 0x00; // Se envía el byte bajo while(!PIR1bits.SSPIF); // de la dirección 0x0000 PIR1bits.SSPIF = 0; // SSPCON2bits.RSEN = 1; // envía el bit de inicio repetido while(SSPCON2bits.RSEN); // y espera por el para limpiar PIR1bits.SSPIF = 0; SSPBUF = 0xA1; // 10100001 - comando de lectura while(!PIR1bits.SSPIF); // espera por la interrupción PIR1bits.SSPIF = 0; // entonces limpia la bandera. SSPCON2bits.RCEN = 1; // empieza a recibir while(!SSPSTATbits.BF); // espera por el dato buffer[0] = SSPBUF; // y lo obtiene SSPCON2bits.ACKEN = 1; // empieza la secuencia de ACK while(SSPCON2bits.ACKEN); // espera a que la secuencia ACK termine SSPCON2bits.RCEN = 1; // Empieza a recibir while(!SSPSTATbits.BF); // espera por el dato buffer[1] = SSPBUF; // y lo obtiene SSPCON2bits.ACKEN = 1; // empieza la secuencia de ACK

Page 123: TESIS TARJETA PROGRAMABLE - cenidet.edu.mx Joaquin Rivero... · componente como tarjetas de adquisición de datos o controladores lógicos programables (PLCs). En este trabajo se

Diseño y construcción de una tarjeta programable Anexos de adquisición, procesamiento de datos y control

111

while(SSPCON2bits.ACKEN); // espera a que la secuencia ACK termine SSPCON2bits.RCEN = 1; // Empieza a recibir while(!SSPSTATbits.BF); // espera por el dato buffer[2] = SSPBUF; // y lo obtiene SSPCON2bits.ACKEN = 1; // empieza la secuencia de ACK while(SSPCON2bits.ACKEN); // espera a que la secuencia ACK termine SSPCON2bits.RCEN = 1; // Empieza a recibir while(!SSPSTATbits.BF); // espera por el dato buffer[3] = SSPBUF; // y lo obtiene SSPCON2bits.ACKDT = 1; // sin reconocimiento para el ultimo byte SSPCON2bits.ACKEN = 1; // inicia secuencia ACK while(SSPCON2bits.ACKEN); // espera a que la secuencia ACK termine SSPCON2bits.PEN = 1; // envía bit de paro PORTD=buffer[0]; while(1); Programa 7.A – Entrada de 4-20 mA // Leer la entrada de 4-20 mA y mostrarla en puerto B #include <p18f452.h> #include <timers.h> #pragma config OSC = HS #pragma config BOR = OFF #pragma config WDT = OFF #pragma config LVP = OFF void main (void) PORTC=0;LATC=0;TRISC=0x00; // PORTC salida PORTD=0;LATD=0;TRISD=0x00; // PORTD salida PORTB=0;LATB=0;TRISB=0x00; // PORTB salida INTCON=0; // Deshabilita las interrupciones PORTA=0;LATA=0;TRISA=0xEF; // RA4 SALIDA INTCON2=0x80; OpenADC(ADC_FOSC_RC & ADC_LEFT_JUST & ADC_5ANA_0REF,ADC_CH4 & ADC_INT_OFF); while(1) ConvertADC(); // Inicia la conversión

Page 124: TESIS TARJETA PROGRAMABLE - cenidet.edu.mx Joaquin Rivero... · componente como tarjetas de adquisición de datos o controladores lógicos programables (PLCs). En este trabajo se

Diseño y construcción de una tarjeta programable Anexos de adquisición, procesamiento de datos y control

112

while (BusyADC()); // Espera a que la conversión finalice PIR1bits.ADIF = 0; // Limpia la bandera de interrupción del ADC PORTB = ADRESH; // Copia los 8 bits mas significativos al puerto B Programa 7.B – Salida de 4-20 mA // Prueba 01 - Salida DAC 0 y 5 Volts cada 10 seg #include <p18f452.h> #include <timers.h> #include <delays.h> #pragma config OSC = HS #pragma config BOR = OFF #pragma config WDT = OFF #pragma config LVP = OFF void off (void) PORTD=0x00; void on (void) PORTD=0xFF; void main (void) PORTD = 0;LATD = 0; INTCON2 = 0x80; TRISD = 0x00; // PORTD salida while (1) on(); Delay10KTCYx(0);Delay10KTCYx(0);Delay10KTCYx(0);

Delay10KTCYx(0);Delay10KTCYx(0);Delay10KTCYx(0); Delay10KTCYx(0);Delay10KTCYx(0);Delay10KTCYx(0); Delay10KTCYx(0);Delay10KTCYx(0);Delay10KTCYx(0);

off(); Delay10KTCYx(0);Delay10KTCYx(0);Delay10KTCYx(0);

Delay10KTCYx(0);Delay10KTCYx(0);Delay10KTCYx(0); Delay10KTCYx(0);Delay10KTCYx(0);Delay10KTCYx(0); Delay10KTCYx(0);Delay10KTCYx(0);Delay10KTCYx(0);

Page 125: TESIS TARJETA PROGRAMABLE - cenidet.edu.mx Joaquin Rivero... · componente como tarjetas de adquisición de datos o controladores lógicos programables (PLCs). En este trabajo se

Diseño y construcción de una tarjeta programable Anexos de adquisición, procesamiento de datos y control

113

Anexo D. Documentación de los programas de control de las plantas Anexo D.1. Diagrama de flujo del programa de control del robot móvil seguidor de línea

Page 126: TESIS TARJETA PROGRAMABLE - cenidet.edu.mx Joaquin Rivero... · componente como tarjetas de adquisición de datos o controladores lógicos programables (PLCs). En este trabajo se

Diseño y construcción de una tarjeta programable Anexos de adquisición, procesamiento de datos y control

114

Anexo D.2. Documentación del programa de control del robot móvil seguidor de línea // Programa de control del seguidor de línea // Conexión de los sensores a la tarjeta programable // RD1 - Sensor izquierdo // RD0 - Sensor derecho // Conexión de los motores a la tarjeta programable // RC2 - Avance Motor izquierdo // RB6 - Retroceso Motor izquierdo // RB7 - Avance Motor derecho // RA4 - Retroceso Motor derecho // #include <p18f452.h> // Se incluye librería del microcontrolador PIC18F452 #pragma config OSC = HS // Se selecciona modo de oscilador de alta velocidad. #pragma config BOR = OFF // Deshabilita el reinicio por bajo voltaje #pragma config WDT = OFF // Deshabilita el perro guardián #pragma config LVP = OFF // Deshabilita la programación en bajo voltaje void girder(void) // Subrutina para que el robot móvil gire hacia la derecha PORTCbits.RC2=1; // El motor izquierdo gira PORTBbits.RB6=0; // hacia delante y PORTBbits.RB7=0; // el motor derecho gira PORTAbits.RA4=1; // hacia atrás void girizq(void) // Subrutina para que el robot móvil gire hacia la izquierda PORTCbits.RC2=0; // El motor izquierdo gira PORTBbits.RB6=1; // hacia atrás y PORTBbits.RB7=1; // el motor derecho gira PORTAbits.RA4=0; // hacia delante void adelante(void) // Subrutina para que el robot móvil avance PORTCbits.RC2=1; // PORTBbits.RB6=0; // Ambos motores PORTBbits.RB7=1; // giran hacia delante PORTAbits.RA4=0; // void apagado(void) // Subrutina de apagado de motores PORTCbits.RC2=0; // Desactiva los PORTBbits.RB6=0; // motores PORTBbits.RB7=0; // izquierdo y PORTAbits.RA4=0; // derecho void main (void) // Inicio de programa principal PORTA = 0;LATA = 0; // Asigna un valor inicial de 0 al puerto A ADCON1 = 0x02; // El puerto A actúa con 5 entradas analógicas y 3 E/S digitales TRISA = 0x00; // Configura puerto A como salidas digitales PORTB = 0;LATB = 0; // Asigna un valor inicial de 0 al puerto B INTCON2 = 0x80; // Deshabilita las interrupciones

Page 127: TESIS TARJETA PROGRAMABLE - cenidet.edu.mx Joaquin Rivero... · componente como tarjetas de adquisición de datos o controladores lógicos programables (PLCs). En este trabajo se

Diseño y construcción de una tarjeta programable Anexos de adquisición, procesamiento de datos y control

115

TRISB = 0x00; // Configura puerto B como salidas digitales PORTC = 0;LATC = 0; // Asigna un valor inicial de 0 al puerto C TRISC = 0; // Configura puerto C como salidas digitales PORTD = 0; LATD = 0; // Asigna un valor inicial de 0 al puerto D TRISD = 0xFF; // Configura el puerto D como entradas digitales PORTE = 0; LATE = 0; // Asigna un valor inicial de 0 al puerto E TRISE = 0x00; // Configura el puerto E como salidas digitales while (1) // Empieza un ciclo infinito donde esta el control del robot móvil switch(PORTD) // Se lee el Puerto D donde están conectados los sensores // y según el valor de éste, se toma una decisión case 0x00: // Los sensores están sobre la línea negra, por lo que adelante(); // la acción a tomar es que el robot avance break; // Sale de la sentencia SWITCH case 0x01: // El sensor derecho detecta una área blanca, girizq(); // entonces el carro gira hacia la izquierda break; // Sale de la sentencia SWITCH case 0x02: // El sensor izquierdo detecta una área blanca, girder(); // entonces el carro gira hacia la derecha break; // Sale de la sentencia SWITCH case 0x03: // Ambos sensores detectan una área blanca, apagado(); // entonces el robot móvil se detiene break; // Sale de la sentencia SWITCH // Fin del programa

Page 128: TESIS TARJETA PROGRAMABLE - cenidet.edu.mx Joaquin Rivero... · componente como tarjetas de adquisición de datos o controladores lógicos programables (PLCs). En este trabajo se

Diseño y construcción de una tarjeta programable Anexos de adquisición, procesamiento de datos y control

116

izq

D1=

home3

refsube

flgd,2=0

D3=0

B5=1

iz

D1=

home3

izq2

D1=1

home2

Horz=1

Sube

B5=1

izq2

frenovert

Portb,4=0

flgB,4=1 flgB,4=0

Portb,5=0

flgB,5=1 flgB,5=0

Portb,6=0

flgB,6=1 flgB,6=0

Portb,7=0

flgB,7=1 flgB,7=0

home2

home3

Intcon=b’10001000’ home

Flgb=0

flga=0

Flgc=0

Portd=0

arranqe

1

Porta,5=1

arranqe

Flgd=0

Inicio

Portd=0

tmr0=0

tmr0=0

tmr0=0

busqueda

obj=0

siguelo

trampI=0

subelo

trampD=0

bajalo

busqueda

Flg lim=0

home

Intcon

subelo

D2=

busqueda

flg subelo=0

busqueda

Flg subelo=1 Flg bajalo=0

Freno horz

Portd=0

Intcon=b’10001000’

bajalo

D3=1

busqueda

flg bajalo=0

busqueda

Flg subelo=0 Flg bajalo=1

Freno horz

Portd=0

b’10001000’

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

3 seg

Portd=0

busqueda

Intcon=b’10101000’

D0=1

Flgd,1=1

Ciclos busq=8

Pasos=4

opcion=b’10100001’

Tmr0=200

1

reposo

Intcon=0

Portd=0

sleep

fin

baja

B7=0

D3=1

refsube

B5=1

izq

flgd,2=1

D1=0

home3

D2=0

flg ciclsbusq=0

Page 129: TESIS TARJETA PROGRAMABLE - cenidet.edu.mx Joaquin Rivero... · componente como tarjetas de adquisición de datos o controladores lógicos programables (PLCs). En este trabajo se

Diseño y construcción de una tarjeta programable Anexos de adquisición, procesamiento de datos y control

117

Flg_obj_perd=1

siguelo

Obj=1

chkcenti

ssiguelo

ssiguelo

Flg_obj_perd=0

ssiguelo

Flg_obj_perd=0

Frenovert/horz

Flga=0

Flgc=0

Flgsiguelo=1

Flgc,2=1

Intcon=b’10001000’

Frenovert/horz

CHK13DI

flg limite=0

home

Cent1=0

Chkcent4/trpD

chkcenti

Flg_obj_perd=1

flg2DB=0

2

B4=0

chk24DI

B5=0

Flgsub=0

cent3=0

Chkcent2/trpI

trampI=0

Chkcent3/4

Cent4=0

Chkcent1/trpI

ssiguelo

flg2DS=0

Flg2IS=0

trpD=0

Chkcent1/2

Cent2=0

Chkcent3/trpD

Flg2IB=0

2

Flgbaj=0

Intcon=b’

chk24DI

Cent2=0

Chkcent3/trpD

Cent4=0

chktrpI/4

trpD=0

baj

trpI=0

sub

ssiguelo

Flg2IB=0

Flg2IS=0

chk13DI

Cent1=0

Chkcent4/trpD

Cent3=0

chktrpI/3

trpD=0

baja

trpI=0

sube

ssiguelo

Flg2DB=0

Flg2DS=0

Chkcent3/4

Cent3=0

cent4=0

dersub

izqsub

FlgDS=0

FlgIS=0sub

Flgsub=0

ssiguelo

Portd=0

Flga=0

Flgc=0

Flgsiguelo=1

Flgsub=1

D2=1

ssiguelo

Intcon=b’10001000’

chktrpI/4

trpI=0

izqsub

2izqsub

chktrpI/3

trpI=0

dersub

2dersub

Page 130: TESIS TARJETA PROGRAMABLE - cenidet.edu.mx Joaquin Rivero... · componente como tarjetas de adquisición de datos o controladores lógicos programables (PLCs). En este trabajo se

Diseño y construcción de una tarjeta programable Anexos de adquisición, procesamiento de datos y control

118

Chkcent1/2

Cent1=0

cent2=0

Derbaj

izqbaj

FlgDB=0

FlgIB=0 baj

Flgbaj=0

ssiguelo

Portd=0

Flga=0

Flgc=0

Flgsiguelo=1

Flgbaj=1

D3=1

ssiguelo

Intcon=‘b10001000’

Chkcent4/trpD

Cent4=0

trpD=0

“2derbaj”

3derbaj

Derbaj

Flg3DB=0

FlgDB=0

deron=100

der off=10

Flg 2DB=0

ssiguelo

ssiguelo

Opción=b’10000111’

Intcon=b’10101000’

Flg 2DB=1

D0=1

D3=1

Flg velizq=0

Tmr0=100

portd=0

Flga=0

B4=0

sigue2DB

Flgc=0

Flgc,2=1

Chkcent3/trpD

Cent3=0

trpD=0

“2izqbaj”

3izqbaj

izqbaj

Flg3IB=0

FlgIB=0

izqon=100

Izq off=10

Flg 2IB=0

ssiguelo

ssiguelo

Opción=b’10000111’

Intcon=b’10101000’

Flg 2IB=1

D1=1

D3=1

Flg velizq=1

Tmr0=100

portd=0

Flga=0

B5=0

sigue2IB

Flgc=0

Flgc,2=1

Chkcent2/trpI

Cent2=0

trpI=0

“2dersub”

3izqbaj

dersub

Flg3IB=0

FlgDS=0

deron=100

deroff=10

Flg 2DS=0

ssiguelo

ssiguelo

Opción=b’10000111’

Intcon=b’10101000’

Flg 2DS=1

D0=1

D2=1

Flg velizq=0

Tmr0=100

portd=0

Flga=0

B4=0

sigue2DS

Flgc=0

2dersub

Flgc,2=1

Chkcent1/trpI

Cent1=0

trpI=0

“2izqsub”

3derbaj

izqsub

Flg3DB=0

FlgIS=0

izqon=100

Izq off=10

Flg 2IS=0

ssiguelo

ssiguelo

Opción=b’10000111’

Intcon=b’10101000’

Flg 2IS=1

D1=1

D2=1

Flg velizq=1

Tmr0=100

portd=0

Flga=0

B5=0

sigue2IS

Flgc=0

2izqsub

Flgc,2=1

sigue2IS

Flg 2IS=0

Intcon=b’10001000’

ssiguelo

sigue2DS

Flg 2DS=0

Intcon=b’10001000’

ssiguelo

sigue2DB

Flg 2DB=0

Intcon=b’10001000’

ssiguelo

sigue2IB

Flg 2IB=0

Intcon=b’10001000’

ssiguelo

Page 131: TESIS TARJETA PROGRAMABLE - cenidet.edu.mx Joaquin Rivero... · componente como tarjetas de adquisición de datos o controladores lógicos programables (PLCs). En este trabajo se

Diseño y construcción de una tarjeta programable Anexos de adquisición, procesamiento de datos y control

119

izqbaja

izqon=100

Izqoff=3

Flg IB=0

ssiguelo

ssiguelo

Opción=b’10000111’

Intcon=b’10101000’

Flg IB=1

D1=1

D3=1

Flg velizq=1

Tmr0=100

portd=0

B5=0

sigueIB

Flga=0

Flgc=

Flgc,2=1

izqsube

izqon=100

Izqoff=3

Flg IS=0

ssiguelo

ssiguelo

Opción=b’10000111’

Intcon=b’10101000’

Flg IS=1

D1=1

D2=1

Flg velizq=1

Tmr0=100

portd=0

B5=0

sigueIS

Flga=0

Flgc=0

Flgc,2=1

dersube

deron=100

deroff=3

Flg DS=0

ssiguelo

ssiguelo

Opción=b’10000111’

Intcon=b’10101000’

Flg DS=1

D0=1

D2=1

Flg velizq=0

Tmr0=100

portd=0

B4=0

sigueDS

Flga=0

Flgc=0

Flgc,2=1

derbaja

deron=100

deroff=3

Flg DB=0

ssiguelo

ssiguelo

Opción=b’10000111’

Intcon=b’10101000’

Flg DB=1

D0=1

D3=1

Flg velizq=0

Tmr0=100

portd=0

B4=0

sigueDB

Flga=0

Flgc=0

Flgc,2=1

3derbaja

deron=100

deroff=20

Flg 3DB=0

ssiguelo

ssiguelo

Opción=b’10000111’

Intcon=b’10101000’

Flg 3DB=1

D0=1

D3=1

Flg velizq=0

Tmr0=100

portd=0

B4=0

sigue3DB

Flga=0

Flgc=0

Flgc,2=1

3izqbaja

izqon=100

Izqoff=20

Flg 3IB=0

ssiguelo

ssiguelo

Opción=b’10000111’

Intcon=b’10101000’

Flg 3IB=1

D1=1

D3=1

Flg velizq=1

Tmr0=100

portd=0

Flga=0

Flgc=0

Flgc,2=1

B5=0

sigue3IB

sigue3IBFlg 3IB=0

Intcon=b’10001000’

ssiguelo

sigueIB Flg IB=0

Intcon=b’10001000’

ssiguelo

sigueIS Flg IS=0

Intcon=b’10001000’

ssiguelo

sigueDSFlg DS=0

Intcon=b’10001000’

ssiguelo

sigueDBFlg DB=0

Intcon=b’10001000’

ssiguelo

sigue3DB Flg 3DB=0

Intcon=b’10001000’

ssiguelo

Page 132: TESIS TARJETA PROGRAMABLE - cenidet.edu.mx Joaquin Rivero... · componente como tarjetas de adquisición de datos o controladores lógicos programables (PLCs). En este trabajo se

Diseño y construcción de una tarjeta programable Anexos de adquisición, procesamiento de datos y control

120

interrupcio

B4=0

Chk flg B4

Flg B4=0

offlagb4

B5=0

Chk flg B5

Flg B5=0

offlagb5

B6=0

Chk flg B6

Flg B6=0

offlagb6

B7=0

Chk flg B7

Flg B7=0

offlagb7

Intcon,0=0

retfie

conti1

conti2

conti3

Flgsigelo=1

norebot

Intcon,2=0

chkgiro

Intcon,2=0

On der

D0=1

Flg on/off=0

Intcon,2=0

Tmr0=deron

retfie On izq

D1=1

Flg on/off=0

Intcon,2=0

Tmr0=izqon

retfie

chkgiro

Flg B4=1

derecha

frenovert

D1=1

retfie

Intcon,2=0

flgsiguelo=0

velgirohorz

Tmr0=200

Chk flg B4

Flg B4=0

conti1

Intcon,0=0

ciclsbusq-=0

Conti_D

Flg ciclosbusq=1

retfie

Flg B4=1

Flgsiguelo=0

para

frenoh

Chk flg B5

Flg B5=0

conti2

Intcon,0=0

ciclsbusq-=0

Conti_I

Flg ciclosbusq=1

retfie

Flg B5=1

Flgsiguelo=0

Flgposini=1

retfie

para

frenoh

retfie

para

Intcon=b’10001000’

velgirohorz

Flg velizq=0

velizq

Flg on/off=0

On der

D0=0

Flg on/off=1

Intcon,2=0

Tmr0=deroff

retfie

velizq

Flg on/off=0

On izq

D1=0

Flg on/off=1

Intcon,2=0

Tmr0=izqoff

retfie

Flg B0=0

decr

Pasos-=0

subir

Flg B0=1

D2=1

Pasos=4

retfie

Conti_I

bajar

D3=1

retfie

decr

Pasos-=0

bajar

Flg B0=0

Pasos=4

retfie

D3=1

subirD2=1

retfie

Flg B0=0

decr

Pasos-=0

subir

Flg B0=1

D2=1

Pasos=4

retfie

Conti_D

derecha

D0=1

retfie

Page 133: TESIS TARJETA PROGRAMABLE - cenidet.edu.mx Joaquin Rivero... · componente como tarjetas de adquisición de datos o controladores lógicos programables (PLCs). En este trabajo se

Diseño y construcción de una tarjeta programable Anexos de adquisición, procesamiento de datos y control

121

offlagb4

Flg B4=0

Intcon,0=0

retfie

offlagb5

Flg B5=0

Intcon,0=0

retfie

refres

Intcon,0=0

retfie

posinib Portd,2=0

Portd,3=1

retfie

posinisPortd,3=0

Portd,2=1

retfie

Chk flg B6

Flg limite=1

Flg B6=0

conti3

retfie

Flgposini=1

portd=0

Intcon,0=0

Flg B6=1

retfie

Tmr0=

Intcon,2=0

Intcon=b’10001000’

Chk flg B7

Flg limite=1

Flg B7=0

refres

retfie

Flgposini=1

portd=0

Intcon,0=0

Flg B7=1

retfie

Tmr0=

Intcon,2=0

Intcon=b’10001000’

offlagb6

Flg B6=0

Intcon,0=0

retfie

Intcon,2=0

Tmr0=

offlagb7

Flg B7=0

Intcon,0=0

retfie

Intcon,2=0

Tmr0=

Page 134: TESIS TARJETA PROGRAMABLE - cenidet.edu.mx Joaquin Rivero... · componente como tarjetas de adquisición de datos o controladores lógicos programables (PLCs). En este trabajo se

Diseño y construcción de una tarjeta programable Anexos de adquisición, procesamiento de datos y control

122

frenovert Cont1=2

Cont2-=0

c11

c9

return

portd=0

Cont2=100

nop

nop

nop

Cont3=80

portD=b’00100’

Cont3-=0

portD=b’01000’

c9

Cont3=80

Cont3-=0

c10

c10

c11

Cont1-=0

c12

c12

frenohorz

Cont1=20

Cont2-=0

c7

c5

return

portd=0

Cont2=100

nop

nop

nop

Cont3=80

portD=b’00001’

Cont3-=0

portD=b’00010’

c5

Cont3=80

Cont3-=0

c6

c6

c7

Cont1-=0

c8

c8

Frenohorz/vert

Cont1=2

Cont2-=0

c3

c1

return

portd=0

Cont2=100

nop

nop

nop

Cont3=80

portD=b’00101’

Cont3-=0

portD=b’01010’

c1

Cont3=80

Cont3-=0

c2

c2

c3

Cont1-=0

c4

c4

Tresseg

Conta1=1

Conta2=250

Conta2-=0

Conta1-=0

Retlw 0

Conta3-=0

Conta3=250

c15

c15

c14

c14

c13

c13

norebot

Conta1=2

Conta2=100

Conta2-=0

Conta1-=0

Retlw 0

Conta3-=0

Conta3=100

c25

c25

c24

c24

c23

c23

Page 135: TESIS TARJETA PROGRAMABLE - cenidet.edu.mx Joaquin Rivero... · componente como tarjetas de adquisición de datos o controladores lógicos programables (PLCs). En este trabajo se

Diseño y construcción de una tarjeta programable Anexos de adquisición, procesamiento de datos y control

123

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

flg

a

0

1

2 3 4 5 6

7

flgb

0 1 2 3 4 5 6 7

flgc

0 1 2 3 4 5 6 7

flgd

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 LÍMITE. Bandera que indica: que en la etapa de seguimiento se ha llegado a algún límite 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 número de barridos de búsqueda FLG DERECHA. Bandera a la que se le asigna el estado del interruptor de límite derecho FLG IZQUIERDA. Bandera a la que se le asigna el estado del interruptor de límite izquierdo FLG ARRIBA. Bandera a la que se le asigna el estado del interruptor de límite superior FLG ABAJO. Bandera a la que se le asigna el estado del interruptor de límite inferior

FLG 2DB Bandera que indica: La placa colectora se mueve con velocidad a la derecha dos veces mayor a la velocidad con que baja FLG 2IB Bandera que indica: La placa colectora se mueve con velocidad a la izquierda dos veces mayor a la velocidad con que baja FLG 2DS Bandera que indica: La placa colectora se mueve con velocidad a la derecha dos veces mayor a la velocidad con que sube FLG 2IS Bandera que indica: La placa colectora se mueve con velocidad a la izquierda dos veces mayor a la velocidad con que sube FLG DB Bandera que indica: La placa colectora se mueve con velocidad a la derecha igual a la velocidad con que baja FLG IB Bandera que indica: La placa colectora se mueve con velocidad a la izquierda igual a la velocidad con que baja FLG 3DB Bandera que indica: La placa colectora se mueve con velocidad a la derecha tres veces mayor a la velocidad con que baja FLG 3IB Bandera que indica: La placa colectora se mueve con velocidad a la izquierda tres veces mayor a la velocidad con que baja

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

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

Page 136: TESIS TARJETA PROGRAMABLE - cenidet.edu.mx Joaquin Rivero... · componente como tarjetas de adquisición de datos o controladores lógicos programables (PLCs). En este trabajo se

Diseño y construcción de una tarjeta programable Anexos de adquisición, procesamiento de datos y control

124

PO

RT

A

0 1 2 3 4 5 6 7

POR

T B

0 1 2 3 4 5 6 7

POR

T D

0 1 2 3 4 5 6 7

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

Entrada de señal proveniente del sensor principal Entrada de señal proveniente del grupo izquierdo de sensores Entrada de señal proveniente del grupo derecho de sensores Entrada de señal proveniente del interruptor de límite central Entrada de señal proveniente del interruptor de límite derecho Entrada de señal proveniente del interruptor de límite izquierdo Entrada de señal proveniente del interruptor de límite arriba Entrada de señal proveniente del interruptor de límite abajo

Salida a motor: giro a la derecha Salida a motor: giro a la izquierda Salida a motor: giro arriba Salida a motor: giro abajo No empleada No empleada No empleada No empleada

Page 137: TESIS TARJETA PROGRAMABLE - cenidet.edu.mx Joaquin Rivero... · componente como tarjetas de adquisición de datos o controladores lógicos programables (PLCs). En este trabajo se

Diseño y construcción de una tarjeta programable Anexos de adquisición, procesamiento de datos y control

125

adcon1 equ 9fh intcon equ 0bh opcion equ 81h estado equ 03h tmr0 equ 01h porta equ 05h portb equ 06h portd equ 08h trisa equ 85h trisb equ 86h trisd equ 88h conta1 equ 20h conta2 equ 21h conta3 equ 22h cont1 equ 23h cont2 equ 24h cont3 equ 25h flga equ 26h flgb equ 27h flgc equ 28h flgd equ 29h deron equ 2ah deroff equ 2bh izqon equ 2ch izqoff equ 2dh pasos equ 2eh cbusq equ 2fh org 00h ; Posición a la que apunta el contador de programa al iniciar la operación del microcontrolador goto inicio ; salto a la etiqueta “inicio” ;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ;Atención de interrupción Debido a que el accionamiento (apertura o cierre) de los interruptores de límite produce una ;interrupción 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 interrupción (si ocurre alguna interrupción el programa salta a esta línea) btfss flgc,2 ; Checa si el programa esta en la etapa de seguimiento, si los esta brinca la próxima instrucción call norebot ; Llamada a rutina que elimina los efectos de rebotes mecánicos de interruptores de límite btfsc portb,4 ; Checa interruptor de límite derecho. Si no esta activado se produce salto de instrucción goto chflgb4 ; Salto a la etiqueta “chflgb4” btfsc flgb,4 ; Checa bandera de interruptor de límite derecho. Si no esta activado se produce salto de instrucción goto offlgb4 ; Salto a la etiqueta “offlgb4” conti1 btfsc portb,5 ; Checa interruptor de límite izquierdo. Si no esta activado se produce salto de instrucción goto chflgb5 ; Salto a la etiqueta “chflgb5” btfsc flgb,5 ; Checa bandera de interruptor de límite izquierdo. Si no esta activado se produce salto de instrucción goto offlgb5 ; Salto a la etiqueta “offlgb5” conti2 btfsc portb,6 ; Checa interruptor de límite superior. Si no esta activado se produce salto de instrucción goto chflgb6 ; Salto a la etiqueta “chflgb6” btfsc flgb,6 ; Checa bandera de interruptor de límite superior. Si no esta activado se produce salto de instrucción goto offlgb6 ; Salto a la etiqueta “offlgb6” conti3 btfsc portb,7 ; Checa interruptor de límite inferior. Si no esta activado se produce salto de instrucción goto chflgb7 ; Salto a la etiqueta “chflgb7” btfsc flgb,7 ; Checa bandera de interruptor de límite inferior. Si no esta activado se produce salto de instrucción goto offlgb7 ; Salto a la etiqueta “offlgb7” btfsc intcon,2 ; Checa bandera de interrupción por desbordamiento de registro tmr0 goto chkgiro ; Salto a la etiqueta “chkgiro” bcf intcon,0 ; Limpia bandera de interrupción por cambio de estado en el puerto B bcf intcon,2 ; Limpia bandera de interrupción por desbordamiento del registro tmr0

Mnemónicos de las direcciones en la memoria de datos empleadas en el programa

Page 138: TESIS TARJETA PROGRAMABLE - cenidet.edu.mx Joaquin Rivero... · componente como tarjetas de adquisición de datos o controladores lógicos programables (PLCs). En este trabajo se

Diseño y construcción de una tarjeta programable Anexos de adquisición, procesamiento de datos y control

126

retfie ; Retorno de subrutina al programa principal chkgiro btfsc flgc,2 ; Checa bandera “sigelo”. Si esta desactivada se produce salto de instrucción goto velgirh ; Salto a la etiqueta “velgirh” call frenov ; Llamada a rutina que frena el giro vertical bcf intcon,2 ; Limpia bandera de interrupción por desbordamiento del registro tmr0 movlw .200 ; Se carga el tmr0=200 para que combinado con el divisor de frecuencia 1:4 movwf tmr0 ; y el paso del tornillo sin fin de la planta, produzca un giro vertical de 2.5°

btfss flgb,4 ; Checa bandera de interruptor de limite derecho. Si esta activada se produce salto de instrucción

goto derecha ; Salto a la etiqueta “derecha” bsf portd,1 ; Activa giro a la izquierda retfie ; Retorno de la rutina que atiende la interrupción, al programa principal onder bsf portd,0 ; Activa giro a la derecha bcf flgc,3 ; Limpia bandera “” bcf intcon,2 ; Limpia bandera de interrupción por desbordamiento de tmr0 movf deron,0 ; Se carga el tmr0 con el valor de movwf tmr0 ; la variable “deron” retfie ; Retorno de la rutina que atiende la interrupción, al programa principal onizq bsf portd,1 ; Se active giro a la izquierda bcf flgc,3 ; Limpia bandera “on/off” bcf intcon,2 ; Limpia bandera de interrupción por desbordamiento del registro tmr0 movf izqon,0 ; Se carga el tmr0 con el valor de movwf tmr0 ; la variable “izqon” retfie ; Retorno de la rutina que atiende la interrupción, al programa principal chflgb5 bcf intcon,0 ; Limpia bandera de interrupción por cambio de estado en el puerto B btfsc flgb,5 ; Checa bandera de interruptor de límite izquierdo. Si no esta activado se produce salto de instrucción goto conti2 ; Salto a la etiqueta “conti2” bsf flgb,5 ; Activa bandera “izquierda” btfss flgd,1 ; Checa bandera “pos ini”. Si esta activada se produce salto de instrucción retfie ; Retorno de la rutina que atiende la interrupción, al programa principal call frenoh ; Llamada a rutina que frena el giro horizontal btfsc flgc,2 ; Checa bandera “sigelo”. Si esta desactivada se produce salto de instrucción goto para ; Salto a la etiqueta “para” decfsz cbusq,1 ; Decrementa variable “cbusq”. Si reduce a cero, se produce salto de instrucción goto conti_i ; Salto a la etiqueta “conti_i” bsf flgb,3 ; Activa bandera “ciclos de busq” retfie ; Retorno de la rutina que atiende la interrupción, al programa principal velgirh btfsc flgd,0 ; Checa bandera “vel izq”. Si esta desactivada se produce salto de instrucción goto velizq ; Salto a la etiqueta “velizq” btfsc flgc,3 ; Checa bandera “on/off”. Si esta desactivada se produce salto de instrucción goto onder ; Salto a la etiqueta “onder” bcf portd,0 ; Se desactiva giro a la derecha bsf flgc,3 ; Activa bandera “on/off” bcf intcon,2 ; Limpia bandera de interrupción por desbordamiento del registro tmr0 movf deroff,0 ; Se carga el tmr0 con el valor de movwf tmr0 ; la variable “deroff” retfie ; Retorno de la rutina que atiende la interrupción, al programa principal velizq btfsc flgc,3 ; Checa bandera “on/off”. Si esta desactivada se produce salto de instrucción goto onizq ; Salto a la etiqueta “onizq” bcf portd,1 ; Se desactiva giro a la izquierda bsf flgc,3 ; Activa bandera “on/off” bcf intcon,2 ; Limpia bandera de interrupción por desbordamiento del registro tmr0 movf izqoff,0 ; Se carga el tmr0 con el valor de movwf tmr0 ; la variable “izqoff” retfie ; Retorno de la rutina que atiende la interrupción, al programa principal chflgb4 bcf intcon,0 ; Limpia bandera de interrupción por cambio de estado en el puerto B btfsc flgb,4 ; Checa bandera “derecha”. Si esta desactivada se produce salto de instrucción goto conti1 ; Salto a la etiqueta “conti1” call frenoh ; Llamada a rutina que frena el giro horizontal bsf flgb,4 ; Activa bandera “derecha” btfsc flgc,2 ; Checa bandera “sigelo”. Si esta desactivada se produce salto de instrucción goto para ; Salto a la etiqueta “para” decfsz cbusq,1 ; Decrementa variable “cbusq”. Si reduce a cero, se produce salto de instrucción goto conti_d ; Salto a la etiqueta “conti_d” bsf flgb,3 ; Activa bandera “ciclos de busq” retfie ; Retorno de la rutina que atiende la interrupción, al programa principal para movlw b'1000100’ ; Se activa interrupción por movwf intcon ; cambio de estado del puerto B retfie ; Retorno de la rutina que atiende la interrupción, al programa principal decr decfsz pasos,1 ; Decrementa variable “pasos”. Si reduce a cero, se produce salto de instrucción goto bajar ; Salto a la etiqueta “bajar”

Page 139: TESIS TARJETA PROGRAMABLE - cenidet.edu.mx Joaquin Rivero... · componente como tarjetas de adquisición de datos o controladores lógicos programables (PLCs). En este trabajo se

Diseño y construcción de una tarjeta programable Anexos de adquisición, procesamiento de datos y control

127

bcf flgb,0 ; Limpia bandera “inca/decr altura”

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

Page 140: TESIS TARJETA PROGRAMABLE - cenidet.edu.mx Joaquin Rivero... · componente como tarjetas de adquisición de datos o controladores lógicos programables (PLCs). En este trabajo se

Diseño y construcción de una tarjeta programable Anexos de adquisición, procesamiento de datos y control

128

clrf tmr0 ; Limpia registro tmr0 retfie ; Retorno de la rutina que atiende la interrupción, al programa principal ;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

inicio ;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

; Configuración 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 demás sean entradas movlw 0ffh ; Se configura el puerto B para que todas sus terminales sean movwf trisb ; entradas movlw b'11110000' ; Se configura el puerto D para que sus primeras cuatro terminales movwf trisd ; sean salidas y las restantes sean salidas bcf estado,5 ; se pasa al banco cero ;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ; programa principal ;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ clrf portd ; Se ponen todas las salidas a cero ;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ; ETAPA DE ARRANQUE ;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ arranqe btfss porta,5 ; Checa si se pulsa el botón de arranque, si así es, brinca la siguiente instrucción goto arranqe ; Ir a la etiqueta “arranque” home movlw b'10001000' ; Se activan las interrupciones por cambio de estado de movwf intcon ; las terminales 4,5,6 y 7 del Puerto B clrf tmr0 ; Se limpia el temporizador interno del PIC clrf flag ; Se limpia el registro de banderas flga clrf flgb ; Se limpia el registro de banderas flgb clrf flgc ; Se limpia el registro de banderas flgc clrf flgd ; Se limpia el registro de banderas flgd ;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ; ETAPA DE INICIALIZACIÓN DE BANDERAS DE LOS INTERRUPTORES DE LÍMITE ;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ btfsc portb,4 ; Checa el estado del interruptor de limite derecho, si es 0 brinca una instrucción goto onflgb4 ; Salto a la etiqueta onflgb4 bcf flgb,4 ; Pone acero la bandera del interruptor de limite derecho s1 btfsc portb,5 ; Checa el estado del interruptor de limite izquierdo, si es 0 brinca una instrucción goto onflgb5 ; Salto a la etiqueta onflgb5 bcf flgb,5 ; Pone acero la bandera del interruptor de limite izquierdo s2 btfsc portb,6 ; Checa el estado del interruptor de limite arriba, si es 0 brinca una instrucción goto onflgb6 ; Salto a la etiqueta onflgb6 bcf flgb,6 ; Pone acero la bandera del interruptor de limite arriba bcf flgd,2 ; Pone acero la bandera “subeini” (se emplea para subir o bajar la placa colectora) s3 btfsc portb,7 ; Checa el estado del interruptor de limite abajo, si es 0 brinca una instrucción goto onflgb7 ; Salto a la etiqueta onflgb7 bcf flgb,7 ; Pone acero la bandera del interruptor de limite abajo goto home3 ; Salto a la etiqueta home3 onflgb4 bsf flgb,4 ; Pone a 1 la bandera del interruptor de limite derecho goto s1 ; Salto a la etiqueta s1 onflgb5 bsf flgb,5 ; Pone a 1 la bandera del interruptor de limite izquierdo goto s2 ; Salto a la etiqueta s2 onflgb6 bsf flgb,6 ; Pone a 1 la bandera del interruptor de limite arriba bsf flgd,2 ; Pone a 1 la bandera subeini (se usa para subir o bajar la placa colectora) goto s3 ; Salto a la etiqueta s3 onflgb7 bsf flgb,7 ; Pone a 1 la bandera del interruptor de limite abajo ;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ; ETAPA DE POSICIONAMIENTO INICIAL DE LA PLANTA ;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ home3 clrf tmr0 ; Limpia el registro tmr0 (temporizador) btfss portb,3 ; Checa interruptor de posición horizontal de placa colectora, si esta activado brinca la siguiente instrucción goto sube ; Salto a etiqueta sube

A cada interruptor de límite de sobregiro le corresponde una bandera, la cual se debe ajustar al estado que tenga su correspondiente interruptor. Esto es: Si el interruptor de límite esta cerrado, su bandera se pondrá a 1 Si el interruptor de límite esta abierto, su bandera se pondrá a 0

Page 141: TESIS TARJETA PROGRAMABLE - cenidet.edu.mx Joaquin Rivero... · componente como tarjetas de adquisición de datos o controladores lógicos programables (PLCs). En este trabajo se

Diseño y construcción de una tarjeta programable Anexos de adquisición, procesamiento de datos y control

129

call frenov ; Llamado a rutina que frena el giro vertical de la placa colectora home2 clrf tmr0 ; Limpia el registro tmr0 (temporizador) btfss portb,5 ; Checa interruptor de limite izquierdo, si esta activado brinca la siguiente instrucción goto izq2 ; Salto a etiqueta izq2 clrf portd ; Limpia registro portd bsf flgd,1 ; Activa la bandera “posini” que indica que se a completado el posicionamiento inicial de la planta movlw .8 ; Se cargan 8 recorridos (de limite izquierdo a derecho y viceversa) movwf cbusq ; de búsqueda 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 interrupción por cambio de estado del Puerto B y movwf intcon ; la interrupción 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 búsqueda movwf portd ; con giro hacia la derecha busqeda btfsc flgb,3 ; Checa la bandera “flg_ciclos de búsqueda”, si no esta activa brinca la siguiente instrucción. goto reposo ; Salto a la etiqueta ”reposo” btfsc flgb,1 ; Checa la bandera de limite de giro vertical. Si es cero brinca la siguiente instrucción goto home ; Salto a la etiqueta “home” btfsc portb,0 ; Checa sensor principal. Si es cero brinca la siguiente instrucción goto sigelo ; Salto a la etiqueta “sigelo” btfsc portb,1 ; Checa grupo izquierdo de sensores. Si son cero se brinca la instrucción siguiente goto subelo ; Salto a etiqueta “subelo” btfsc portb,2 ; Checa grupo derecho de sensores. Si son cero se brinca la instrucción 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 instrucción goto busqueda ; Salto a etiqueta “búsqueda” 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 instrucción 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 “búsqueda” 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 próxima instrucción 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 próxima instrucción 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 próxima instrucción goto refsube ; Salto a la etiqueta “refsube”

Page 142: TESIS TARJETA PROGRAMABLE - cenidet.edu.mx Joaquin Rivero... · componente como tarjetas de adquisición de datos o controladores lógicos programables (PLCs). En este trabajo se

Diseño y construcción de una tarjeta programable Anexos de adquisición, procesamiento de datos y control

130

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

Page 143: TESIS TARJETA PROGRAMABLE - cenidet.edu.mx Joaquin Rivero... · componente como tarjetas de adquisición de datos o controladores lógicos programables (PLCs). En este trabajo se

Diseño y construcción de una tarjeta programable Anexos de adquisición, procesamiento de datos y control

131

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

Page 144: TESIS TARJETA PROGRAMABLE - cenidet.edu.mx Joaquin Rivero... · componente como tarjetas de adquisición de datos o controladores lógicos programables (PLCs). En este trabajo se

Diseño y construcción de una tarjeta programable Anexos de adquisición, procesamiento de datos y control

132

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

Page 145: TESIS TARJETA PROGRAMABLE - cenidet.edu.mx Joaquin Rivero... · componente como tarjetas de adquisición de datos o controladores lógicos programables (PLCs). En este trabajo se

Diseño y construcción de una tarjeta programable Anexos de adquisición, procesamiento de datos y control

133

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

Page 146: TESIS TARJETA PROGRAMABLE - cenidet.edu.mx Joaquin Rivero... · componente como tarjetas de adquisición de datos o controladores lógicos programables (PLCs). En este trabajo se

Diseño y construcción de una tarjeta programable Anexos de adquisición, procesamiento de datos y control

134

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

Page 147: TESIS TARJETA PROGRAMABLE - cenidet.edu.mx Joaquin Rivero... · componente como tarjetas de adquisición de datos o controladores lógicos programables (PLCs). En este trabajo se

Diseño y construcción de una tarjeta programable Anexos de adquisición, procesamiento de datos y control

135

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

Page 148: TESIS TARJETA PROGRAMABLE - cenidet.edu.mx Joaquin Rivero... · componente como tarjetas de adquisición de datos o controladores lógicos programables (PLCs). En este trabajo se

Diseño y construcción de una tarjeta programable Anexos de adquisición, procesamiento de datos y control

136

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

Page 149: TESIS TARJETA PROGRAMABLE - cenidet.edu.mx Joaquin Rivero... · componente como tarjetas de adquisición de datos o controladores lógicos programables (PLCs). En este trabajo se

Diseño y construcción de una tarjeta programable Anexos de adquisición, procesamiento de datos y control

137

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

Page 150: TESIS TARJETA PROGRAMABLE - cenidet.edu.mx Joaquin Rivero... · componente como tarjetas de adquisición de datos o controladores lógicos programables (PLCs). En este trabajo se

Diseño y construcción de una tarjeta programable Anexos de adquisición, procesamiento de datos y control

138

goto c23 ; retlw 0 ; Retorno al programa principal reposo clrf portd ; Se desactiva el puerto D clrf intcon ; Se limpia el registro “intcon” (de control de interrupciones) goto arranqe ; Salto a la etiqueta arranque (para poder iniciar nuevamente el arranque de la planta) end ; Fin del programa

Page 151: TESIS TARJETA PROGRAMABLE - cenidet.edu.mx Joaquin Rivero... · componente como tarjetas de adquisición de datos o controladores lógicos programables (PLCs). En este trabajo se

Diseño y construcción de una tarjeta programable Anexos de adquisición, procesamiento de datos y control

139

Anexo D.5. Diagrama de flujo del programa de control de la cámara térmica con control de temperatura

Page 152: TESIS TARJETA PROGRAMABLE - cenidet.edu.mx Joaquin Rivero... · componente como tarjetas de adquisición de datos o controladores lógicos programables (PLCs). En este trabajo se

Diseño y construcción de una tarjeta programable Anexos de adquisición, procesamiento de datos y control

140

Anexo D.6. Documentación del programa de control de la cámara térmica con temperatura controlada //Programa de control de CA del calefactor //Configuración de setpoint, Kp y Ti desde Labview. //Comunicación RS232 con LABVIEW // Conexión de los actuadores a la tarjeta programable // RD0 - Calefactor // RC0 - Inyector // RC1 - Actuador compuerta Inyector // RC2 - Extractor // RC5 - Actuador compuerta Extractor // RA4 - Agitador // // Conexión de los sensores a la tarjeta programable // RA0 - Entrada sensor temperatura // RB0 - Entrada CA // #include <p18f452.h> // Se incluye librería del microcontrolador PIC18F452 #include <delays.h> // Se incluye la librería de las funciones de retardo #include <timers.h> // Se incluye la librería de las funciones de temporizadores #include <stdlib.h> // Se incluye la librería estándar #include <adc.h> // Se incluye la librería del conversor análogo/digital #include <usart.h> // Se incluye la librería del USART #pragma config OSC = HS // Se selecciona modo de oscilador de alta velocidad. #pragma config BOR = OFF // Deshabilita el reinicio por bajo voltaje #pragma config WDT = OFF // Deshabilita el perro guardián #pragma config LVP = OFF // Deshabilita la programación en bajo voltaje int Kp=1,Ti=17,Ts=1,sensor=0, // Define las variables del programa y se les asigna un valor inicial

error=0,entrada=0,setpoint=400, errora=0,contp=0,conti=0,cont=1, limiterrora=50,pwm=0,sp=0;

unsigned int i=0; void enfriar(void) // Subrutina para activar los elementos que disminuyen la temperatura de la // cámara térmica PORTCbits.RC1=1; //Abre la compuerta del soplador PORTCbits.RC5=1; //Abre la compuerta del extractor PORTCbits.RC2=1; //Enciende el extractor PORTCbits.RC0=1; //Enciende el soplador void nenfriar(void) // Subrutina que desactiva los elementos que disminuyen la temperatura de la // cámara térmica PORTCbits.RC0=0; // Apaga el soplador PORTCbits.RC1=0; // Cierra la compuerta del soplador PORTCbits.RC2=0; // Apaga el extractor PORTCbits.RC5=0; // Cierra la compuerta del extractor int adquisicion(void) // Subrutina del conversor AD para la lectura del sensor de temperatura ConvertADC(); // Inicia la conversión while (BusyADC()); // Espera a que la conversión finalice PIR1bits.ADIF = 0; // Limpia la bandera de interrupción del conversor AD sensor = ReadADC(); // El resultado de la conversión se guarda en la variable “sensor” return sensor; // Regresa al programa principal con el valor de la variable “sensor”

Page 153: TESIS TARJETA PROGRAMABLE - cenidet.edu.mx Joaquin Rivero... · componente como tarjetas de adquisición de datos o controladores lógicos programables (PLCs). En este trabajo se

Diseño y construcción de una tarjeta programable Anexos de adquisición, procesamiento de datos y control

141

void main (void) // Inicia el programa principal OpenUSART(USART_TX_INT_OFF & //Activa y configure el USART, deshabilita las

USART_RX_INT_OFF & // interrupciones por transmisión y recepción USART_ASYNCH_MODE & // trabaja en modo asíncrono USART_EIGHT_BIT & // dato de 8 bits USART_CONT_RX & // recepción continua USART_BRGH_LOW, 19); // baja velocidad y el valor para velocidad de 9600 baudios

PORTD=0;LATD=0;TRISD=0x00; // Inicializa en 0 el puerto D y se configura como salida PORTB=0;LATB=0;TRISB=0xFF; // Inicializa en 0 el puerto B y se configura como entrada INTCON=0x00; // Deshabilita las interrupciones PORTA=0;LATA=0;TRISA=0xEF; // Inicializa en 0 el puerto A y lo configura como entrada INTCON2=0xC0; // Genera interrupción cada flanco ascendente en RB0 OpenADC(ADC_FOSC_RC & // Selecciona el oscilador interno RC para la conversión

ADC_RIGHT_JUST & // Justifica el resultado a la derecha ADC_5ANA_0REF, // Configura el puerto A para 5 entradas analógicas ADC_CH0 & ADC_INT_OFF); // Selecciona el canal 0 como entrada al conversor y

//deshabilita las interrupciones PORTAbits.RA4=1; // Enciende el agitador de aire Delay10KTCYx(0);Delay10KTCYx(0); // Retardo de tiempo antes de empezar la configuración nenfriar(); // Llamada a la subrutina para desactivar soplador, extractor y compuertas while (!DataRdyUSART()); // Espera la recepción de un dato por RS232 sp=ReadUSART(); // Guarda el dato recibido en la variable “sp” setpoint=10*sp; // Guarda en la variable “setpoint” el valor de 10 veces “sp” while (!DataRdyUSART()); // Espera la recepción de un dato por RS232 Kp=ReadUSART(); // Guarda el dato recibido en la variable “Kp” while (!DataRdyUSART()); // Espera la recepción de un dato por RS232 Ti=ReadUSART(); // Guarda el dato recibido en la variable “Ti” while(1) // Comienza el ciclo infinito de control de la cámara térmica adquisicion(); // Se lee el sensor de temperatura WriteUSART(sensor); // Este valor es enviado a la computadora para graficarlo entrada=5*sensor; // Se multiplica por 5y se guarda en la variable “entrada” if (entrada<setpoint) // Si la variable “entrada” es mayor que el “setpoint”, // se calcula la acción de control error=setpoint-entrada; // Cálculo del error errora=errora+error; // Cálculo del error acumulado if(errora>limiterrora) // Se verifica que el error acumulado no sea demasiado // grande para que la acción integral de control errora=80; // no aumente demasiado después de mucho tiempo if(Ti==0) // Si la variable Ti es cero, no se considera // la parte integral de control y conti=0; // solo funcionara como controlador proporcional Else // en caso contrario que la variable Ti tenga un valor // distinto de cero, se calcula la acción conti=errora/Ti; // integral de control cont=Kp*(error+conti); // Se calcula la señal de control if (cont>225) // y es limitada a un valor máximo cont=225; // para el corte de onda pwm=235-cont; // Se calcula el tiempo de corte de onda según la señal de control nenfriar(); // Se desactivan el soplador, el extractor y las compuertas i=0; // se inicializa la variable I con un valor de 0 while(i<120) // para generar la señal de corte de onda durante un segundo

Page 154: TESIS TARJETA PROGRAMABLE - cenidet.edu.mx Joaquin Rivero... · componente como tarjetas de adquisición de datos o controladores lógicos programables (PLCs). En este trabajo se

Diseño y construcción de una tarjeta programable Anexos de adquisición, procesamiento de datos y control

142

while(!INTCONbits.INT0IF); //se espera el flanco de subida del detector de cruce por cero INTCONbits.INT0IF=0; //Se limpia la bandera de interrupción 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 interrupción externa if (entrada>=setpoint) // Si el valor de la variable “entrada es mayor o igual al // valor de “setpoint” enfriar(); // se activan el soplador, el extractor y las compuertas PORTDbits.RD0=0; // se asegura que no se active el triac Delay10KTCYx(150); // y se espera un segundo para el siguiente Delay10KTCYx(150); // muestreo // Fin del programa

Page 155: TESIS TARJETA PROGRAMABLE - cenidet.edu.mx Joaquin Rivero... · componente como tarjetas de adquisición de datos o controladores lógicos programables (PLCs). En este trabajo se

Diseño y construcción de una tarjeta programable Anexos de adquisición, procesamiento de datos y control

143

Anexo D.7. Programa de configuración y monitoreo de la cámara térmica El programa utilizado para la configuración y monitoreo de la cámara térmica esta realizado en LabView. LabView utiliza un lenguaje gráfico de programación. En la figura D.1 se muestra el panel frontal del instrumento virtual.

Figura D.1 Panel frontal.

Los controles e indicadores utilizados en el panel frontal están 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 configuración y monitoreo.

Icono Nombre de la variable Tipo de variable PARO Booleana SETPOINT Entera, sin signo, de 8 bits Kp Entera, sin signo, de 8 bits Ti Entera, sin signo, de 8 bits LISTO Booleana ERROR DE CONFIGURACIÓN Booleana ERROR DE ACCESO DEL PUERTO Booleana Área de gráfica Doble LEYENDO Booleana

Page 156: TESIS TARJETA PROGRAMABLE - cenidet.edu.mx Joaquin Rivero... · componente como tarjetas de adquisición de datos o controladores lógicos programables (PLCs). En este trabajo se

Diseño y construcción de una tarjeta programable Anexos de adquisición, procesamiento de datos y control

144

En las siguientes figuras se muestran los bloques que forman el programa de monitoreo y control de la cámara térmica.

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

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

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

Page 157: TESIS TARJETA PROGRAMABLE - cenidet.edu.mx Joaquin Rivero... · componente como tarjetas de adquisición de datos o controladores lógicos programables (PLCs). En este trabajo se

Diseño y construcción de una tarjeta programable Anexos de adquisición, procesamiento de datos y control

145

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

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

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

Page 158: TESIS TARJETA PROGRAMABLE - cenidet.edu.mx Joaquin Rivero... · componente como tarjetas de adquisición de datos o controladores lógicos programables (PLCs). En este trabajo se

Diseño y construcción de una tarjeta programable Anexos de adquisición, procesamiento de datos y control

146

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

Tabla E.1 Lista de componentes de la tarjeta principal

Cantidad Descripción No. Ref. Especificación P. U. May.

Subtotal May.

P. U. Men.

Subtotal Men.

1 Regulador U9 7805 $2.70 $2.70 $6.00 $6.00 1 Regulador U6 7815 $2.70 $2.70 $6.00 $6.00 1 Regulador U1 7915 $2.90 $2.90 $7.00 $7.00 2 Capacitor electrolítico C33, C35 1000 uF / 50V $3.60 $7.20 $8.00 $16.00

7 Capacitor cerámico C29-C32, C42-C44 100 nF $0.20 $1.40 $2.00 $14.00

6 Capacitor electrolítico C34, C37-C41 100 uF / 50 V $0.55 $3.30 $3.00 $18.00

1 Capacitor electrolítico C36 100 uF / 100 V $0.80 $0.80 $4.00 $4.00 3 LED D6-D8 Rojo $0.30 $0.90 $2.00 $6.00

3 Resistencia R43-R44, R46 470 Ω $0.03 $0.09 $0.50 $1.50

2 Bobina L1, L2 $0.00 $0.00 $0.00 $0.00 1 Fusible F1 $0.00 $0.00 $0.00 $0.00 1 Diodo D4 1N4148 $0.20 $0.20 $1.00 $1.00

1 Tira doble en ángulo (peine) JP4 14 $0.03 $0.42 $0.20 $2.80

1 Tira sencilla en ángulo (peine) J32 2 $0.03 $0.06 $0.20 $0.40

1 Tira sencilla en ángulo (peine) J27 3 $0.03 $0.09 $0.20 $0.60

1 Buffer U2 74HC245 $4.60 $4.60 $10.00 $10.00 1 Base C.I. U2 20 pines $0.45 $0.45 $3.00 $3.00

42 Resistencia R22-R27, R42 47 KΩ $0.03 $1.26 $0.50 $21.00

21 Tira sencilla (peine) J1 – J21 3 $0.03 $1.89 $0.20 $12.60 21 Resistencia R1 – R18 470 Ω $0.03 $0.63 $0.50 $10.50 1 Resistencia R21 10 KΩ $0.03 $0.03 $0.50 $0.50 1 Capacitor cerámico C28 100 nF $0.20 $0.20 $2.00 $2.00 1 Tira sencilla (peine) J26 2 $0.03 $0.06 $0.20 $0.40

8 Tira sencilla en ángulo (peine) J38-J45 4 $0.03 $0.96 $0.20 $6.40

8 Resistencia R47 220 Ω $0.03 $0.24 $0.50 $4.00 1 Amplificador operacional U7 MCP6044 $18.50 $18.50 $18.50 $18.50 1 Base C.I. U7 14 pines $0.30 $0.30 $2.00 $2.00

4 Resistencia R35, R38-R40 470 Ω $0.03 $0.12 $0.50 $2.00

4 Resistencia R41 47 KΩ $0.03 $0.12 $0.50 $2.00

4 Resistencia R29, R31, R36, R37 2.2 KΩ $0.03 $0.12 $0.50 $2.00

2 Capacitor cerámico C21, C25 10 nF $0.15 $0.30 $2.00 $4.00 2 Capacitor cerámico C22, C26 22 nF $0.15 $0.30 $2.00 $4.00

Page 159: TESIS TARJETA PROGRAMABLE - cenidet.edu.mx Joaquin Rivero... · componente como tarjetas de adquisición de datos o controladores lógicos programables (PLCs). En este trabajo se

Diseño y construcción de una tarjeta programable Anexos de adquisición, procesamiento de datos y control

147

Cantidad Descripción No. Ref. Especificación P. U. May.

Subtotal May.

P. U. Men.

Subtotal Men.

4 Tira sencilla en ángulo (peine) J22-J25 3 $0.03 $0.36 $0.20 $2.40

1 Tira doble en ángulo (peine) JP5 14 $0.03 $0.42 $0.20 $2.80

1 Resistencia R20 820 Ω $0.03 $0.03 $0.50 $0.50 1 Resistencia R19 10 KΩ $0.03 $0.03 $0.50 $0.50 1 LCD LCD 2x16 $300.00 $300.00 $300.00 $300.00 1 Circuito integrado U3 MAX232 $7.90 $7.90 $15.00 $15.00 1 Base C.I. U3 18 pines $0.40 $0.40 $3.00 $3.00 5 Capacitor de tantalio C1-C5 10 uF / 25 V $4.80 $24.00 $11.00 $55.00 1 Capacitor electrolítico C7 100 uF / 25 V $0.30 $0.30 $2.00 $2.00 1 Diodo D2 1N4148 $0.20 $0.20 $1.00 $1.00 1 Diodo zener D3 5.1 v $0.40 $0.40 $3.00 $3.00

1 Conector DB9 hembra para circuito impreso P1 $2.90 $2.90 $9.00 $9.00

2 Memoria EEPROM U8, U10 24FC512 $42.16 $84.32 $42.16 $84.32 2 Base C.I. U8, U10 8 pines $0.25 $0.50 $2.00 $4.00 2 DIPSwitch SW3, SW5 3 $2.20 $4.40 $5.00 $10.00

10 Resistencia R45, R48 4.7 KΩ $0.03 $0.30 $0.50 $5.00 2 Capacitor cerámico C27, C50 100 nF $0.20 $0.40 $2.00 $4.00 1 Tira sencilla (peine) J47 2 $0.03 $0.06 $0.20 $0.40 2 Tira sencilla (peine) J29, J31 3 $0.03 $0.18 $0.20 $1.20 2 Driver U4, U5 L293D $35.00 $70.00 $35.00 $70.00 2 Base C.I. U4, U5 16 pines $0.35 $0.70 $2.00 $4.00 4 Resistencia R34 10 KΩ $0.03 $0.12 $0.50 $2.00 1 DIPSwitch SW4 4 $2.20 $2.20 $5.00 $5.00

16 Capacitor cerámico C8-C20, C45-C47 100 nF $0.20 $3.20 $2.00 $32.00

2 Capacitor electrolítico C23, C24 100 uF / 25 V $0.30 $0.60 $2.00 $4.00 2 Tira sencilla (peine) J35, J36 3 $0.03 $0.18 $0.20 $1.20 2 Tira sencilla (peine) J33, J34 5 $0.03 $0.30 $0.20 $2.00

1 Tira doble en ángulo (peine) JP1 40 $0.03 $1.20 $0.20 $8.00

1 Tira doble en ángulo (peine) JP2 36 $0.03 $1.08 $0.20 $7.20

1 Tira doble en ángulo (peine) JP4 14 $0.03 $0.42 $0.20 $2.80

1 Placa fenólica doble cara PF 12 cm x 19.5 cm (15x20) $22.00 $22.00 $40.00 $40.00

Subtotal May. $ 581.94 Subtotal

Men. $ 869.52

Page 160: TESIS TARJETA PROGRAMABLE - cenidet.edu.mx Joaquin Rivero... · componente como tarjetas de adquisición de datos o controladores lógicos programables (PLCs). En este trabajo se

Diseño y construcción de una tarjeta programable Anexos de adquisición, procesamiento de datos y control

148

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

Cantidad Descripción No. Ref. Especificación P. U. May.

Subtotal May.

P. U. Men.

Subtotal Men.

1 Microcontrolador U1 PIC18F452 $104.00 $104.00 $104.00 $104.00 1 Base C.I. U1 40 pines $0.90 $0.90 $4.00 $4.00 1 Cristal de cuarzo XTL 12 MHz $5.70 $5.70 $13.00 $13.00

1 Pulsador SW1 Normalmente abierto $0.40 $0.40 $3.00 $3.00

1 Resistencia R21 100 Ω $0.03 $0.03 $0.50 $0.50 1 Resistencia R23 10 KΩ $0.03 $0.03 $0.50 $0.50

3 Capacitor cerámico C1-C3 100 nF $0.20 $0.60 $2.00 $6.00

2 Capacitor cerámico C4-C5 22 pF $0.20 $0.40 $2.00 $4.00

1 Capacitor electrolítico C6 10 uF / 25 V $0.25 $0.25 $2.00 $2.00

1 Tira doble en ángulo (peine) JP1 40 $0.03 $1.20 $0.20 $8.00

1 Placa fenólica doble cara PF 5.5 cm x 8 cm

(10x10) $7.10 $7.10 $13.00 $13.00

Subtotal May. $ 113.51 Subtotal

Men. $ 869.52

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

Cantidad Descripción No. Ref. Especificación P. U. May.

Subtotal May.

P. U. Men.

Subtotal Men.

1 Conversor digital-analógico U2 DAC0808 $16.50 $16.50 $29.00 $29.00

1 Base C.I. U2 18 pines $0.40 $0.40 $3.00 $3.00

1 Amplificador operacional U4 LF351 $5.00 $5.00 $5.00 $5.00

1 Base C.I. U4 8 pines $0.25 $0.25 $2.00 $2.00 1 Transmisor 4-20 mA J2 XTR110 $130.00 $130.00 $130.00 $130.00 1 Receptor 4-20 mA J4 RCV420 $78.00 $78.00 $78.00 $78.00 2 Base C.I. J2, J4 16 pines $0.35 $0.70 $2.00 $4.00 1 Transistor FET Q1 MTP2955 $7.80 $7.80 $14.00 $14.00 1 Resistencia R4 1 KΩ $0.03 $0.03 $0.50 $0.50 2 Resistencia R2, R3 3.3 KΩ $0.03 $0.06 $0.50 $1.00 1 Trimpot R6 10 KΩ $17.00 $17.00 $31.00 $31.00

1 Capacitor electrolítico C1 1 uF $0.25 $0.25 $2.00 $2.00

1 Capacitor cerámico C2 33 pF $0.20 $0.20 $2.00 $2.00 2 Tira sencilla (peine) J1, J5 2 $0.03 $0.12 $0.20 $0.80

1 Tira doble en ángulo (peine) J8 14 $0.03 $0.42 $0.20 $2.80

1 Placa fenólica una cara 5.5 cm x 6.5 cm

(10x10) $4.40 $4.40 $10.00 $10.00

Subtotal May. $ 261.13 Subtotal

Men. $ 315.10

Page 161: TESIS TARJETA PROGRAMABLE - cenidet.edu.mx Joaquin Rivero... · componente como tarjetas de adquisición de datos o controladores lógicos programables (PLCs). En este trabajo se

Diseño y construcción de una tarjeta programable Anexos de adquisición, procesamiento de datos y control

149

Tabla E.4 Lista de componentes de la tarjeta de aplicación

Cantidad Descripción No. Ref. Especificación P. U. May.

Subtotal May.

P. U. Men.

Subtotal Men.

27 LED D1-D27 Rojo $0.30 $8.10 $2.00 $54.00 18 Botón pulsador SW3-SW20 SW $0.40 $7.20 $3.00 $54.00 1 Circuito integrado U2 74LS48 $9.30 $9.30 $17.00 $17.00 2 Base C.I. U2,U3 16 pines $0.35 $0.70 $2.00 $4.00

5 Pantalla de 7 segmentos JP1-JP5 DC05 $4.00 $20.00 $9.00 $45.00

3 Trimpot R1,R2,R9 10 KΩ $17.00 $51.00 $31.00 $93.00 1 LDR R5 LDR $2.20 $2.20 $2.20 $2.20 1 Sensor LM35 U1 TO92 $25.00 $25.00 $25.00 $25.00 5 Transistor Q1-Q5 2N3904 $0.40 $2.00 $3.00 $15.00

1 Capacitor electrolítico C4 47uF 16V $0.25 $0.25 $2.00 $2.00

2 Capacitor cerámico C3-C5 100 nF $0.20 $0.40 $2.00 $4.00

4 Tira sencilla en ángulo (peine) J1-J4 3 $0.03 $0.36 $0.20 $2.40

1 Tira doble (peine) JP6 36 $0.03 $1.08 $0.20 $7.20

1 Placa fenólica doble cara 9.5 cm x 14.5

cm (10x20) $15.00 $15.00 $27.00 $27.00

Subtotal May. $ 142.59 Subtotal

Men. $ 351.80

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

Tabla E.5 Costo total de la tarjeta programable

Total Mayoreo Menudeo Subtotal tarjeta principal $581.94 $869.52 Subtotal tarjeta procesamiento $113.51 $158.00 Subtotal tarjeta 4-20 mA $261.13 $315.10 Subtotal tarjeta de aplicación $142.59 $351.80 Costo total de componentes $1,099.17 $1,694.42