Termostato para bañera de agua caliente

Hola a todos, estoy metido en un proyecto que consiste basicamente calentar agua y mantener la temperatura.

El funcionamiento es el siguiente:

Con 2 displays de 7 segmentos muestro la temperatura real del agua, para ello utilizo 4 sensores lm35 aislados y sellados, luego, activo un interruptor ( modo programación ) e indico la temperatura deseada, al volver el interruptor al modo trabajo verifica si la temperatura del agua es inferior a la deseada, si es así activa dos reles que encienden las resistencias, pues es es ese momento cuando los displays indican un valor muy elevado y el pic desconecta los reles, con lo cual, la temperatura mostrada vuelve a ser normal y vuelve a activarlos, así seguidamente.
Eso lo arreglé con un condesador de 470uF en la salida del 7805 que alimenta todo el circuito pero a la hora de montarlo me vuelve a pasar lo mismo aún estando el condensador.
He revisado el programa ( Pic Simulator Ide ) y todo está bien, si tempact<tempset reles=1, no hace nada más y no entiendo porque cambia la lectura.

La medición la hago de la siguiente manera, leo los 4 sensores, saco la media y lo guardo en una variable, cuando ha leído 50 veces vuelvo a sacar la media de esas 50 veces ( es un poco "salvaje" por las prisas que me metieron... )
El voltaje de referencia lo obtengo de un divisor resistivo compuesto de 3 resistencias, así obtengo 1,501v, eso para el Vref+ y el Vref- vá a masa.

En la bobina de los reles he puesto un 1n4001 para evitar un retorno cuando el rele vuelve a reposo.

Estoy un poco perdido ya que ese problema lo solucioné con el condensador pero ahora que todo está montado me vuelve a salir y no sé porqué. Intentaré ir al sitio y tomar todas las mediciones que pueda.

El ejemplo es que ahora mismo marca 26 grados, y lo programo para 30, al conectarse los reles marca 89, se desconectan, 26, se vuelven a conectar 89 y así todo el tiempo.

Los reles los activo con dos Mosfet irf840 ( tambien salvaje, con un bc337 hubiera sobrado, pero los irf los saqué de una placa vieja de pc, increible que parezca, así que eurillos que me ahorro, hay que reciclar :D ).

Creo que el problema puede ser el Vref- o quizás el transformador que alimenta el circuito, pero no estoy muy seguro ya que el circuito completo no llega a 200mA de consumo con los reles activados y todos los led's encendidos, el transformador es de 220->12v 1,25A

Muchas gracias
 
Hola, podrías publicar el circuito eléctrico de tu sistema, por ahí pasaste por alto algún detalle, y mas precisamente, que puede estar en el circuito de la fuente, me parece.
Mi humilde opinión es que para esa función tan simple creo que hubiera bastado con un solo LM35, que tampoco es el método mas barato para medir temperatura, pero es muy práctico.
El problema puede estar en los relés, que al conectarse generan demasiado ruido en la linea, lo que acarrea que si tu fuente de 5v no está bien diseñada, éste se filtre y haga funcionar mal el sistema. Lo podés solucionar activando la carga con triac y un opto acoplador de cruce por cero tipo MOC3041.
Espero te sirva, saludos!
 
Hola de nuevo y gracias por responder, por ahora no puedo subir los esquemas debido a un problema con la dimensión de la imagen, prometo que en cuanto pueda los subo, pero son bastante sencillos, todo el circuito se alimenta con un transformador de 220-12v 1,25A que lo saqué de un modem.

Investigando, creo que he encontrado el problema, resulta que sin los sensores, en la línea Vout del sensor podía medir unos pocos milivoltios, lo que he hecho ha sido poner unas resistencias a masa para mantener toda la linea a 0v, luego he vuelto a conectar los sensores y al hacer la prueba no varíaba tanto, de 26 a 89 ºC, sino ahora, sólo varía 6 ºC.
Explicando un poco el circuito, éste consta de 5 placas, una es la principal en donde está el Pic, otra donde ván los displays de 7 segmentos con la botonera, otra con un conector rj45 para enviar las señales a 5 metros de distancia, otra con otro rj45 para recivirlas, y otra con los reles.
Ese diseño es por las dimensiones y ubicaciones.
Ahora, el rj45 queda de esta manera:
1 - +12
2 - Gnd
3 - Salida Sensor 1
4 - Salida Sensor 2
5 - Salida Sensor 3
6 - Salida Sensor 4
7 - Rele 1
8 - Rele 2

Debido a que los relés funcionan a 12v tuve que optar por esta configuración, ahora bien, en el rj45 receptor tengo un 7805 para alimentar los sensores, pudiendo alimentarlos con +12 opté por +5 debido a que están sumergidos en agua ( aislados y sellados ) pero si en algun momento entra agua y hace corto le estarían entrando al pic +12, de esta manera le entrarían +5 y no le pasaría nada.
Bien, pues creo que el problema son las bobinas de los reles, cabe destacar que llevan su correspondientes 1n4001 para evitar retornos, pienso esto porque con todo conectado los sensores marcan bien ( midiendo con el tester ) ahora, si conecto los reles, las lineas de los sensores me suben +0.06v ( el rj45 mide 5 metros ), ahora, la prueba que he hecho, es teniendo todos los circuitos uno al lado del otro, si de la placa donde están los sensores saco un cablecillo desde GND hasta GND de la alimentacion los sensores marcan bien con los reles activados.
¿Separar la masa? tambien lo he probado, 10 metros de cable telefonico enrollado ( el peor de los casos ) y juntando las dos GND la medición me sube +0.04 ( osea, cuatro grados ).

Por ahora tengo en mente arreglarlo por software, pero sé que no es la opción mas decente.

La razón de que se utilicen 4 lm35 es que es una especie de bañera de unos 1500 litros de agua que se deben de calentar con 2 resistencias de 1200w cada una ( el tiempo que tarda en calentar es indiferente, la cuestion es que caliente y mantenga la temperatura con un margen de error de +- 3 grados como máximo )

Saludos.
 
Hola, disculpá la demora, pero anduve muyocupado; si tenés mucho quilombo con los relés, no te convendría activar las resistencias con triac y opto como te sugerí en el primer mensaje?
Si seguís con los relés, quizás tendrías que mejorar las lineas de alimentación del pic y de los LM35. Espero te sirva, saludos!!
 
Hola Ivankr, supongo que con un relé de estado sólido se hubiera solucionado el problema ( opto+triac ), pero ya descubrí el gran fallo... ¡ que burro soy !, resulta que la alimentacion de los reles y de los sensores la llevo por el rj45 a lo largo de 5 metros, con las prisas hice las cuentas de cabeza y pensé que el diametro de un hilo del rj45 ( unos 0.3mm ) y 5 metros de largo no me daría problemas para alimentar dos reles que apenas consumen 140mA entre los 2, grave error.

La solución fué la siguiente:

Lo primero, heché una manguera de 2 hilos de 1 mm.desde la fuente de alimentación hasta el módulo de los relés, luego corté la alimentación de los relés que venía por el rj45, así los relés y los sensores tenían una línea directa desde la fuente.
Luego uní el negativo de la fuente con GND ( nunca lo había hecho, me parecía muy raro pero la lógica me decía que funcionaría ) para mantener el negativo a 0v.

Y voilá, todo funciona correctamente.
Tengo que decir que este problema no tiene solución por software ya que cada vez que activaba los relés tenía una subida distinta.

No sé si con los relés de estado sólido no hubiera existido este problema, tengo que investigarlo, pero para ello me voy a montar yo mis propios reles de estado sólido a partir de un esquema que ví por internet.

Bueno, ahora la máquina ( tan sencilla y los problemas que ha dado, jeje ) funciona perfectamente.

Gracias a todos y en especial a tí Ivankr, espero que esta experiencia le sea útil a alguien.

Saludos!
 
Buenísimo Manunet!! Me alegro mucho que hayas podido solucionar el problema!! Que satisfacción que se siente cuando funcionan las cosas! Un esquema de "relé de estado sólido" que te recomiendo, es el que aparece en la hoja de datos de los MOC. Un abrazo!
 
Hola, hace mucho que no entro por aqui, eso es bueno, ya que no suelo encontrarme en calles sin salida, vamos, como el médico, mientras menos visitas mejor... jeje... pero hoy he llegado a una situación que me lleva loco y no se por donde tirar, os pongo en situación:

Tengo una cuba de agua, de unos 1.000 litros, toda de metal, esa agua hay que calentarla a 40º C, para ello utilizo dos resistencias de 1.200w 220v puestas en la parte de abajo metidas en dos "vainas" y éstas, las vainas, en contacto con el agua.

Utilizo un LCD y un teclado 4x4 para "programar" la electrónica, para activar las resistencias utilizo dos reles de 12v ( 220v-10A ), un poco justos pero funcionan bastante bien, en el próximo modelo, pondré reles de estado sólido :D, bueno, el tema es que todo vá bien en modo manual, puedo encender y apagar las resistencias desde el teclado, pero a la hora de leer la temperatura con 3 LM35 tengo problemas, os explico:

Hay dos sensores principales y uno de control, dos de ellos están a los bordes de la cuba y uno justo en la pared de enfrente de las resistencias, la funcion es la siguiente, leo los sensores laterales ( mostrando el resultado en el LCD ) y calculo la media mostrandola tambien, el 3º sensor es para el control del centro, ya que al estar las resistencias en frente se calentará mas que los demás. El pic ( un 16f877a ) lee los tres sensores cada 3 segundos, cada uno lo lee 20 veces y saca la media la cual es mostrada en el LCD.

El problema:
La lectura no es estable y los sensores 1 y 2 muestran una diferencia de temperatura considerable, pero la media ronda la temperatura real, es decir, con un termometro comercial leo que la temperatura está a 11,2 ºC, el sensor 1 me dice que está a 8 y el 2º dice que está a 14, con lo cual la media dá 11 y pico, pero en cada lectura me varían bastante los resultados, por ejemplo el sensor1 salta de 8º a 12º, luego 11º luego 26º... y así, eso me dijo que en la linea de alimentación hay mucho ruido, la alimentación es a traves de un trafo de esos de cargar un telefono inalambrico, saca 12v 1A. He conseguido estabilizar un poco las lecturas conectando el negativo de la fuente DC a tierra del enchufe, junto con toda la cuba.
Cabe decir que el voltaje de referencia lo saco con un divisor de la misma alimentación del pic, despues del 7805, la vref es de 1,469v, mediante el teclado matricial se puede cambiar ese valor a lo que quieras, donde 1469 corresponde al vref del divisor, ese es el valor óptimo que calculé en casa mientras realizaba el proyecto. Antes de poner la masa común tenía que bajar a una vref de 800 ( 0,8 v ) para que las lecturas se aproximaran a la realidad, luego de poner la masa, pude subirlo a 1.200 ( 1,2 v ), con lo cual, el valor mostrado "ronda" lo real.
El problema principal es que en cada lectura varía el resultado, porque según se vé, el valor de vref debería de ser 1,469v y poco a poco me voy acercando.

Problemas detectados:
Lectura erronea en cada intervalo.
El pic se resetea y no es causa del watchdog ( comprobado )
Necesaria la modificación de vref mediante el teclado para lectura aproximada.

Se me olvidaba.. jeje.. el firmware tambien tiene una rutina de "autocalibración" la cual utiliza vref+ la alimentacion del pic ( +5v ) y calcula la entrada del divisor, ese dato lo utiliza luego para hacer los calculos del ADC, tambien se puede hacer de forma manual. Esto lo puedo hacer ya que el divisor tiene una salida calculada de 1,5v y nunca superará los 5v de máximo admitidos por el pic.

Los LM35 los utilizo de manera directa, sin OpAmp, están sumergidos en el agua debidamente sellados.

Algunas curiosidades:
Si leo con un tester la alimentación de los LM35 tengo 5v, y si leo el vout veo una lectura estable que no coincide con la realidad, pero es estable, luego puedo configurar el pic para que haga los calculos necesarios para corregir los resultados.
Vamos, está preparado para todo.. bueno.. casi todo.
La cuba está en una nave con un montón de maquinas de 220v y 380v y para rematar está justo enfrente de un lavadero de coches.. vamos.. que ruido no falta... jajaj.

Posibles soluciones:
Había pensado en leer el vout de los sensores con mi "flamante" DSO 203 a "ver si veo" el ruido y así poder amortiguarlo todo lo que pueda mediante filtros pasa-bajos.
Tambien he pensado en probar a cambiar el trafo por el que tengo de pruebas en casa, una fuente ATX y así ir probando cosas.
Tambien se me ha ocurrido comprar una regleta de esas de protección como las que se les ponen a los pc's y ver los resultados.

A continuación os pongo las fotos del esquema, el de alimentación y el de aplicación.

Se me olvidaba, en el circuito de alimentación hay una resistencia ( R6 ) que realmente no está, sólo la pongo para que el ISIS pueda calcular el circuito ya que sin ella me dá un error... a veces... por que? pues ni idea.. jeje
 

Adjuntos

  • alimentacion.jpg
    alimentacion.jpg
    81.6 KB · Visitas: 29
  • aplicacion.jpg
    aplicacion.jpg
    113.6 KB · Visitas: 26
Tengo una cuba de agua, de unos 1.000 litros, toda de metal, esa agua hay que calentarla a 40º C, para ello utilizo dos resistencias de 1.200w 220v puestas en la parte de abajo metidas en dos "vainas" y éstas, las vainas, en contacto con el agua.

Hola...¿Conoces el DS18B20? al usar este en vez del LM35(el cual por la forma de trabajo no es lo mas recomendable para un habiente "ruidoso" y con mediciones a distinta distancia) te eliminaría mas de un dolor de cabezas para empezar.
Saludos.

Ric.
 
Última edición por un moderador:
La lectura errónea de los sensores puede ser por las volutas que forma el líquido al calentarse.
Tal ves se deba agregar un sistema de movimiento al líquido para uniformar su temperatura durante el proceso de calentamiento.
La diferencia entre la temperatura que miden tus sensores respecto al comercial puede ser por la distinta velocidad de respuesta y además por las zonas de distintas temperaturas que se te forman durante el calentamiento.

Esta imagen es una foto de humo, pero se asemeja a la forma desordenada en que se te calienta el líquido dentro de la tina creando pequeñas zonas de distinta temperatura (Falta de homogeneidad)

humo[1].jpg

Este efecto se reduce provocando un batido (Homogeneizado) del líquido.

El reset del micro muy posiblemente se deba al pulso EMI que provoca el relee al desconectar la carga.
Se podría agregar una Red de Snubber sobre los contactos de relee y verificar que el relee y micro NO se encuentren acoplado a través de la fuente de alimentación.
 
DS18B20... curioso.. la verdad es que no sabía nada de el... a ver si me hago con uno y aprendo a utilizarlo, además se puede configurar como 1-wire y conectar varios al mismo pin del pic.. jorl.. todo ventajas... lo tendré en cuenta para el proximo proyecto.

Respecto a lo de calentamiento del agua, si, tienes razon, el agua está, digamos, estancada, pero son 1.000 litros de agua y los "botes" que pega la lectura son demasiados bruscos, lo mismo te marca 9º que en la siguiente 23º, es más, si mido con un tester en los cables del LM35 ahí tengo una lectura estable, tiene que ser algo que "engaña" al pic cuando lee.

El tema de reseteo, el pic está programado que ante cualquier cosa descontrolada apaga las resistencias, hace sonar un buzzer y enciende un led rojo siendo necesaria la intervención de alguna persona para "rearmar" el circuito además cuenta con el watchdog por si se queda "enganchado" en alguna rutina no controlada.

Revisando el firm he vist o que he cometido un fallo que se dá bajo ciertas circunstancias y es que mientras suena la alarma no se resetea el watchdog, así que si entra "justo" de tiempo en la rutina para hacer sonar el buzzer se desbordará el watchdog provocando el reinicio, pero bueno, por ahora eso es lo que menos me preocupa, tengo que estabilizar las lecturas como sea... lástima no haber conocido antes al "DS18B20".. si no no habría problema... cachis!

Estube mirando lo de la red snubber y quizás sea lo que le falta ya que los reles están a escasos cm. del pic... probaré desconectando las resistencias y así no habrá carga en los reles y con la fuente atx veré si se estabilizan las lecturas...

saludos



tengo que hacerme una fuente especial para probar circuitos, una de esas que metan ruido y harmonicos a saco, ya que en casa, entre los filtros que tengo en los enchufes y la fuente atx de casi nulo ripple no puedo preparar los circuitos para sacarlos a la calle.. ;P
 
Última edición:
¿ Agregaste algún pasa-bajos sobre la señal de los sensores ?, ¿ Cual ?

Es mas fácil estabilizar la temperatura dentro de un ciclo dinámico que dentro de uno estático, punto a favor del homogeneizado
 
errr.. no.. no lleva ningun tipo de filtro, ahora mismo estoy mirando de crear uno y añadirlo.
Buscando por el fondo del armario me he encontrado una sonda de un congelador, es estanca, el problema es que no lleva ningun tipo de referencia, solo dos cables, marrón y negro.
He visto por ebay el DS18B20 y es mas o menos "barato", lo malo el tiempo de entrega... buf..

Mientras llegan voy a ir probando el filtro pasa-bajos a ver si mejora el problema
 
Última edición:
errr.. no.. no lleva ningun tipo de filtro, ahora mismo estoy mirando de crear uno y añadirlo.
Buscando por el fondo del armario me he encontrado una sonda de un congelador, es estanca, el problema es que no lleva ningun tipo de referencia, solo dos cables, marrón y negro.
He visto por ebay el DS18B20 y es mas o menos "barato", lo malo el tiempo de entrega... buf..

Mientras llegan voy a ir probando el filtro pasa-bajos a ver si mejora el problema

Disminuye la cantidad de muestras(ej: tres o cuatro espaciadas cada 1 o 2 seg pero lee todos los ADC cada vez) que tomas y espacia mas el tiempo entre muestras ya que la temperatura no se elevara tanto si tardas 10seg o mas para tomar una acción.
Lo de los filtros también esta muy bien la recomendación y trata de blindar todo lo mas posible con maya(recomendable pasa los cables dentro de tubos de cobre como los usados en calefacción/fontanería delgados soldando-los al GND del sistema).
En el foro hay montón de ejemplos usando el DS18B20 en distintos lenguajes de programación.
Se pueden colocar en el mismo cable debido a que tienen un numero de identificación casi único que hace que el intercambio de la informacion sea direccionada a un dispositivo en particular colocado en el mismo BUS.


Ric.
 
Última edición:
Hola Ric, la toma de datos la realizo de esta manera:
Leo el sensor1, sensor2 y sensor3, luego otra vez y saco la media, el intervalo de tiempo lo puedo modificar mediante el teclado, por defecto está en 3 segundos, lo puedo poner desde 1 hasta 99 segundos, pero de todas maneras, cuando está en manual, en el lcd te indica el estado de las resistencias y al lado la temperatura de los sensores 1 y 2, la cual la lee en el intervalo establecido.

Mañana iré a lo sencillo, para ir descartando cosas, le pondré una regleta de esas de pc's con protección a ver si mejora, luego probaré con la fuente atx, de esa manera será como lo tengo en casa, ya sé que en casa es el entorno ideal, ni ruidos ni ripples ni nada de nada, así que voy a intentar reproducir esa situación en el local, pero antes de todo eso voy a ir midiendo con el osciloscopio en distintas partes para ver si veo el ruido o algo que no cuadre...

Los sensores los alimento con cable USB apantallado de esta manera, sabiendo que hay 4 cables y malla:
Malla: Negativo
Rojo: Positivo
Verde, amarillo y Blanco son los vout de los sensores.

Ya os contaré mañana como han ido las investigaciones...

saludos!

Y por supuesto que voy a aprender a controlar el ds18b20, así, menos dolores de cabeza.. jeje



Por cierto, se me olvidaba, el programa lo he hecho con el Pic Simulator IDE
 
Última edición:
Hola.

Mirá, la variación de temperatura pasa por lo siguiente:

Ruido.
Convección de fluidos.

No sé si sabías, que en un sistema cerrado de un mismo elemento, las partículas con más calor ("más calientes") tienden a subir, y las más frías a bajar, por una diferencia de densidad.

Si vos, sin tomar en cuenta el ruido, ponés un sensor abajo, y otro casi en la superficie, si en el de arriba te marca 40°C, en el de abajo te puede marcar 34°C, y la brecha aumenta con el volúmen que manejes.

Para medir "la" temperatura adecuadamente, tenés que poner el sensor en el seno del líquido, o sea, en el centro del cubo donde se almacena el líquido.

Después, con el tema del ruido, poné filtros PB, capacitores, y algún diferencial (con operacionales si querés).

Esa es mi recomendación.

Un saludo.
 
Para medir "la" temperatura adecuadamente, tenés que poner el sensor en el seno del líquido, o sea, en el centro del cubo donde se almacena el líquido.

Si pero no :rolleyes: , hilando mas fino resulta que como las paredes también se enfrian , la convección será de ascenso central y descenso perimetral , así que tampoco podés medir en el centro, así a lo tonto quizás entre un tercio o un cuarto del diámetro (desde la pared) y a la mitad de la altura.
 
Si pero no :rolleyes: , hilando mas fino resulta que como las paredes también se enfrian , la convección será de ascenso central y descenso perimetral , así que tampoco podés medir en el centro, así a lo tonto quizás entre un tercio o un cuarto del diámetro (desde la pared) y a la mitad de la altura.

Me imagino que estará debidamente aislado, pero sí, algo de temperatura va a disminuír en las paredes.

Para mantener una temperatura constante y pareja, habría que mover el líquido mediante hélices o algún motor tipo "batidora" pero a baja velocidad, y ahí la temperatura se podría medir de cualquier parte, incluso cerca de una pared, para que la placa a la que entre el sensor no reciba ruido del cable.
 
Tengo una cuba de agua, de unos 1.000 litros, toda de metal, esa agua hay que calentarla a 40º C, para ello utilizo dos resistencias de 1.200w 220v puestas en la parte de abajo metidas en dos "vainas" y éstas, las vainas, en contacto con el agua.

[Humor Electrónico / ON]

También podríamos revolver con los "pieses" :LOL:

hidromasaje.jpg


[Humor Electrónico / OFF]
 
A ver, los dos teneís razón, las resistencias al estar en el centro hace que el agua caliente suba y se vaya para los lados, los sensores están en la misma pared de la cuba, cada uno en una esquina, ahora, si realmente el agua está a 11º con un termomettro comercial poniendo la sonda al lado del sensor, el mio, me dá saltos de hasta 12º grados y eso, por mucho que calienten y se esparzan las aguas, lo veo demasiado, algo mas tiene que influir en esas lecturas, no veo normal que me marque 9º grados y a los tres segundos marque 23º... alguna "rata" hay ahí y la tengo que encontrar.. jeje



DosMetros... ahí dentro, con 3 o 4 chicas de buen ver y olvidate de resistencias y termometros para calentar el agua... jaja. se calienta sola.. jajjaja
 
Última edición:
Atrás
Arriba