Sensor de temperatura y control por medio de PIC16F887
En primer lugar, la temperatura es una magnitud física que poseen los cuerpos rígidos, gases etc. La temperatura es energía cinética que contiene ese cuerpo en un instante de tiempo, que es lo mismo que la medida en la que se puede dictaminar si un cuerpo está caliente o esta frío. Como consecuencia, este parámetro se puede medir con un sensor de temperatura y esto se cuantifica mediante escalas de temperatura como lo son Celsius, Kelvin, Fahrenheit.
La temperatura es un factor a considerar para todo, debido a que un incremento en temperatura de por ejemplo de una maquina industrial causaría desperfectos en ella. Tan solo en el cuerpo humano un incremento de temperatura mayor a 36 grados Celsius puede causar un grave daño en el organismo. Además de la misma manera pasa cuando se tienen temperaturas menores a los 36 grados Celsius se podría caer hipotermia, por ello el control de la temperatura es un factor a considerar. Por consiguiente la industria no es la excepción , ya que la temperatura pude influir en causar daños a la misma máquina o al producto.
Para empezar, el control de temperatura ha sido un tema de interés para la ingeniería. Como resultado, se han implementado diferentes sistemas de control de temperatura, ya sea para aumentar o bajar la temperatura. Por lo tanto, se tiene sistemas de calefacción, ciclos de refrigeración , lavado de aire que comúnmente se le conoce como aire acondicionado, entre otros procesos de control. Para el control de la temperatura se hace uso de la tecnología. Finalmente en base a estas consideraciones los actuadores entran en acción, ya sean ventiladores, ciclos de refrigeración etc.
Objetivos de sensor y control de temperatura
- Desarrollar un sistema automático para la regulación y control de la temperatura mediante un Sensor de temperatura aplicado a una maquina industrial.
- Poner en práctica los conocimientos de programación de microcontroladores PIC.
- Dar una aplicación real de los circuitos digitales que sean de utilidad.
Material y equipo para proyecto PIC
- Programador de PIC
- 1 PIC 16F887
- 1 Cristal de cuarzo a 20Mhz
- 10 LED’s de 5 mm.
- 10 Resistores de 330 Ω. a ¼ watt
- Cable de colores 24 AWG.
- 2 Tabletas de prueba Protoboard.
- 2 Capacitor Cerámico de 22 uF.
- 1 Fuente de laboratorio.
- 2 Cables Banana- Caimán.
- 4 Push button
- 2 Sensor de temperatura LM35
- L293D
- 2 Ventiladores de 12 V
- Pantalla LCD 16×2
- 1 Buzzer
Propuesta de sensor de temperatura y control con L293
Para empezar, se requiere diseñar un sistema de control que sea capaz de sensar la temperatura en tiempo real mostrada por medio de un LCD. El sistema tendrá tres rangos de temperatura, menor a 0 °C, de 0 °C a 30 °C y mayor a 30 °C, en este caso, por lo tanto, se mandara una alerta. Resumidamente para controlar la temperatura se activaran dos ventiladores en proporción al rango que se encuentre la temperatura actual. El sensor de temperatura es la entrada a nuestro sistema.
A continuación se presenta el diagrama de bloques, por lo que podemos observar de manera general el sistema. En este mismo diagrama se muestra, la internación entre los elementos, como es que se conectan y cómo funciona el circuito.

Desarrollo del sensor de temperatura y control
En primer lugar, el diagrama de flujo es un estructura gráfica que permite visualizar el algoritmo a seguir. Para tener una programación mas estructurada del microcontrolador, debido a que se desea tener un mayor orden en el diseño del sistema de control de temperatura.

A partir del diagrama de flujo se procedió a la programación del microcontrolador empelando el software PIC C CCS, en lenguaje C. El programa se muestra a continuación, con sus respectivos comentarios.
Diagrama eléctrico esquemático del control de temperatura
Una vez depurado de errores y sintaxis errónea se procedió a compilar el programa el cual no tiene ningún error. Posteriormente se simuló el programa en PROTEUS y se comprobó que efectivamente el circuito de control cumpliera con las especificaciones y objetivos del proyecto. Dando resultados positivos de esta manera se paso al siguiente paso, a grabar el chip por medio una tarjeta de desarrollo para el PIC16F887.

En la Figura se muestra la simulación del circuito el cual consiste en diferentes etapas las cuales son las siguientes:
- Procesamiento: El cual se da por medio del microcontrolador PIC16F887.
- Sensores: Por medio de dos sensores de temperatura LM35.
- Actuadores: Se lleva a cabo por medio de dos ventiladores de 12 V a 1.2 A.
- Despliegue: Este forma dos partes: Ambiente gráfico en C# mediante comunicación RS232 y LCD de 16×2 pixeles.
- Interacción: Por medio de dos botones dedicados para cada sensor de temperatura.
- Alarma: Esta conforma por tres LED´s los cuales fingirán como semáforos, cuando si la temperatura es mayor a 40 °C se activa una alarma sonora.
Diagrama a detalles sensor de temperatura y ventiladores
Posteriormente se comenzara la lectura de la temperatura proporcionada por un Sensor de temperatura LM35. Donde el microcontrolador PIC comenzara la lectura del la señal proporcionada por el sensor de temperatura.A continuación se muestra cómo es que se da el despliegue de la señal por medio del LCD, además de la comunicación RS232 esta se simulara por medio de una terminal virtual que es una herramienta que nos proporciona el simulador Proteus.

En este caso se muestra una temperatura de 45°C lo cual según nuestro rango de temperaturas es alto. Debido a esto, se mandara una señal de alarma por medio de un buzzer, además de que en el semáforo se debe encender el LED rojo. A su vez, además deben de estar funcionando ambos ventiladores, con el fin de reducir la temperatura.

En el caso de que se encuentre una temperatura en el rango medio, que debe ser el adecuado, se procede de la misma forma. En este caso solo se acciona un motor, con el fin de eficiente el suministro de energía, el despliegue se da de la misma manera, esto se ilustra a continuación.

Para último caso que la temperatura sea menor de 10 °C, el despliegue del LCD, el semáforo, será de la siguiente manera.

Ese es el funcionamiento del circuito de control, se han tratado los tres posibles casos. Por lo que es de esta manera que el sistema funciona.
Programa en C# para el sistema de control y comunicación
En este ambiente de control gráfico tenemos que cuenta tres botones uno de ellos nos conecta al PIC y comienza a recibir datos por medio de la comunicación RS232. El segundo botón nos desconecta de dicha conexión y el tercer botón se utiliza para salir de la aplicación. Así mismo cuenta con una etiqueta la cual nos indica el estado de nuestra aplicación, ya sea conectado o desconectado. Otra etiqueta nos informa el estado de los motores es decir activado o desactivado. La tercer etiqueta nos indica la temperatura actual que se encuentra nuestro dispositivo.

En esta imagen observamos que la conexión es exitosa y así mismo tiene una temperatura de 9°C. Por lo tanto su color es verde y así mismo se encuentran los motores desactivados

En esta siguiente imagen observamos que ahora la temperatura es de 19°C. Por lo tanto, nos encontramos en una alerta media lo cual lo vemos en la imagen ya que es de color amarillo y se encuentra un motor activado

Para esta imagen vemos que la temperatura es de 40°C. Por lo tanto nos manda una señal de alerta así como los indicadores color rojo
Implementación física del sistema controlador de temperatura
Ya pasada la etapa de programación y simulación del micrcontrolador, se procedió a la parte de la implantación física.
- Implementación del Circuito
- Implementación de una maqueta ilustrativa

La parte de los ventiladores se implemento por medio de una etapa de amplificación. Empleado un chip L293D que es un puente H, ya que los ventiladores funciona a 12 V y a 1.2V. El microcontrolador no es capaz de suministrar tal energía, se muestra a continuación el ventilador a emplear.


Los resultados obtenidos se muestran en las siguientes imágenes. Las imagenes muestran el proyecto final, ya implementado en su totalidad.

Código de microcontrolador PIC16F887
Código de programación del micrcocontrolador en lenguaje C por medio del compilador CCS.
Programa en c# para el sistema de control y comunicación
Conclusiones de sensor de temperatura y control con PIC
El convertidor analógico digital es una herramienta con bastante utilidad para realizar el control de temperatura. Ya que lo que hace, es convertir una señal analógica de un sensor de temperatura en una digital. Lo útil de esta parte es que sistemas o dispositivos actuales manejan señales digitales. Las señales ya digitalizadas son mas fáciles de procesar y de manipular, además de poder ser empleadas en algún caso especifico de implementación de sensado o control con temperatura.
El ADC del PIC además es capaz de leer señales de audio, video, se sensores de presión, temperatura, proximidad etc. Este ADC contiene 14 canales, por lo que se pueden tener varias señales siendo adquiridas. Existen sensores que entregan una señal ya digital, en este caso esos sensores ya tienen integrado un ADC. En el caso de que entreguen una señal digital, usualmente utilizan protocolos de comunicación. Los protocolos de comunicación convencionales para este tipo de sensores son I2C y SPI.
En este proyecto se pudo diseñar satisfactoriamente. En este caso, un sistema de control inteligente y automático que sea capaz de mantener una temperatura de control. El control utilizado en este proyecto es extremadamente simple, ya que es un control básico. Sin embargo, podemos concluir que gracias al sensor de temperatura y las condiciones de control, el sistema funciona de manera satisfactoria.
Bibliografía
Ronald J. Tocci. «Sistemas digitales: principios y aplicaciones»,8 edición. México DF 2003.
Datasheet PIC16F887 Microchip Technologic inc 2001
Eduardo García Brejio «Compilador C CCS y simulador Proteus para microcontroladores PIC», 2 edición Editorial Alfaomega, México DF2008
Autor: Autor: Méndez Cruz Juan Daniel
Revisión 12/05/2017 Hector Torres

Gracias por compartir informacion en español :c fue un gran problema para mi encontrar una pagina tan buena como esta donde expliquen bien cada paso y en español lo facilito muchisimo les doy las gracias :D
los use de apoyo espero que no les moleste
Claro que no nos molesta Alejandro,
Para esto tenemos esta información, para ayudar y compartir el trabajo realizado por nosotros. Puedes utilizar la info que encuentres aqui para lo que necesites. Saludos y gracias por tus comentarios.
Buen programa igual soy ingeniero y tengo un problema con este pic que el uart me funciona, pero solo para enviar , en la parte de recibir no me recibe ningun dato, te pido el favor si me puedes ayudar y te comparto la informacion, porque recien volvi a los pic y este es el que se usa en colombia normalmente.
Hola que tal, no tengo mas informacion, este tutorial nos lo compartio un cliente, saludos.
ah bueno muchas gracias también me gustaría compartir en esta pagina mis trabajos para que mas gente se guíe en la programacion se pic
Puedes compartirlo donde tu gustes Reynel. Saludos
Hola buenos días disculpa las molestias, quisiera saber si me podrías facilitar el diagrama para poder crear mi circuito en un protobar por favor es que si lo necesito saludos y gracias y me podrías hacer ese favor es que soy nuevo en esto y aun me cuesta trabajar con los circuitos.
Buenas Tardes
Me gustaria saber como se llama modulo donde pones el pic16f887 y lo estas conectando por USB
Jose es un programador de PICs, nosotros en tienda tenemos el siguiente: https://hetpro-store.com/pickit3-programador-compatible.html
Muy interesante el proyecto, me podria decir porque sale error cuando lo compilo? tengo el programa PIC CCS. Ayuda!!
Kevin, cual es el error que te marca? para revisarlo.
Jose es un programador de PICs, nosotros en tienda tenemos el siguiente: https://hetpro-store.com/pickit3-programador-compatible.html
hola como estan quisiera que me ayudaran sobre este proyecto mi consulta es los pulsadores son para activar los sensores en que pin del pic van conectados y los ventiladores ayudeme con ese dato gracias
En este ambiente de control grafico tenemos que cuenta tres botones uno de ellos nos conecta al Pic y comienza a recibir datos por medio de la comunicación RS232, el segundo botón nos desconecta de dicha conexión y el tercer botón se utiliza para salir de la aplicación. Saludos
hola , que excelente explicación, soy estudiante, y necesito hacer lo mismo que plasmas, pero con el lenguaje xc8, seria posible que me colaboraran con eso, seria de gran ayuda para mi, espero su pronta respuesta
Freddy, ya intentaste portar el codigo de CCS a XC8, debería de ser similar. Te comento por que por lo regular no hacemos tutoriales iguales para diferentes lenguajes.
Hola, muy interesante el articulo, de pronto han considerado los módulos esp8266 o nodeMCU que tienen módulo WIFI? sería muy bueno tener aplicaciones tan claras con esos potentes módulos.
Andres, si excelentes módulos. Ahorita están preparando ya un tutorial del ESP8266 para IoT, para que estes al pendiente.
Disculpa de casualidad tendras el diagrama de como va conectado??, espero me puedas ayudar con eso por favor
Hola, Espero tengan buenos días.
Quisiera saber si me podrían proporcionar el diagrama eléctrico del circuito y si saben si es posible adherirle una resistencia que genere calor cuando la temperatura sea baja.
Desde ya muchas gracias.
Hola gracias y esperamos que usted tengan un buen dia, desafortunadamente no contamos con el diagrama solo con lo quetenemos publicado aqui, saludos
disculpa lo compilo en mplab y me aparece este mensaje «Could not spawn language tool. Check command-line options. (740)» no se que hacer espero me puedas ayudar
Lo sentimos no contamos con mas informacion respecto a este
Una pregunta que programa uso para el interfaz gráfico?
Hola, donde podria encontrar el programador de PIC que usas para la protoboard?
Hola buen día si requiero haer un control de tempertatura para que esta se mantenga en 120°C es posible hacerlo como se plantea aqui? Usando el sensor LM35. Gracias
Ann te recomiendo usar un Arduino con la opción de control PID.
CÓDIGO DE MICROCONTROLADOR PIC16F887
Código de programación del micrcocontrolador en lenguaje C por medio del compilador CCS.
//Mendez Cruz Juan Daniel
//Carlos Chavez
//Control de temperatura por medio de dos sensores LM35 controlados por PIC16F887
//Rangos de Temperatura baja>10 grados C,Temperatura media[10,30] grados C
//Temperatura alta> 40 grados C, para temperatura media se acciona un ventilador
//Para Temperatura alta se acciona segundo ventilador se dispara una alarma
este programo cuando copio en cc compiler me sale mucho errores ? me podría ayudar
ATT: andres felipe mieles quintana
andres felipe
buenas tardes
le agradeciera me ayudara con la programación tengo problemas cuando copio cc compelir me manda todo error
este mi correo : ande-1994@hotmail.com
muchas gracias que tenga linda noche
Hola buenas tardes disculpa me podrias mandar el programa de compilacion por favor y el diagrama del circuito ya que no se ve muy bien por favor? este es mi correo te lo agradeceria demasiado guillermobaltazarvaldez@gmail.com
Una pregunta como logras la comunicación rs232 que no veo en la imagen ningun cable hacia pc, o es que a caso es posible hacer eso desfe el puerto de la quemadora de pics?
Hola, ya no tenemos contacto con la persona que diseño el tutorial, pero debe de ser un puerto serial virtual que genera el puerto USB del microcontrolador, la conexión debe de ser mediante el cable USB, saludos.
Hola existe la posibilidad de que me enviaras el diagrama del circuito y el programa para compilar??? mi correro es : caredurole29@gmail.com
Hola buenas tardes, tengo problemas para leer el diagrama del circuito y no veo como va conectado cada elemento, si me lo pueden enviar con mejor nitidez seria perfecto.
joserivasm94@gmail.com
gracias disculpe las molestias.
Muy buenas tardes. Excelente trabajo. voy a tomarlo como referencia para un trabajo parecido.
Tengo una duda sobre los sensores Lm35 en que rango trabaja c/u y el plano en proteus no se ve muy bien.
Agradezco su colaboracion, felicitaciones por su buen trabajo y muchas gracias
Hola existe la posibilidad de que me enviaras el diagrama del circuito y el programa para compilar?
axel2158@gmail.com
ME PODRIAS MANDADR todos los archivos usados a mi correo barretoyeffrey@gmail.com
Me podrías mandar todos los archivos usados a mi correo eduart18_halo@hotmail.com
Buen día, me podrías mandar los archivos a pablojosuemunoz@gmail.com
Buen dia me podrias proporcionar los archivos utilizados y si se pudiera el diagrama del circuito ya que no se percibe muy bien, mi correo es salgarleo@gmail.com. de antemano muchas gracias y excelente pagina
Control de motores: DC, AC, PaP, servomotores.
Tipo de producto
académico
Resolución de casos.
Enunciado
/Consigna
1. Se necesita controlar la velocidad de giro de un ventilador en
función a la información proporcionada por un sensor de
temperatura ambiental cuya señal varía de 1V a 5 V para
temperaturas entre 0° y 50° C.
2. Un interruptor S1 enciende el sistema. Si la temperatura está por
debajo de 18° C, el ventilador permanece apagado. Si la
temperatura pasa de 18° C, el ventilador arranca con una
velocidad de 25% de su velocidad nominal. Si la temperatura
supera los 22° C, el ventilador cambia su velocidad a 50%.
Cuando se pasa de 26° C, el ventilador pasa a girar a 75% de su
velocidad final.
3. Por último, si la temperatura sube a más de 30° C, el motor gira a
velocidad plena. Una vez adquirida una velocidad, el ventilador
no baja al valor inmediatamente anterior hasta que la
temperatura baje a 2° C menos que la temperatura a la cual
alcanzó dicha velocidad. Por ejemplo, si el ventilador está girando
al 75% de su velocidad nominal, no podrá bajar a 50% hasta que
la temperatura sea menor que 24° C.
4. Simultáneamente, un display LCD muestra la temperatura y la
velocidad porcentual del ventilador, si el sistema está apagado,
en el display solo debe aparecer el mensaje “Sistema apagado”.
Hola disculpa, me podrías pasar la Simulación de Proteus por favor
jrp10jrm@outlook.com
Muy buen proyecto para aplicar, Gracias por el detalle
hola buenas noches quisiera comunicarme por via correo electronico con las personas creadoras del proyecto si es posible, para pedirles un favor. mi correo es drosero722@gmail.com
Hola buenas tardes disculpa me podrias mandar el programa de compilacion por favor y el diagrama del circuito ya que no se ve muy bien por favor? este es mi correo te lo agradeceria demasiado jfh13.143@gmail.com