Descarga la aplicación para disfrutar aún más
Vista previa del material en texto
CONTROLADOR DE TEMPERATURA DIGITAL Automatización y Control Industrial Año: 2013 Alumnos: Guillermo Scarello, Jorge F. Folco Profesores: Galiano Ernesto, Vergnano Sergio Oscar Controlador De Temperatura Digital Automatización y Control Industrial Alumnos: Guillermo Scarello - Jorge F. Folco Página | 2 INDICE Índice ..............................................................................................2 Introducción .....................................................................................3 Introducción a los sistemas automáticos ..........................................3 Introducción a microcontroladores ...................................................5 Aplicaciones de los microcontroladores ..........................6 Microcontrolador vs microprocesador .............................6 Arquitectura interna .........................................................7 Programación de microcontroladores ..............................................9 Diagrama esquemático del circuito ..................................................11 Microcontrolador PIC16F877a .........................................................12 Bancos de la memoria RAM ............................................18 Sistema de interrupciones ...............................................19 El LCD ..............................................................................................20 Caracteres del LCD .........................................................20 Sensor de temperatura ....................................................................23 LM35 ...............................................................................23 Teoría de funcionamiento del circuito ..............................................24 Simulación del circuito .....................................................................26 Programa en lenguaje C ..................................................................30 Quemador PIC K150 ........................................................................33 Conclusión .......................................................................................35 Anexos .............................................................................................36 Bibliografía y páginas web ...............................................................46 Controlador De Temperatura Digital Automatización y Control Industrial Alumnos: Guillermo Scarello - Jorge F. Folco Página | 3 Introducción El siguiente informe se referirá a la realización de un proyecto electrónico utilizado para el control de temperatura con visualización digital. El rango de temperatura será de 0°C a 150°C. Un controlador de temperatura es un dispositivo mediante el cual puedo regular la temperatura de algún sistema físico tal como una pieza de algún material cualquiera o un recinto, etc. para un fin determinado. La temperatura podrá ser superior o inferior a la ambiente, para lo cual en el primer caso entregaré energía calórica y en el segundo extraeré energía calórica. Se ha elegido este proyecto por el amplio abanico de aplicaciones en las que se puede utilizar, tanto de forma industrial como doméstica. A lo largo del siguiente informe se desarrollaran los temas pertinentes a dicho proyecto con el fin de poder explicarlos de manera clara y concisa para la fácil interpretación del lector. Introducción a los sistemas automáticos Un sistema automático puede controlar desde la alarma de un despertador hasta el lanzamiento de una nave espacial. Generalmente, los sistemas de control se componen de un dispositivo de entrada, una unidad de control y un dispositivo de salida. El dispositivo de entrada suele ser un sensor que detecta las condiciones del entorno. Cuando se detectan variaciones en el entorno, se producen pequeñas variaciones en el sensor que se transforman en señales eléctricas. Esta señal eléctrica se amplifica, y se introduce en un circuito electrónico o en un sistema de control por ordenador para que se produzca una acción de control sobre los actuadores, como arrancar y parar un motor, o encender y apagar una luz, etc. Necesidad y aplicaciones de los sistemas automáticos de control En la actualidad los sistemas automáticos juegan un gran papel en muchos campos, mejorando nuestra calidad de vida: En los procesos industriales: Aumentando las cantidades y mejorando la calidad del producto, gracias a la producción en serie y a las cadenas de montaje. Reduciendo los costes de producción. Fabricando artículos que no se pueden obtener por otros medios. En los hogares: Mejorando la calidad de vida. Podríamos citar desde una lavadora hasta un control inteligente de edificios (domótica). Para los avances científicos y tecnológicos: Un claro ejemplo lo constituyen las misiones espaciales; Controlador De Temperatura Digital Automatización y Control Industrial Alumnos: Guillermo Scarello - Jorge F. Folco Página | 4 en automoción es de todos conocidos los limpiaparabrisas inteligentes, etc. Como se puede observar las aplicaciones son innumerables. De esta manera surge toda una teoría, la Regulación Automática, dedicada al estudio de los sistemas automáticos de control. Los controles pueden ser de lazo abierto y lazo cerrado. Para el caso de controlar la temperatura tendremos los siguientes. Lazo abierto: Se entrega una cierta cantidad de energía constante o variable para lograr una temperatura prefijada, o una variación de temperatura según una ley determinada. Cualquier variación de las condiciones del elemento a controlar, no será corregida por no disponer de un conocimiento directo de la temperatura a controlar. En estos sistemas, para que la temperatura del elemento a controlar sea el requerido, se deben mantener una cierta cantidad de parámetros de elementos periféricos en valores predeterminados, a fin de que la energía calórica entregada, produzca los efectos deseados sobre piezas a controlar. Lazo cerrado: Se entrega una cierta cantidad de energía que será dependiente de la diferencia de temperatura real del elemento a controlar y de la temperatura prefijada o sea que existe una realimentación. Una forma segura y sencilla de lograr la temperatura deseada sobre el elemento, es aplicar un sensor sobre este y con los datos obtenidos, realimentar el sistema a fin de aplicar la energía calórica necesaria para lograr el resultado requerido. No siempre, podemos medir en forma directa la temperatura del elemento, por lo que en estos casos se medirá otro parámetro y a través de un modelo matemático o un simple cálculo, suponemos que tenemos el dato necesario de temperatura. Controlador De Temperatura Digital Automatización y Control Industrial Alumnos: Guillermo Scarello - Jorge F. Folco Página | 5 Entrada: es la excitación que se aplica a un sistema de control desde una fuente de energía externa, con el fin de provocar una respuesta. Salida: es la respuesta que proporciona el sistema de control. Unidad de control: gobierna la salida en función de una señal de activación. Unidad de retroalimentación: está formada por uno o varios elementos que captan la variable de salida, la acondicionan y trasladan a la unidad de comparación. Actuador: es un elemento que recibe una orden desde el regulador o controlador y la adapta a un nivel adecuado según la variable de salida necesaria para accionar el elemento final de control, planta o proceso. Introducción a microcontroladores El uso de los microcontroladores en las aplicaciones de electrónica digital y analógica se ha popularizado a partir de la reducción de sus precios y la integración cada vez mayor de una gran variedad de periféricos, así como el incremento en la capacidad de memoria de datos y programa. Unmicrocontrolador (abreviado μC, UC o MCU) es un circuito integrado programable, capaz de ejecutar las órdenes grabadas en su memoria. Está compuesto de varios bloques funcionales, los cuales cumplen una tarea específica. Un microcontrolador incluye en su interior las tres principales unidades funcionales de una computadora: unidad central de procesamiento, memoria y periféricos de entrada/salida. Algunos microcontroladores pueden utilizar palabras de cuatro bits y funcionan a velocidad de reloj con frecuencias tan bajas como 4 kHz, con un consumo de baja potencia (mW o microvatios). Por lo general, tendrá la capacidad para mantener la funcionalidad a la espera de un evento como pulsar un botón o de otra interrupción, el consumo de energía durante el sueño (reloj de la CPU y los periféricos de la mayoría) puede ser sólo nanovatios, lo que hace que muchos de ellos muy adecuados para aplicaciones con batería de larga duración. Otros microcontroladores pueden servir para roles de rendimiento crítico, donde sea necesario actuar más como un procesador digital de señal (DSP), con velocidades de reloj y consumo de energía más altos. Cuando es fabricado, el microcontrolador no contiene datos en la memoria ROM. Para que pueda controlar algún proceso es necesario generar o crear y luego grabar en la EEPROM o equivalente del microcontrolador algún programa, el cual puede ser escrito en lenguaje ensamblador u otro lenguaje para microcontroladores; sin embargo, para que el programa pueda ser grabado en la memoria del microcontrolador, debe ser codificado en sistema numérico hexadecimal que es finalmente el sistema que hace trabajar al microcontrolador cuando éste es alimentado con el voltaje adecuado y asociado a dispositivos analógicos y discretos para su funcionamiento Aplicaciones de los microcontroladores http://es.wikipedia.org/wiki/Circuito_integrado http://es.wikipedia.org/wiki/Circuito_integrado http://es.wikipedia.org/wiki/Computadora http://es.wikipedia.org/wiki/Unidad_central_de_procesamiento http://es.wikipedia.org/wiki/Unidad_central_de_procesamiento http://es.wikipedia.org/wiki/Memoria_(inform%C3%A1tica) http://es.wikipedia.org/wiki/Perif%C3%A9rico_(inform%C3%A1tica) http://es.wikipedia.org/wiki/Entrada/salida http://es.wikipedia.org/wiki/Vatio http://es.wikipedia.org/wiki/Procesador_digital_de_se%C3%B1al http://es.wikipedia.org/wiki/EEPROM http://es.wikipedia.org/wiki/Lenguaje_ensamblador http://es.wikipedia.org/wiki/Sistema_hexadecimal http://es.wikipedia.org/wiki/Sistema_hexadecimal http://es.wikipedia.org/wiki/Voltaje http://es.wikipedia.org/wiki/Electr%C3%B3nica_anal%C3%B3gica http://es.wikipedia.org/wiki/Electr%C3%B3nica_digital Controlador De Temperatura Digital Automatización y Control Industrial Alumnos: Guillermo Scarello - Jorge F. Folco Página | 6 Los microcontroladores se emplean en la actualidad en una inmensa variedad de aplicaciones de control electrónico: producción industrial, sector automotriz, aviación, construcción naval, electrodomésticos, exploración espacial, exploración marina, equipo médico, telecomunicaciones, robótica, etc. Su gran éxito se debe fundamentalmente a su enorme versatilidad, ya que el proceso de diseño se realiza casi exclusivamente en software (programación), mientras que en lo referente al hardware lo más importante es la selección del microcontrolador apropiado y nada más. Esto permite que el mantenimiento y la modificación de los diseños se hagan de una forma muy eficiente. Microcontrolador vs microprocesador Se suele pensar que un microcontrolador es lo mismo que un microprocesador, pero eso no es cierto. Se diferencian en varios aspectos. El primero y más importante a favor de un microcontrolador es su funcionalidad. Por otro lado, para que se pueda usar un microprocesador, se le deben añadir otros componentes, por ejemplo la memoria. Aunque un microprocesador es una poderosa máquina de cálculo, no está preparado para la comunicación con el entorno exterior; para que esto sea posible se le deben añadir circuitos especiales. Las primeras computadoras se hicieron al agregar periféricos externos tales como memoria, líneas de entrada/salida, temporizadores y otros al microprocesador. Con la mejora en la fabricación de circuitos integrados se logró incluir tanto el microprocesador como los periféricos en un solo chip. A este chip se le dio el nombre de microcontrolador. El microcontrolador está diseñado para agrupar todas las funciones en una sola unidad. No se necesitan componentes externos (periféricos) para su aplicación, porque todos los circuitos necesarios ya están incorporados. Esto significa ahorro de tiempo, dinero y espacio para un determinado diseño. Arquitectura interna Un microprocesador posee todos los componentes de una computadora, pero con unas características fijas que no pueden alterarse. Las partes principales de un microcontrolador son: Controlador De Temperatura Digital Automatización y Control Industrial Alumnos: Guillermo Scarello - Jorge F. Folco Página | 7 1) Procesador. 2) Memoria no volátil para contener el programa. 3) Memoria de lectura y escritura para guardar los datos. 4) Líneas de E/S para los controladores de periféricos. a) Comunicación en paralelo. b) Comunicación en serie. c) Diversas puertas de comunicación. 5) Recursos auxiliares: a) Circuito de reloj. b) Temporizadores. c) Perro guardián (WDT). d) Conversores AD y DA. e) Comparadores analógicos. f) Protección ante fallos de la alimentación. g) Estado de reposo o bajo consumo. Procesador: la necesidad de conseguir elevados rendimientos en el procesamiento de las instrucciones ha desembocado en el empleo generalizado de procesadores de arquitectura Harvard frente a los tradicionales que seguían la arquitectura von Neumann. Controlador De Temperatura Digital Automatización y Control Industrial Alumnos: Guillermo Scarello - Jorge F. Folco Página | 8 Memoria de programa: el microcontrolador está diseñado para que en su memoria de programa se almacenen todas las instrucciones del programa de control. No hay posibilidad de utilizar memorias externas de ampliación. Como el programa a ejecutar es siempre el mismo, debe estar grabado de forma permanente. Los tipos de memoria adecuados para soportar esta función admiten cinco versiones diferentes: ROM con máscara: este tipo de memoria el programa se graba en el chip durante el proceso de su fabricación mediante el uso de “máscaras”. Utilizado en series muy grandes (debido a altos costes de diseño e instrumental). EPROM: la grabación de esta memoria se realiza mediante un dispositivo físico gobernado desde un computador personal. En la superficie de la cápsula del microcontrolador existe una ventana de cristal por la que se puede someter al chip de la memoria a rayos ultravioletas para producir su borrado y emplearla nuevamente. OTP: este modelo de memoria solo se puede grabar una vez por parte del usuario, utilizando el mismo procedimiento que con la memoria EPROM. EEPROM: la grabación es similar a las memorias OTP y EPROM, pero el borrado es mucho más sencillo al poder efectuarse de la misma manera que el grabado, o sea, eléctricamente. Sobre el mismo zócalo del grabador puede ser programada y borrada tantas veces como se quiera, lo que la hace ideal para la enseñanza y la creación de nuevos proyectos. FLASH: memoria no volátil, de bajo consumo, que se puede escribir y borrar en circuito al igual que las EEPROM, pero suelen disponer de mayor capacidad que estas últimas. Son muy recomendables en aplicaciones en las que sea necesario modificar el programa a lo largo de la vida del producto. Memoria de datos: los datos que manejan los programas varían continuamente, y esto exige que la memoria que les contiene debe ser de lectura y escritura, por lo que la memoria RAM estática (SRAM) es la más adecuada, aunque sea lamás volátil. Hay microcontroladores que también disponen como memoria de datos una de lectura y escritura no volátil, del tipo EEPROM. De esta forma, un corte en el suministro de la alimentación no ocasiona la pérdida de la información, que está disponible a reiniciarse el programa. Líneas E/S: las líneas E/S que se adaptan con los periféricos manejan información en paralelo y se agrupan en conjuntos de ocho, que reciben el nombre de Puertos. Hay modelos con líneas que soportan la comunicación en serie; otros disponen de conjuntos de líneas que implementan puertos de comunicación para diversos protocolos, como el puerto USB por ejemplo. Recursos auxiliares: Controlador De Temperatura Digital Automatización y Control Industrial Alumnos: Guillermo Scarello - Jorge F. Folco Página | 9 a) Circuito de reloj, encargado de generar los impulsos que sincronizan el funcionamiento de todo el sistema. b) Temporizadores, orientados a controlar tiempos. c) Perro guardián (wactdog-WDT), destinado a provocar una reinicializacion cuando el programa queda bloqueado. d) Conversores AD y DA, para poder recibir y enviar señales analógicas. e) Comparadores analógicos, para verificar el valor de una señal analógica. f) Sistema de protección ante fallos de la alimentación. Programación de microcontroladores Se define como el proceso de creación de un programa de computadora, mediante la aplicación de procedimientos lógicos, a través de los siguientes pasos: 1) El desarrollo lógico del programa para resolver un problema en particular. 2) Escritura de la lógica del programa empleando un lenguaje de programación específico (codificación del programa). Estos puntos 1 y 2, hacen referencia a la escritura de un algoritmo (método para resolver un problema) y a su posterior codificación en un lenguaje de programación (esta codificación es el programa que utiliza el procesador del micro controlador a fin de realizar el método descripto por el algoritmo para la resolución del problema). Los principales tipos de lenguajes utilizados en la actualidad son: Lenguaje de bajo nivel (ensamblador): Son instrucciones que ensamblan los grupos de conmutadores necesarios para expresar una mínima lógica aritmética. Están íntimamente vinculados al hardware. Por norma general están disponibles a nivel firmware, cmos o chip set. Estos lenguajes están orientados a procesos. Los procesos se componen de tareas. Contienen tantas instrucciones como la arquitectura del hardware así haya sido diseñada. Por ejemplo: La arquitectura CISC contiene muchas más instrucciones a este nivel, que la RISC. Son denominados como ensambladores de un hardware concreto, o kernel. Lenguajes de medio nivel: Son aquellos que, basándose en los juegos de instrucciones disponibles (chip set), permiten el uso de funciones a nivel aritmético, pero a nivel lógico dependen de literales en ensamblador. Estos lenguajes están orientados a procedimientos. Los procedimientos se componen de procesos. Ejemplos: C, Basic. Lenguaje de alto nivel: Son aquellos que permiten una máxima flexibilidad al programador a la hora de abstraerse o de ser literal. Permiten un camino bidireccional entre el lenguaje máquina y una expresión casi oral entre la escritura del programa y su posterior compilación. Estos lenguajes están orientados a objetos. Los objetos se http://es.wikipedia.org/wiki/Programa_inform%C3%A1tico http://es.wikipedia.org/wiki/Computadora Controlador De Temperatura Digital Automatización y Control Industrial Alumnos: Guillermo Scarello - Jorge F. Folco Página | 10 componen de propiedades cuya naturaleza emerge de procedimientos. Ejemplos: C, C++, Fortran, Cobol, Lisp. En el caso de este proyecto se programara en lenguaje C, para luego obtener el código maquina a través de compilador. 3) Ensamblaje o compilación del programa hasta convertirlo en lenguaje de máquina. 4) Prueba y depuración del programa. 5) Desarrollo de la documentación. El punto tres como bien se describe, es el paso para llevar el código escrito en lenguaje de alto nivel a lenguaje de maquina o ensamblador, para esto se utiliza una herramienta llamada compilador que en nuestro caso trata de un software llamado CCS PCWH Compiler v.4.1. El punto 4 hace referencia a identificar y corregir errores de programación (si se encuentran errores se deberá volver a los pasos 1, 2 o 3 dependiendo de la clase de error que se encuentre).Y por último se debe realizar una documentación de cada uno de los pasos mencionados anteriormente. A continuación se empezara a describir el proyecto propuesto, en esta descripción estarán: Esquema del circuito “Controlador de temperatura digital”. Descripción de los elementos fundamentales que componen el circuito. Teoría de funcionamiento del circuito. Programa en lenguaje C y ensamblador. Simulación hecha en el software Proteus 8.0. Conclusiones acerca del proyecto realizado. Diagrama esquemático del circuito http://es.wikipedia.org/wiki/C%2B%2B http://es.wikipedia.org/wiki/Fortran http://es.wikipedia.org/wiki/Cobol http://es.wikipedia.org/wiki/Depuraci%C3%B3n_de_programas http://es.wikipedia.org/wiki/Error_de_software Controlador De Temperatura Digital Automatización y Control Industrial Alumnos: Guillermo Scarello - Jorge F. Folco Página | 11 Controlador De Temperatura Digital Automatización y Control Industrial Alumnos: Guillermo Scarello - Jorge F. Folco Página | 12 Primeramente se hará un marco teórico sobre los principales elementos del circuito: El PIC16F887a. El LCD (en este caso de 16x2). Sensor de temperatura - El LM35. Microcontrolador PIC16F877a El PIC16F887 es un producto conocido de la compañía Microchip. Dispone de todos los componentes disponibles en la mayoría de los microcontroladores modernos. Por su bajo precio, un rango amplio de aplicaciones, alta calidad y disponibilidad, es una solución perfecta aplicarlo para controlar diferentes procesos en la industria, en dispositivos de control de máquinas, para medir variables de procesos etc. A continuación se muestra el diagrama del encapsulado del microcontrolador. En la siguiente figura se observa el diagrama en bloques del microcontrolador. En él se muestran todas las partes internas que constituyen al microcontrolador. A continuación se da una descripción de las más importantes de ellas: Memoria de programa FLASH: permite la lectura y escritura de múltiples posiciones de memoria en la misma operación (sólo permiten un número limitado de escrituras y borrados, generalmente entre 10.000 y un millón). Este tipo de memoria está fabricado con puertas lógicas NOR y NAND para almacenar los 0s o 1s correspondientes. http://es.wikipedia.org/wiki/Puerta_l%C3%B3gica#Puerta_NO-O_.28NOR.29 http://es.wikipedia.org/wiki/Puerta_l%C3%B3gica#Puerta_NO-Y_.28NAND.29 Controlador De Temperatura Digital Automatización y Control Industrial Alumnos: Guillermo Scarello - Jorge F. Folco Página | 13 Contador de programa (Program Counter): es un registro del procesador de un computador que indica la posición donde está el procesador en su secuencia de instrucciones. Dependiendo de los detalles de la máquina particular, contiene o la dirección de la instrucción que es ejecutada, o la dirección de la próxima instrucción a ser ejecutada. El contador de programa es incrementado automáticamente en cada ciclo de instrucción de tal manera que las instrucciones son leídas en secuencia desde la memoria. Ciertas instrucciones, tales como las bifurcaciones y las llamadas y retornos de subrutinas, interrumpen la secuencia al colocar un nuevo valor en el contador de programa. Registro de instrucción (Instruction reg. o IR): es un registro de la unidad de control del CPU en donde se almacena la instrucción que se está ejecutando. En los procesadores simples cada instruccióna ser ejecutada es cargada en el registro de la instrucción que la contiene mientras se es decodificada, preparada y al final ejecutado, un proceso que puede tomar varios pasos. Data bus y Program bus: son sistemas digitales que transfieren datos entre los componentes de una computadora o entre computadoras. Está formado por cables o pistas en un circuito, dispositivos como resistores y condensadores además de circuitos integrados. Registros internos: se usan para controlar los pines del pic, consultar los resultados de las operaciones de la ALU (unidad aritmética lógica), cambiar de banco de memoria, entre otras cosas. INDF (direccionamiento indirecto): Dirección 00h, sirve para ver el dato de la dirección a la que apunta el registro FSR (dir. 04h) que veremos más adelante TMR0 (Timer/contador): Dirección 01h, Aquí se puede ver el valor en tiempo real del Timer/contador. También se puede introducir un valor y alterar así el conteo. Este conteo puede ser interno (cuenta ciclos de reloj) o externo (cuenta impulsos introducidos por RA4). PCL (Parte baja del contador de programa): Dirección 02h, Modificando este registro se modifica el contador de programa, este contador de programa es el que señala al pic en qué dirección (de EEPROM) tiene que leer la siguiente instrucción. Esto se utiliza mucho para consultar tablas (ya veremos más adelante) STATUS: Dirección 03h, este es uno de los registros mas importantes y el que más vas a utilizar. Hay que analizar el funcionamiento de este registro bit a bit: CARRY, Dirección STATUS, 0 (bit 0): bit de desbordamiento. Este bit se pone a "1" cuando la operación anterior ha rebasado la capacidad de un byte. Por ejemplo, si sumo dos números y el resultado no cabe en 8 bit el CARRY se pone a "1", Pasa lo mismo cuando resto dos números y el resultado es un número negativo. Se puede usar para saber si un número es mayor que otro (restándolos, si hay acarreo es que el segundo era mayor que el primero). Una vez http://es.wikipedia.org/wiki/CPU http://es.wikipedia.org/wiki/Ciclo_de_instrucci%C3%B3n http://es.wikipedia.org/wiki/Subrutina http://es.wikipedia.org/wiki/Registro_(hardware) http://es.wikipedia.org/wiki/Unidad_de_control http://es.wikipedia.org/wiki/Unidad_de_control http://es.wikipedia.org/wiki/Sistema_digital http://es.wikipedia.org/wiki/Computadora http://es.wikipedia.org/wiki/Circuito_integrado http://electronica.webcindario.com/glosario/memoria.htm http://electronica.webcindario.com/glosario/bit.htm http://electronica.webcindario.com/glosario/bit.htm http://electronica.webcindario.com/glosario/bit.htm http://electronica.webcindario.com/glosario/bit.htm http://electronica.webcindario.com/glosario/bit.htm http://electronica.webcindario.com/glosario/bit.htm Controlador De Temperatura Digital Automatización y Control Industrial Alumnos: Guillermo Scarello - Jorge F. Folco Página | 14 que este bit se pone a "1" no se baja solo (a"0"), hay que hacerlo por programa si queremos volverlo a utilizar. DC (digit carry), Dirección STATUS, 1 (bit 1): lo mismo que el anterior pero esta vez nos avisa si el número no cabe en cuatro bits. Z (zero), Dirección STATUS, 2 (bit 2): Se pone a "1" si la operación anterior ha sido cero. Y pasa a "0" si la operación anterior no ha sido cero. Se usa para comprobar la igualdad entre dos números (restándolos, si el resultado es cero ambos números son iguales) PD (Power - Down bit), Dirección STATUS, 3 (bit3): se pone a "0" después de ejecutar la instrucción SLEEP*, se pone a "1" después de ejecutar la instrucción CLRWDT* o después de un power-up*. TO (Timer Up), Dirección STATUS, 4 (bit4): se pone a "0" cuando se acaba el tiempo del WATCHDOG*, Se pone a "1" después de ejecutar las instrucciones, CLRWDT* o SLEEP* o después de un power-up*. RP0 y RP1 (selección de banco), Dirección STATUS, 5 y STATUS, 6: Como el PIC16F84 solo tiene dos bancos de memoria el RP1 no se usa para nada, la selección del banco se hace mediante RP0 (STATUS, 5), si está a "0" nos encontramos en el banco 0, y si está a "1" nos encontramos en el banco 1. IRP, Dirección STATUS, 7, En este PIC no se usa para nada. FSR (Puntero), Dirección 04h: se usa para direccionamiento indirecto en combinación con el registro INDF (dir. 00h): se carga la dirección del registro que queremos leer indirectamente en FSR y se lee el contenido de dicho registro en INDF. PORTA (Puerto A), Dirección 05h: Con este registro se puede ver o modificar el estado de los pines del puerto A (RA0 - RA4). Si un bit de este registro está a "1" también lo estará el pin correspondiente a ese bit. El que un pin esté a "1" quiere decir que su tensión es de 5V, si está a "0" su tensión es 0V. Correspondencia: RA0 ==> PORTA,0 RA1 ==> PORTA,1 RA2 ==> PORTA,2 RA3 ==> PORTA,3 RA4 ==> PORTA,4 PORTB (Puerto B), Dirección 06h: igual que PORTA pero con el puerto B. Correspondencia: RB0 ==> PORTB,0 RB1 ==> PORTB,1 RB2 ==> PORTB,2 RB3 ==> PORTB,3 RB4 ==> PORTB,4 RB5 ==> PORTB,5 RB6 ==> PORTB,6 RB7 ==> PORTB,7 http://electronica.webcindario.com/glosario/bit.htm http://electronica.webcindario.com/glosario/bit.htm http://electronica.webcindario.com/glosario/bit.htm http://electronica.webcindario.com/glosario/memoria.htm http://electronica.webcindario.com/glosario/bit.htm Controlador De Temperatura Digital Automatización y Control Industrial Alumnos: Guillermo Scarello - Jorge F. Folco Página | 15 EEDATA, Dirección 08h: En este registro se pone el dato que se quiere grabar en la EEPROM de datos. EEADR, Dirección 09h: En este registro se pone la dirección de la EEPROM de datos donde queremos almacenar el contenido de EEDATA. PCLATH, Dirección 0Ah: Modifica la parte alta del contador de programa (PC), el contador de programa se compone de 13 bits, los 8 bits de menor peso se pueden modificar con PCL (dir. 02h) y los 5 bits de mayor peso se pueden modificar con PCLATH. INTCON (controla las interrupciones), Dirección 0Bh: Se estudia bit a bit: RBIF (Flag de interrupción por cambio de PORTB) Dirección INTCON, 0 (bit 0): se pone a "1" cuando alguno de los pines RB4, RB5, RB6, o RB7 cambia su estado. Una vez que está a "1" no pasa a "0" por sí mismo: hay que ponerlo a cero por programa. INTF (Flag de interrupción de RB0) Dirección INTCON, 1: Si está a "1" es que ha ocurrido una interrupción por RB0, si está a "0" es que dicha interrupción no ha ocurrido. Este bit es una copia de RB0. TOIF (Flag de interrupción por desbordamiento de TMR0) Dirección INTCON, 2: Cuando TMR0 se desborda este Flag avisa poniéndose a "1". Poner a "0" por programa. RBIE (Habilita la interrupción por cambio de PORTB) Dirección INTCON, 3: Si está a "1" las interrupciones por cambio de PORTB son posibles. INTE (Habilita la interrupción por RB0) Dirección INTCON, 4: Si lo ponemos a "1" la interrupción por RB0 es posible. TOIE (Habilita la interrupción por desbordamiento de TMR0) Dirección INTCON, 5: Si este bit está a "1" la interrupción por desbordamiento de TMR0 es posible. EEIE (Habilita la interrupción por fin de escritura en la EEPROM de datos) Dirección INTCON, 6: Cuando este bit está a "1" la interrupción cuando acaba la escritura en la EEPROM de datos es posible. GIE (Habilita las interrupciones globalmente) Dirección INTCON, 7: Este bit permite que cualquier interrupción de las anteriores sea posible. Para usar alguna de las interrupciones anteriores hay que habilitarlas globalmente e individualmente. ALU: la unidad aritmético lógica, también conocida como ALU (siglas en inglés de arithmetic logic unit), es un circuito digital que calcula operaciones aritméticas (como suma, resta, multiplicación, etc.) y operaciones lógicas (si, y, o, no), entre dos números. WDT: El propósito del watchdog timer (WDT) es producir un reset del microcontrolador PIC cada cierto períodode tiempo con lo cual se reinicia la ejecución del programa, con la finalidad de evitar que el dispositivo entre en un http://electronica.webcindario.com/glosario/bit.htm http://electronica.webcindario.com/glosario/bit.htm http://electronica.webcindario.com/glosario/bandera.htm http://electronica.webcindario.com/glosario/bit.htm http://electronica.webcindario.com/glosario/bandera.htm http://electronica.webcindario.com/glosario/bandera.htm http://electronica.webcindario.com/glosario/bandera.htm http://electronica.webcindario.com/glosario/bit.htm http://electronica.webcindario.com/glosario/bit.htm http://electronica.webcindario.com/glosario/bit.htm http://es.wikipedia.org/wiki/Circuito_digital Controlador De Temperatura Digital Automatización y Control Industrial Alumnos: Guillermo Scarello - Jorge F. Folco Página | 16 lazo infinito (se “cuelgue”) o se quede en una espera muy prolongada por un determinado evento que no ocurre. En las siguientes tablas se identifican los pines del encapsulado y sus funciones. Controlador De Temperatura Digital Automatización y Control Industrial Alumnos: Guillermo Scarello - Jorge F. Folco Página | 17 Controlador De Temperatura Digital Automatización y Control Industrial Alumnos: Guillermo Scarello - Jorge F. Folco Página | 18 El PIC16F887 tiene tres tipos de memoria: ROM, RAM y EEPROM (no se describirán ya que se lo ha hecho anteriormente). Bancos de la memoria RAM La memoria RAM está dividida en cuatro bancos. Antes de acceder a un registro al escribir un programa (para leer o cambiar su contenido), es necesario seleccionar el banco que contiene ese registro. Más tarde vamos a tratar dos bits del registro STATUS utilizados para selección del banco. Para simplificar el funcionamiento, los SFR utilizados con más frecuencia tienen la misma dirección en todos los bancos, lo que permite accederlos con facilidad. Trabajar con bancos puede ser difícil sólo si se escribe un programa en lenguaje ensamblador. Al utilizar el lenguaje de programación de alto nivel como es C basta con escribir el nombre del registro. A partir de esa información, el compilador selecciona el banco necesario. Las instrucciones apropiadas para la selección del banco serán incorporadas en el código durante el proceso de la compilación. Controlador De Temperatura Digital Automatización y Control Industrial Alumnos: Guillermo Scarello - Jorge F. Folco Página | 19 En nuestro programa se necesita de una interrupción para determinar los valores máximo y mínimo de temperatura admisible, por ello se hará una mención especial al sistema de interrupción que utiliza el microcontrolador. Sistema de interrupciones Al aparecer una petición de interrupción lo primero que hace el microcontrolador es ejecutar la instrucción actual después de que se detiene el proceso de ejecución de programa. Como resultado, la dirección de memoria de programa actual se apila automáticamente y la dirección por defecto (predefinida por el fabricante) se escribe en el contador de programa. La localidad en la que el programa continúa con la ejecución se le denomina vector de interrupción. En el caso del microcontrolador PIC16F887 esta dirección es 0x0004h. Como se muestra en la siguiente figura la localidad que contiene el vector de interrupción se omite durante la ejecución de programa regular. Una parte de programa que se ejecutará al hacer una petición de interrupción se le denomina rutina de interrupción. Su primera instrucción se encuentra en el vector de interrupción. Cuánto tiempo tardará en ejecutar esta subrutina y cómo será depende de la destreza del programador así como de la fuente de interrupción. Algunos microcontroladores tienen más de un vector de interrupción (cada petición de interrupción tiene su vector), pero en este caso sólo hay uno. En consecuencia, la primera parte da la rutina de interrupción consiste en detectar la fuente de interrupción. Controlador De Temperatura Digital Automatización y Control Industrial Alumnos: Guillermo Scarello - Jorge F. Folco Página | 20 Por fin, al reconocer la fuente de interrupción y al terminar de ejecutar la rutina de interrupción el microcontrolador alcanza la instrucción RETFIE, toma la dirección de la pila y continúa con la ejecución de programa desde donde se interrumpió. El LCD Antes de aparecer los módulos LCD, se utilizaban los Displays de siete segmentos para poder mostrar la información. Tenían una gran limitación de poder mostrar los caracteres alfa numéricos y símbolos especiales, también consumían demasiada corriente y ocupaban demasiado espacio físico. Posteriormente aparecieron otros tipos de displays más complejos que podían mostrar algunos caracteres y símbolos; pero tenían de igual manera mucho consumo de corriente y espacio físico ocupaban también bastante espacio físico. Finalmente aparecieron los módulos LCD o pantallas de cristal líquido la cual tiene la capacidad de mostrar cualquier carácter alfa numérico. Estos dispositivos ya vienen con su pantalla y toda la lógica de control pre programada en la fábrica y lo mejor de todo es que el consumo de corriente es mínimo y no hace falta realizar tablas especiales como se hacía anteriormente con los displays de siete segmentos. La definición más clara de un LCD es: una pantalla de cristal líquido que visualiza unos ciertos caracteres. En total se pueden visualizar 2 líneas de 16 caracteres cada una (es el caso del que se utiliza en este circuito), es decir, 2x16=32 caracteres. A pesar de que el display solo puede visualizar 16 caracteres por línea, puede almacenar en total 40 por línea. Es el usuario el que especifica qué 16 caracteres son los que se van a visualizar. Tiene un consumo de energía de menos de 5mA y son ideales para dispositivos que requieran una visualización pequeña o media. Caracteres de un LCD El LCD dispone de una matriz de 5x8 puntos para representar cada carácter. En total se pueden representar 256 caracteres diferentes. 240 caracteres están grabados dentro del LCD y representan las letras mayúsculas, minúsculas, signos de puntuación, números, etc. Existen 8 caracteres que pueden ser definidos por el usuario. Controlador De Temperatura Digital Automatización y Control Industrial Alumnos: Guillermo Scarello - Jorge F. Folco Página | 21 En la siguiente tabla se muestran los caracteres que es capaz de representar la pantalla LCD y su respectivo código en binario. La conexión más recomendable del módulo LCD al pic requiere 4 pines para los datos (D7:D4), 1 pin para habilitar/deshabilitar el LCD (E) y 1 pin para los modos comando/carácter (RS). Se destaca que el pin VEE puede ir a un potenciómetro el cual se utiliza para manejar el contraste de la pantalla (en el esquema del circuito se muestra su conexión). Controlador De Temperatura Digital Automatización y Control Industrial Alumnos: Guillermo Scarello - Jorge F. Folco Página | 22 En la siguiente tabla se presentan los bornes del LCD y la función que cumplen. Controlador De Temperatura Digital Automatización y Control Industrial Alumnos: Guillermo Scarello - Jorge F. Folco Página | 23 Sensor de temperatura Los sensores de temperatura son dispositivos que transforman los cambios de temperatura en cambios en señales eléctricas que son procesados por equipo eléctrico o electrónico. Hay tres tipos de sensores de temperatura, los termistores, los RTD y los termopares. El sensor de temperatura, típicamente suele estar formado por el elemento sensor, de cualquiera de los tipos anteriores, la vaina que lo envuelve y que está rellena de un material muy conductor de la temperatura, para que los cambios se transmitan rápidamente al elemento sensor y del cable al que se conectarán el equipo electrónico. Termistor: el termistor está basado en que el comportamiento de la resistenciade los semiconductores es variable en función de la temperatura. Existen los termistores tipo NTC y los termistores tipo PTC. En los primeros, al aumentar la temperatura, disminuye la resistencia. En los PTC, al aumentar la temperatura, aumenta la resistencia. El principal problema de los termistores es que no son lineales según la temperatura por lo que es necesario aplicar fórmulas complejas para determinar la temperatura según la corriente que circula y son complicados de calibrar. RTD (resistance temperature detector): un RTD es un sensor de temperatura basado en la variación de la resistencia de un conductor con la temperatura. Los metales empleados normalmente como RTD son platino, cobre, níquel y molibdeno. De entre los anteriores, los sensores de platino son los más comunes por tener mejor linealidad, más rapidez y mayor margen de temperatura. Termopar: el termopar, también llamado termocupla y que recibe este nombre por estar formado por dos metales, es un instrumento de medida cuyo principio de funcionamiento es el efecto termoeléctrico. Un material termoeléctrico permite transformar directamente el calor en electricidad, o bien generar frío cuando se le aplica una corriente eléctrica. El termopar genera una tensión que está en función de la temperatura que se está aplicando al sensor. Midiendo con un voltímetro la tensión generada, conoceremos la temperatura. Los termopares tienen un amplio rango de medida, son económicos y están muy extendidos en la industria. El principal inconveniente estriba en su precisión, que es pequeña en comparación con sensores de temperatura RTD o termistores. LM35 El LM35 es un sensor de temperatura integrado de precisión calibrada de 1ºC. La salida es muy lineal y cada grado centígrado equivale a 10 mV en la salida. http://medirtemperatura.com/PT100-PT1000.php Controlador De Temperatura Digital Automatización y Control Industrial Alumnos: Guillermo Scarello - Jorge F. Folco Página | 24 Este integrado tiene una ventaja sobre los sensores de temperatura lineal calibrada en grados Kelvin: que el usuario no está obligado a restar una gran tensión constante para obtener grados centígrados. El dispositivo se ajusta y calibra durante el proceso de producción. La baja impedancia de salida, la salida lineal y la precisa calibración inherente, permiten la creación de circuitos de lectura o control especialmente sencillos. El LM35 puede funcionar con alimentación simple o alimentación doble (+ y -). Requiere sólo 60 µA para alimentarse, y bajo factor de auto-calentamiento, menos de 0,1ºC en aire estático. El LM35 está preparado para trabajar en una gama de temperaturas que abarca desde los -55ºC bajo cero a 150ºC. Se aclara que el presente proyecto se utilizara para medir temperaturas positivas, es decir, temperaturas en el rango de 0°C a 150°C. Para más especificaciones técnicas y de diseño remitirse al datasheet en la sección de anexos. Teoría de funcionamiento del circuito Una vez explicados los componentes principales del circuito se verá cómo se relacionan unos con otros para llevar a cabo el control de la variable, que en este caso es la temperatura. El integrado LM35 es el encargado de sensar constantemente la temperatura que se está midiendo (señal analógica), este transforma dicha variable física en una eléctrica a una relación de 1°C/10mV como se estipulo anteriormente. Si se entrara desde el sensor directamente al pic, las lecturas en el lcd serian erróneas, ya que aumentaría 1°C por cada 2°C de aumento del sensor, esto es debido a lo siguiente: El conversor analógico/digital del pic (ADC) tiene una tensión de referencia interna de 5V. En la configuración de nuestro programa hemos declarado que el pic trabaje con una resolución de 8 bits, esto indica la resolución máxima con la que trabajara el microcontrolador. El significado de esto es que la conversión analógica a digital que realiza el módulo ADC del pic tiene 8 Controlador De Temperatura Digital Automatización y Control Industrial Alumnos: Guillermo Scarello - Jorge F. Folco Página | 25 bits, o sea, tomara valores comprendidos entre 0 y 255 que corresponden a 256 bits de resolución en total (teniendo en cuenta que cada punto es 1°C). Según los anterior la resolución del pic será de 5V/256 bits, lo que equivale a aproximadamente 20mV/bit, o sea, 20mV/°C. Esto quiere decir que cada 20mV de aumento en el adc el pic aumentara un valor de un bit, que corresponde a un aumento de 1°C en la pantalla del lcd. Por esta razón para que haya una lectura exacta en lcd se deberá aumentar la salida del sensor de 10mV/°C a 20mV/°C. Esto se logra con el amplificador operacional. Este está configurado como amplificador no inversor y tiene una ganancia de 2 (necesaria para corregir el error anterior). 𝐺𝑎𝑛𝑎𝑛𝑐𝑖𝑎 = 1 + 𝑅 𝑅 = 2 El programa realizado y “quemado” en el PIC es el que contiene las instrucciones para que el microcontrolador muestre los datos en la pantalla. Dentro de este programa hay un ciclo infinito que se utiliza para mantener una medición constante a través del tiempo de la temperatura y poder así visualizar los posibles cambios de la variable. Ahora bien, lo descripto anteriormente solo puede utilizarse como un sensor de temperatura, es decir, un simple termómetro. Con lo cual no se tendría ninguna influencia en el control de la variable. Para esto se provee al programa de instrucciones para determinar valores máximos y mínimos de temperatura, y de esta forma poder tener el control necesario para modificar la variable (la temperatura) al propósito requerido. Para establecer dichos valores se utiliza una interrupción en el programa para poder entrar a un “SETUP” el cual tiene dentro las condiciones para establecer los valores de máxima y mínima temperatura, para entrar al SETUP se utiliza la llave doble SW1. Los pulsadores P1 y P2 se utilizan para setear el valor mínimo de temperatura admisible, y los pulsadores P3 y P4 para setear el valor máximo. Una vez configurado dichos valores la llave SW1 volverá a la configuración de TERMOMETRO. De acuerdo al valor de temperatura existente se pueden encontrar tres opciones en las salidas RC0 y RC1: Si la temperatura medida está entre el rango configurado, los pines de salida RCO y RC1 mantendrán un nivel lógico bajo. Si la temperatura es menor al valor mínimo establecido, la salida RC1 se mantendrá en nivel bajo pero la de RC0 tendrá un valor alto por lo que el diodo led D2 se prendera. D2 es una indicación solamente para observar que existe un déficit de temperatura, en la realidad este diodo se intercambiaría por algún sistema o dispositivo que pudiera aumentar la temperatura y así llevarla a los valores preestablecidos. Un ejemplo Controlador De Temperatura Digital Automatización y Control Industrial Alumnos: Guillermo Scarello - Jorge F. Folco Página | 26 podría ser la colocación de un comando para el conexionado de un instrumento calefactor. Si la temperatura es mayor al valor máximo establecido, la salida RC0 se mantendrá en nivel bajo pero la de RC1 tendrá un valor alto por lo que el diodo led D1 se prendera. D1 es una indicación solamente para observar que existe un exceso de temperatura en el sistema a controlar, en la realidad este diodo se intercambiaría por algún sistema o dispositivo que pudiera disminuir la temperatura y así llevarla a los valores preestablecidos. Un ejemplo podría ser la colocación de un comando para la conexión de un instrumento de refrigeración (aire acondicionado). Simulación del circuito Lo siguiente será mostrar una simulación hecha del circuito en el programa Proteus 8 Professional, indicando como sería el funcionamiento en la realidad del proyecto. En la primera figura se muestra el encendido del controlador de temperatura este indicara en forma destellante la frase INICIANDO… Luego de esto semostrara la frase CONTROL DE TEMPERATURA. Controlador De Temperatura Digital Automatización y Control Industrial Alumnos: Guillermo Scarello - Jorge F. Folco Página | 27 Lo anterior solo es una presentación que indica el propósito del circuito, luego de estas operaciones, sigue la operación mencionada anteriormente de medición de temperatura a través de un bucle infinito. En la siguiente figura se puede observar que la toma de datos corresponde a la lectura representada en el LCD, y se puede fijar en los voltímetros las respectivas tensiones que hay a la salida del sensor y a la salida del amplificador operacional. Fácilmente se observa que es el doble concluyendo que en dicha configuración el operacional tiene ganancia positiva de 2. Las siguientes figuras mostraran como se visualiza el SETUP del circuito. Esto se realiza primeramente representando la palabra “SETUP” en la pantalla durante unos segundos y luego entra en el modo de configuración de valores. Controlador De Temperatura Digital Automatización y Control Industrial Alumnos: Guillermo Scarello - Jorge F. Folco Página | 28 Luego cambiaremos el valor del sensor por arriba del valor máximo y por debajo del valor mínimo para visualizar el cambio de estado de las salidas que indican exceso y déficit de temperatura. Controlador De Temperatura Digital Automatización y Control Industrial Alumnos: Guillermo Scarello - Jorge F. Folco Página | 29 Como se puede observar existe un exceso de temperatura indicado por el led ya que el valor medido de 33°C es mayor que los 32°C seteados anteriormente. Controlador De Temperatura Digital Automatización y Control Industrial Alumnos: Guillermo Scarello - Jorge F. Folco Página | 30 Como se puede observar existe un déficit de temperatura indicado por el led ya que el valor medido de 6°C es menor que los 8°C seteados anteriormente. Programa en lenguaje C A continuación se muestra el programa en lenguaje C que hace posible el funcionamiento del circuito. No se incluyen las librerías del PIC16F887a y la del LCD, estas se adjuntan junto con el cd. /*PROGRAMA PARA CONTROLADOR DE TEMPERATURA DIGITAL GUILLERMO SCARELLO, JORGE F. FOLCO ING. ELECTROMECANICA AUTOMATIZACION Y CONTROL INDUSTRIAL*/ //ARCHIVOS DE CABECERA #include <16f877.h> //FUSIBLES DEL MICRO: //XT = USA CRISTAL COMO OSCILADOR //NOWDT = NO UTILIZAMOS EL WATCH DOG TIMER //NOPROTECT = SIN PROTECCIÓN DE CÓDIGO //NOLVP=DESHABILITA EL LOW VOLTAGE PROGRAMMING. #fuses XT,NOWDT,NOPROTECT,NOLVP //CRISTAL A 4MHZ #use delay(clock=4000000) //INCLUIMOS LA LIBRERÍA PARA USO DEL LCD #include "lib/LCD.c" //INICIALIZAMOS VARIABLES GLOBALES int tempMin = 0; int tempMax = 0; //INICIO DE LA INTERRUPCION EXTERNA POR RB0 #INT_EXT void setup(){ //LEE VALORES DE TEMPERATURA MAXIMAY MINIMA DE LA MEMORIA EEPROM tempMin = read_eeprom(0); tempMax = read_eeprom(1); //LIMPIA PANTALLA LCD Y ESCRIBE LA PALABRA "SETUP" EN LA POSICION 7,1 DEL MISMO Y LO DEJA PLASMADO POR 1,5 SEGUNDOS, LUEGO LIMPIA PANTALLA LCD lcd_putc("\f"); lcd_gotoxy(7,1); lcd_putc("SETUP"); delay_ms(1500); lcd_putc("\f"); //SI EL PIN RBO DEL MICRO ES DISTINTO DE CERO SE ESTABLECE UN BUCLE INFINITO while(input(PIN_B0) != 0){ lcd_gotoxy(5,1); Controlador De Temperatura Digital Automatización y Control Industrial Alumnos: Guillermo Scarello - Jorge F. Folco Página | 31 //ESTABLECE LA RELACION PARA INCREMENTAR EL VALOR DE TEMPERATURA MIN. ADMISIBLE if(input(PIN_B1) == 0 && input(PIN_B2) == 1){ tempMin++; } //ESTABLECE LA RELACION PARA INCREMENTAR EL VALOR DE TEMPERATURA MAX. ADMISIBLE if(input(PIN_B2) == 0 && input(PIN_B1) == 1){ tempMax++; } //ESTABLECE LA RELACION PARA DISMINUIR EL VALOR DE TEMPERATURA MIN. ADMISIBLE if(input(PIN_B3) == 0 && input(PIN_B4) == 1){ tempMin--; } //ESTABLECE LA RELACION PARA DISMINUIR EL VALOR DE TEMPERATURA MAX. ADMISIBLE if(input(PIN_B4) == 0 && input(PIN_B3) == 1){ tempMax--; } // IMPRIME EN LA PANTALLA LOS VALORES DE TEMPERATURA MAX. Y MIN. ADMISIBLES, Y LOS ESCRIBE (GUARDA) EN LA MEMORIA EEPROM DEL MICRO lcd_gotoxy(1,1); printf(lcd_putc, "Temp Min: %3d %cC", tempMin, '°'); lcd_gotoxy(1,2); printf(lcd_putc, "Temp Max: %3d %cC", tempMax, '°'); write_eeprom(0, tempMin); write_eeprom(1, tempMax); //RETARDO ANTIREBOTE delay_ms(250); } //LIMPIA LA PANTALLA DEL LCD lcd_putc("\f"); } // INICIO PROGRAMA PRINCIPAL void main() { //DECLARACION DE VARIABLES LOCALES VALUE Y TEMP int value; float temp; //HABILITAMOS INTERRUPCIONES PARA PODER UTILIZARLA enable_interrupts(GLOBAL); enable_interrupts(INT_EXT); //HABILITAMOS PULLUP'S DEL PUERTO B port_b_pullups(1); //INICIALIZACION DEL DISPLAY lcd_init(); // ESTABLECEMOS PUERTO B Y C COMO SALIDAS RESPECTIVAMENTE set_tris_b(0b1111111); set_tris_c(0b000000); Controlador De Temperatura Digital Automatización y Control Industrial Alumnos: Guillermo Scarello - Jorge F. Folco Página | 32 // VARIABLES PARA USO DE PUERTO ANALOGIO RA0 setup_adc_ports(ALL_ANALOG); setup_adc(ADC_CLOCK_INTERNAL); // LAS SIGUIENTES LINEAS MUESTRAN UN MENSAJE DE INICIO EN FORMA DESTELLANTE lcd_putc("INICIANDO..."); delay_ms(250); lcd_putc("\f"); delay_ms(500); lcd_putc("INICIANDO..."); delay_ms(250); lcd_putc("\f"); delay_ms(500); lcd_putc("INICIANDO..."); delay_ms(250); lcd_putc("\f"); delay_ms(500); lcd_putc("INICIANDO..."); delay_ms(250); lcd_putc("\f"); delay_ms(500); lcd_putc("INICIANDO..."); delay_ms(250); lcd_putc("\f"); delay_ms(500); lcd_putc("INICIANDO..."); delay_ms(250); lcd_putc("\f"); delay_ms(500); lcd_putc("INICIANDO..."); delay_ms(250); lcd_putc("\f"); delay_ms(500); lcd_putc("INICIANDO..."); delay_ms(250); lcd_putc("\f"); delay_ms(500); // BORRAR TODOS LOS CARACTERES Y MUESTRA LA FRASE CONTROL DE TEMPERATURA POR 3,5 SEGUNDOS lcd_putc("\f"); lcd_gotoxy(6,1); lcd_putc("CONTROL "); lcd_gotoxy(3,2); lcd_putc("DE TEMPERATURA"); delay_ms(3500); lcd_putc("\f"); Controlador De Temperatura Digital Automatización y Control Industrial Alumnos: Guillermo Scarello - Jorge F. Folco Página | 33 //BUCLE INFINITO while(1){ // SELECCIONAR EL PIN DE LECTURA (RA0) set_adc_channel(0); // RETARDO DE 50 MICROSEGUNDOS delay_us(50); // GUARDAR EL RESULTADO DE LA LECTURA ANALÓGICA EN "VALUE" value=read_adc(); // ESTABLECE EL VALOR LEIDO EN EL PUERTO ANALOGICO DEL MICRO COMO LA VARIABLE TEMP. SE HACE UN PASO DE TIPO ENTERO A COMA FLOTANTE(CAST) temp=((float)value); // MENSAJE DE TEMPERATURA lcd_gotoxy(1,1); lcd_putc("Temp. actual:"); // MUESTRA LA FRASE ANTERIOR EN EL CARACTER 8 DE LA SEGUNDA LINEA DEL LCD lcd_gotoxy(8,2); printf(lcd_putc,"%f %cC", temp, '°'); delay_ms(500); //COMPARACION QUE DETERMINA SI LA TEMPERATURA LEIDA POR EL SENSOR ES MENOR A LA TEMPERATURA MINIMA ADMISIBLE PROGRAMADA, ACTIVA (PONE A NIVEL LOGICO UNO) LA SALIDA RC0 DEL MICRO if(temp < tempMin){ output_high(PIN_C0); //SINO OCURRE LO ANTERIOR MANTIENE UN NIVEL LOGICO CERO EN EL PIN RC0 DEL MICRO }else{ output_low(PIN_C0); } // COMPARACION QUE DETERMINA SI LA TEMPERATURA LEIDA POR EL SENSOR ES MAYOR A LA TEMPERATURA MAXIMA ADMISIBLE PROGRAMADA, ACTIVA (PONE A NIVEL LOGICO UNO) LA SALIDA RC1 DEL MICRO if(temp > tempMax){ output_high(PIN_C1); //SINO OCURRE LO ANTERIOR MANTIENE UN NIVEL LOGICO CERO EN EL PIN RC1 DEL MICRO }else{output_low(PIN_C1); } } } //FIN DE PROGRAMA Quemador PIC K150 El dispositivo utilizado para grabar el programa en el microcontrolador es el PIC K150, es un programador de bajo costo y alto rendimiento utilizado para el “quemado” (grabado) de chips PIC. Controlador De Temperatura Digital Automatización y Control Industrial Alumnos: Guillermo Scarello - Jorge F. Folco Página | 34 Puede escribir, leer, realizar encriptaciones y otras funciones, se puede utilizar una comunicación USB de alta velocidad, obteniendo una calidad de la programación estable y confiable. Se realiza la verificación de programación de manera completamente automática y contiene asiento programador DIP de 40 pines. Controlador De Temperatura Digital Automatización y Control Industrial Alumnos: Guillermo Scarello - Jorge F. Folco Página | 35 Conclusión A través de los años el automatismo de procesos ha tenido un crecimiento notable gracias a muchas de las ventajas que este provee. Se asegura una mejora en la calidad del trabajo del operador y en el desarrollo del proceso, esta dependerá de la eficiencia del sistema implementado. Se obtiene una reducción de costos, puesto que se racionaliza el trabajo, se reduce el tiempo y dinero dedicado al mantenimiento. Existe una reducción en los tiempos de procesamiento de información. Flexibilidad para adaptarse a nuevos productos y disminución de la contaminación y daño ambiental. Racionalización y uso eficiente de la energía y la materia prima. Aumento en la seguridad de las instalaciones y la protección a los trabajadores. La realización de este informe establece lo necesario para poder realizar un circuito razonablemente sencillo que se puede utilizar como controlador de temperatura. Se han plasmado conocimientos adquiridos durante el año lectivo y se ha aprendido a utilizar las herramientas correspondientes para llevar a cabo dicho proyecto. Además se ha aprendido las bases para llevar a cabo un proceso de programación, aspecto fundamental en un sistema controlado por microcontrolador. Este proyecto es apto para su utilización en una amplia gama de rubros, tanto industriales como domésticos (Heladeras, freezers, vitrinas comerciales, aires acondicionados, calefacción de edificios, etc). De aquí las razones para llevarlo a cabo. Como fin de nota se puede concluir que es un proyecto relativamente sencillo de realizar, accesible económicamente, su utilización es muy fácil y tiene un rango de aplicaciones muy amplio. Se puede considerar como un trabajo muy interesante para realizar a la hora de pensar en sistemas de control de temperatura. Controlador De Temperatura Digital Automatización y Control Industrial Alumnos: Guillermo Scarello - Jorge F. Folco Página | 36 ANEXOS Controlador De Temperatura Digital Automatización y Control Industrial Alumnos: Guillermo Scarello - Jorge F. Folco Página | 37 A continuación se dan las hojas de datos del sensor, las del PIC se adjuntan junto al cd. Controlador De Temperatura Digital Automatización y Control Industrial Alumnos: Guillermo Scarello - Jorge F. Folco Página | 38 Controlador De Temperatura Digital Automatización y Control Industrial Alumnos: Guillermo Scarello - Jorge F. Folco Página | 39 Controlador De Temperatura Digital Automatización y Control Industrial Alumnos: Guillermo Scarello - Jorge F. Folco Página | 40 Controlador De Temperatura Digital Automatización y Control Industrial Alumnos: Guillermo Scarello - Jorge F. Folco Página | 41 Controlador De Temperatura Digital Automatización y Control Industrial Alumnos: Guillermo Scarello - Jorge F. Folco Página | 42 Controlador De Temperatura Digital Automatización y Control Industrial Alumnos: Guillermo Scarello - Jorge F. Folco Página | 43 Controlador De Temperatura Digital Automatización y Control Industrial Alumnos: Guillermo Scarello - Jorge F. Folco Página | 44 Controlador De Temperatura Digital Automatización y Control Industrial Alumnos: Guillermo Scarello - Jorge F. Folco Página | 45 Controlador De Temperatura Digital Automatización y Control Industrial Alumnos: Guillermo Scarello - Jorge F. Folco Página | 46 Bibliografía y páginas web Microcontroladores PIC, 3era. Edición – José Angulo Usategui, Ignacio Angulo Martínez. PROGRAMACION EN C, metodología, algoritmos y estructura de datos – Luis Joyanes Aguilar, Ignacio Zahonero Martínez. Electrónica analógica – Jorge S. Tome http://electronica.webcindario.com/componentes/lm35.htm http://medirtemperatura.com/sensor-temperatura.php http://www.mikroe.com/chapters/view/81/ http://es.wikipedia.org http://www.datasheetcatalog.com http://electronica.webcindario.com/tutoriales/pic4.htm http://electronica.webcindario.com/componentes/lm35.htm http://medirtemperatura.com/sensor-temperatura.php http://www.mikroe.com/chapters/view/81/ http://es.wikipedia.org/ http://www.datasheetcatalog.com/ http://electronica.webcindario.com/tutoriales/pic4.htm
Compartir