# Control de temperatura comandado por pic



## rsepulveda (Dic 14, 2005)

Si alguien me puede ayudar en esto se lo agradeceria mucho.

Necesito desarrollar un control de temperatura controlador por PIC, la idea es que el actuador sean unas ampolletas que cuando falta calor, aumenten su intensidad y que cuando sea necesario disminuir la temperatura, disminuya la intensidad de la luz de las ampolletas, osea algo similar a un dimmer, pero como esto va a un pic, se me ha complicado poder realizarlo, ya que en un dimmer el ajuste se encuentra en la parte de potencia y aqui necesito que el control sea automatico, osea este en la programacion del pic y ademas un tipo de circuito que se conecte al pic y haga de interface para la parte de potencia.

alguien me dijo haciendo algo como PWM, pero no funciona ya que en este caso variaba el tiempo de encendido y apagado del foco (tipo secuencial).

Quien haya realizado algo similar o tenga una idea como realizarlo, se lo agradeceria mucho.


----------



## maunix (Dic 14, 2005)

No he hecho así como tu lo planteas pero por ahi te puedo echar una mano.
A ver, primero empezaré haciendote alguunas preguntas:
Que es una ampolleta? Son de Corriente Continua o Alterna?  



			
				rsepulveda dijo:
			
		

> Necesito desarrollar un control de temperatura controlador por PIC, la idea es que el actuador sean unas ampolletas que cuando falta calor, aumenten su intensidad y que cuando sea necesario disminuir la temperatura, disminuya la intensidad de la luz de las ampolletas, osea algo similar a un dimmer, pero como esto va a un pic, se me ha complicado poder realizarlo, ya que en un dimmer el ajuste se encuentra en la parte de potencia y aqui necesito que el control sea automatico, osea este en la programacion del pic y ademas un tipo de circuito que se conecte al pic y haga de interface para la parte de potencia.



Aqui estas mezclando un poco las cosas.  Hacer un control sobre la parte de potencia como un dimmer puede ser también automático, hacerlo automático puede ser por la parte de potencia o por la parte de control... todo depende de lo que quieras hacer y como hacerlo. 
Trabajando sin potencia, te evitas problemas "hacia" tu circuito (ruido, algun pico inverso que te dañe el pic, etc) y esto es muy usado.  Uno gralmente usa cosas al medio para no tener que conectar el pic directamente a un rele o a un triac.

Tu sistema de control podría ser PID o simplemente un sistema de tipo 0 (Si o No) todo depende de la rapidez con que tu sistema necesita actuar.  Un control de temperatura que actuará cada 10 horas, da lo mismo que sea PID o de TIPO 0,  hablando de sistemas simples donde no entren en juego algún tipo de calentamiento lento o enfriamiento lento (donde haya grandes masas a calentar o enfriar y donde no sea bueno darle toda potencia de entrada).

Ahora si lo que tu quieres es algo 'gradual' que sea proporcional a la temperatura actual vs la que quieres llegar , entonces debes armar un PID.  Proporcional Integrador Derivador.  Hace años no hago uno pero eso es lo que necesitas, básicamente consiste en armar ecuaciones en diferencias que representen la fuuncion de transferencia de un operacional integrador y derivador.  Osea,  la funcion de transferencia la traduces a un 'algoritmo'.  Hay muchos libros de texto que tratan este tema, como el Kuo Digital.

La señal de entrada vs la que quieres lograr, da la señal de error que te dará (con uun factor de escala) la intensidad que tiene qeu tener tu señal de salida.  Aqui es donde entra en juego tus conocimientos de control.  Si usas corriente alterna debieras traducir esta proporcionalidad a un ángulo de disparo del triac,  el cual se traducirá en un "tiempo de espera" desde el momento en que la señal alterna pasa por 0.   

Espero haber sido esclarecedor y si bien no es el sistema mas complicado del mundo, te digo que te llevará su buen tiempo hacerlo,  al menos si lo quieres hacer bien.


----------



## rsepulveda (Dic 19, 2005)

Gracias, por lo que veo necesito el algoritmo de un PID, porque tengo que hacerlo gradual, pero no he encontrado alguno en Internet, si tuviera uno por ahi, te lo agradeceria.

Asi una ampolleta es una lampara, o foco y es de corriente alterna.

el control va a ser en la parte de control, claro, pero como decia necesito, aumentar y disminuir la intensidad de la lampara, el problema es el siguiente:

en un circuito tipo  dimmer, el potenciometro va directamente conectado a un circuito comun, en donde el potenciometro toma la señal de 220V o 110V, y de ahi va al triac, entonces ahora necesito de una salida del pic llegar al triac, lo que se me dificulta es como lo hago para que con la salida del pic , variar el angulo de disparo del triac, para generar la variacion en la intensidad de la luz de la lampara.

Espero haber sido mas claro esta vez, cualquier cosa respondere cuanto antes.
Gracias
Rodrigo Sepulveda O


----------



## conde_patula (Dic 23, 2005)

Hola, creo que te puedo ayudar, depende de con que lenguaje programes tus pic's, si es con lenguaje C ya la hicimos, el sistema puede ser mas simple de lo que te planteron en la respuesta anterior, PRIMERO debes de leer un poco del  PWM que tiene tu PIC, esto lo puedes leer en la hoja de datos, UN SISTEMA PID NO ES ALGO FACIL, TIENE SU GRADO DE COMPLEJIDAD, PERO PUEDES UTILIZAR UN SISTEMA PI, O UN SISTEMA PROPORCIONAL, PARA QUE SEA UN POCO MAS DIDACTICO PUEDE SER ESTE ULTIMO, Y ES RELATIVAMANTE FACIL, 

LO QUE TENGAS EN TU ENTRADA ANALOGICO DIGITAL LO REFLEJAS EN TU PWM DE TU PIC.

BUENO ESTO ES AGROSO MODO. SI QUIERES QUE TE ECHE LA MANO NADA MAS CONTESTA ESTE MENSAJE. "QUE TAL SI YA RESOLVISTE TU DUDA"

ADIOS


----------



## Raflex (Dic 26, 2005)

Hola, hice un controlador de temperatura hace tiempo, probe diferentes algoritmos y el que mejor funciono fue el PI ya que la variacion de temperatura no es muy rapida, es muy facil implementarlo en un pic si utilizas transformadorrmada Z, para caracterizar el sistema puedes hacerlo como un sistema tipo cero - primer orden, calculas la constante de tiempo para hacer el calculo de los coeficientes.


----------



## Paul Stryker (Ene 1, 2006)

Hola necesito realizar un control de temperatura para un colchon termico que debe trabajar en tres rangos de temperatura, alto (37°C), medio (34 °C) y bajo (31 °C), mi problema radica en que me pidieron programar el pic 16F877A en C, lo que no domino para nada. He encontrado textos en los que no se recomienda usar PID. Les agradeceria mucho su ayuda.


----------



## Alejandra (Ene 13, 2006)

Hola si te fijas en http://www.firtec.com.ar/index_articulos.php en la parte de archivos busca el item "Control de Fase con un 873" te puede servir como idea ya que controla la potencia actuando sobre la fase de alterna es la base de un control proporcional no es exactamente un PID pero de repente como idea inicial te sirve, el archivo se llama Fase.zip 

Saludos 
     Alejandra L.


----------



## Paul Stryker (Ene 14, 2006)

Muchas gracias por tu ayuda. Ya hemos realizado la parte del armado del circuito, pero tenemos otro problema... El laboratorio donde trabajamos se cierra esta semana, y no hemos logrado avanzar en la programación del PIC en C para que controle la temperatura en los tres rangos que les dije antes (37°, 34° y 31°)... hemos tenido muchos problemas con esta parte, si alguien nos podría ayudar dandonos un programa similar de ejemplo, estaríamos más que agradecidos...


----------



## maunix (Ene 19, 2006)

Paul Stryker dijo:
			
		

> Muchas gracias por tu ayuda. Ya hemos realizado la parte del armado del circuito, pero tenemos otro problema... El laboratorio donde trabajamos se cierra esta semana, y no hemos logrado avanzar en la programación del PIC en C para que controle la temperatura en los tres rangos que les dije antes (37°, 34° y 31°)... hemos tenido muchos problemas con esta parte, si alguien nos podría ayudar dandonos un programa similar de ejemplo, estaríamos más que agradecidos...



Amigo, no he realizado controles de temperatura pero si de otras variables dentro de varios rangos.

El punto en cuestión es que que tipo de solución se te puede dar si no postean donde está el problema?  

Qué es exactamente lo que no les funciona? cuales son las complicaciones que se les presentaron? en que parte del código creen que necesitan ayuda?


----------



## Paul Stryker (Ene 20, 2006)

El problema que nosotros tenemos es que nunca habíamos hecho algo similar, y por ende, no estamos seguros en los pasos que hemos realizado. En particular, nunca habíamos programado antes en C, y programar no es exactamente mi fuerte. Tuvimos que conseguir ayuda de otras personas que conocen el lenguaje, pero éstas nunca habían trabajado con PICs, por lo que siempre faltaba una pieza. Es por ello que necesitamos de un programa de ejemplo en lenguaje C para control de PICs. Hemos buscado en varias páginas, pero no hemos encontrado ninguna que resolviera todas nuestras dudas sobre la programación de PICs mediante C. Si alguien sabe de algún link hacia ejemplos de este estilo, que ojalá tengan alguna referencia similar hacia el control de datos de entrada, les estaríamos sumamente agradecidos.


----------



## maunix (Ene 23, 2006)

Paul Stryker dijo:
			
		

> El problema que nosotros tenemos es que nunca habíamos hecho algo similar, y por ende, no estamos seguros en los pasos que hemos realizado. En particular, nunca habíamos programado antes en C, y programar no es exactamente mi fuerte. Tuvimos que conseguir ayuda de otras personas que conocen el lenguaje, pero éstas nunca habían trabajado con PICs, por lo que siempre faltaba una pieza. Es por ello que necesitamos de un programa de ejemplo en lenguaje C para control de PICs. Hemos buscado en varias páginas, pero no hemos encontrado ninguna que resolviera todas nuestras dudas sobre la programación de PICs mediante C. Si alguien sabe de algún link hacia ejemplos de este estilo, que ojalá tengan alguna referencia similar hacia el control de datos de entrada, les estaríamos sumamente agradecidos.



Amigos, el cógio de un algoritmo de control, es lo mismo en C para PIC que en C para PC.  
Esta es la ventaja de trabajar con C!

Es por eso que les pedí que expongan cual es su problema puntual.  Cual es la variable de control? Cual es el resultado de su algoritmo? Tiempo ? SI es tiempo de accionamiento de un actuador, entonces la salida puede enviarse a un timer que se programe para dar la demora esperada.

Me siguen la idea?


----------



## marliog (Mar 10, 2006)

Estoy trabajando en un control de temperatura para una incubadora de huevos. Hasta ahora solo he programado el PIC16F877A (asm) para leer la respuesta del LM35 en un lCD. Está funcionando muy bien, pero a última hora leí en una revista de avicultura que para las incubadoras grandes (industriales) se utilizan SENSORES INFRARROJOS DE TEMPERATURA. No tengo mucha información de estos sensores pero estoy muy interesado. Les agradesco la ayuda que me puedan brindar.


----------



## Anghell (May 8, 2007)

Hola, lei tu comentario y me parecio que tienes cierto dominio sobre el tema, yo requiero de hacer un PID en un pic de la familia 18F el 2684 en especifico. En fin, este PID debera de ser autosintonizable, y escogi el metodo de Ziegler Nichols para hacer los primeros intentos, pero, como ese metodo es un tanto grafico, no creo poder implementarlo en el PIC tal como yo lo deseo. Si me pudieras dar un consejo, acerca de la filosofia o lo que debiera de hacer el programa del PIC a manera de orientarme, te lo agradeceria.


----------



## Anghell (May 8, 2007)

Hola, lei tu comentario y me parecio que tienes cierto dominio sobre el tema, yo requiero de hacer un PID en un pic de la familia 18F el 2684 en especifico. En fin, este PID debera de ser autosintonizable, y escogi el metodo de Ziegler Nichols para hacer los primeros intentos, pero, como ese metodo es un tanto grafico, no creo poder implementarlo en el PIC tal como yo lo deseo. Si me pudieras dar un consejo, acerca de la filosofia o lo que debiera de hacer el programa del PIC a manera de orientarme, te lo agradeceria.


----------



## hectortapia79 (Mar 1, 2008)

conde_patula dijo:
			
		

> Hola, creo que te puedo ayudar, depende de con que lenguaje programes tus pic's, si es con lenguaje C ya la hicimos, el sistema puede ser mas simple de lo que te planteron en la respuesta anterior, PRIMERO debes de leer un poco del  PWM que tiene tu PIC, esto lo puedes leer en la hoja de datos, UN SISTEMA PID NO ES ALGO FACIL, TIENE SU GRADO DE COMPLEJIDAD, PERO PUEDES UTILIZAR UN SISTEMA PI, O UN SISTEMA PROPORCIONAL, PARA QUE SEA UN POCO MAS DIDACTICO PUEDE SER ESTE ULTIMO, Y ES RELATIVAMANTE FACIL,
> 
> LO QUE TENGAS EN TU ENTRADA ANALOGICO DIGITAL LO REFLEJAS EN TU PWM DE TU PIC.
> 
> ...



hola leí los comentarios que hisiste en el foro con respecto al controlador con PI, yo tambien estoy trabajando en uno para controlar una incubadora de huevos de codorniz, en base a uno que ya existe pero lo estoy queriendo automatizar, quisiera que me expliques un poco mas hacerca de lo que comentaste 
Mi nombre es Hector Tapia te agredecería mucho si pudiese ayudarme.


----------



## chava1813 (Mar 16, 2010)

disculpen si no es debido comentar esto aqui pero no encontre como hacer un tema nuevo.... a ver si me pueden ayudar necesito controlar la temperatura de un horno usando un control PI la cosa es que necesito un algoritmo para programar el pic estoy usando CCS


----------



## tercules (Ene 17, 2011)

bueno amigos estoy trabajando com una incubadora de huevos de pollos  con un pic 16f628A  i un sensor 
lo que deseo es agregarle uno de los pines como salida a un motor  que active  cada 3 horas x 15 mimutos y depues buelva a hacer esa operacion . de 3h x15m. 
quisiera que alguien me pase un ejemplo en pic simulador ide para acondicionar a mi trabajo . se los agradesco  de antemano


----------



## cencael (Mar 2, 2011)

existe un opto-acoplador muy funcional, es el MOC3011, es barato y robusto sirve para activar un triac, en el caso del volteador de la incubadora te recomiendo uses un servo motor de esos que traen tres puntas y con reductor, el pic lo mandas directamente a la pata de control del servo, cuando mandas un cero el motor gira 0 grados y cuando mandas un  1 el motor gira 180 grados, el motor mas pequeño soporta unos 9 kilo y no vales mas de 10 dollars


----------



## ramiroabrego (Oct 30, 2012)

Hola, buen día.
El motivo de mi correo es porque me pasaron un circuito que sirve para control de temperatura, el cual en su funcionamiento controla la atenuación de una lampara incandescente para estar en el intervalo de temperatura previamente establecido.

Aun no lo puedo simular porque estoy sin computadora, y en la del trabajo no tengo acceso a instalarle programas u.u, pero viendo el diagrama me hacen ruido algunas partes y me gustaría conocer su opinión antes de aventurarme a armarlo.

Es correcta la configuración del amplificador operacional para calibrar el sensor?

En la parte del circuito atenuador, el capacitor de 100n (C2), ¿Es correcto colocarlo ahi?  porque pienso que hará corto :/

Les adjunto los diagramas, y programacion.

Contraseña: 5hin0l@s2OI2
Se les agradece el tiempo.
Saludos.


----------



## ricbevi (Oct 30, 2012)

ramiroabrego dijo:


> Hola, buen día.
> El motivo de mi correo es porque me pasaron un circuito que sirve para control de temperatura, el cual en su funcionamiento controla la atenuación de una lampara incandescente para estar en el intervalo de temperatura previamente establecido.
> 
> Aun no lo puedo simular porque estoy sin computadora, y en la del trabajo no tengo acceso a instalarle programas u.u, pero viendo el diagrama me hacen ruido algunas partes y me gustaría conocer su opinión antes de aventurarme a armarlo.
> ...



Hola...el circuito funciona en la simulación al menos pero te faltan dos archivos extensión INC "Division16Bit.inc" y el "Lee EEPROM.inc" si quieres retocar la funcionalidad del programa.

Saludos.
Ric.


----------



## ramiroabrego (Oct 30, 2012)

Muchas gracias Ricbery.
No cuento con esos archivos, ¿que puedo hacer?, ¿seran librerías?


----------



## ricbevi (Oct 30, 2012)

ramiroabrego dijo:


> Muchas gracias Ricbery.
> No cuento con esos archivos, ¿que puedo hacer?, ¿seran librerías?



Esos archivos solo se necesitan si es necesario ajustar algo en el programa principal.
Lo único que se puede hacer es o conseguirlas o hacerlas pero para esto ultimo debes estudiar el programa principal y que hacen dichas librerías en él y tener obviamente conocimientos de programación en asembler del PIC.
Saludos.

Ric.


----------



## ramiroabrego (Nov 8, 2012)

hice la simulación del diagrama y me marca 2 errores en al alimentación, pero no encuentro el error, ¿me pueden ayudar?, se que uno de los errores es en la alimentacion de 12V del OPAMP, pero desconosco el porque del error 

Adjunto el archivo con la simulación.

Gracias.


----------



## Eduardo (Nov 8, 2012)

Tus 13V y 5V  son simples etiquetas --> Tenés que ir a: Design->Configure Power Rails  y configurar para que sean líneas de alimentación de 5 y 13V


----------



## Lalo Orozco (Nov 11, 2012)

que tal ramiro, estuve revisando el programa y no le he podido echar a andar me marca dos errores uno en el pic y el otro en el block, espero y me puedan ayudar ya que soy nuevo usando el proteus, te adjunto archivo


----------



## ramiroabrego (Nov 12, 2012)

Hola Lalo, yo tampoco he podido hecharlo a andar, he disminuido los errores especificando los modelos de los componentes que lo componen, sin embargo no se porque el PIC marca error si ya viene especificado el modelo :/


----------

