Logo Studenta

239080051-Automatizacion-Industrial

¡Este material tiene más páginas!

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

Continuar navegando