Go Down

Topic: Control de ventilador 220v (Read 2429 times) previous topic - next topic

rbatriu

Para una habitación con el techo muy alto que caliento con una bomba de calor necesito un sistema adicional para remover el aire, ya que sino el aire caliente va quedando arriba, la bomba de calor detecta que es la temperatura que se le pide y pone el ventilador a la mínima potencia con lo que no es suficiente para superar la estratificación. Lo suyo seria sustituir el split por un cassette, pero usando un ventilador consigo lo que quiero y es mas economico.

El invierno pasado hice comprovaciones manualmente y llegué a la conclusión que cuando la temperatura "arriba" es 1.5º mas alta que a la altura normal habia que poner en marcha el ventilador para que mezclara el aire. Esto rompia la estratificación del aire solucionando el problema.

Me gustaria automatizar el sistema con Arduino. La parte de programación la tengo clara y no tengo problema.

Lo que tengo mas problema es en cómo accionar el ventilador. Yo habia pensado en usar algun modulo de reles que venden de este estilo:



Mi pregunta es: si la placa tiene un optocoupler necesito algun tipo de protección adicional?
En motores he leido que hay que poner diodos para proteger el circuito de la subida de tensión que produce el motor cuando se para. Esto es necesario para un motor de 220v de ventilador? Que tipo de diodo habria que poner?

Gracias y saludos.

surbyte

Tu estas hablando de 220VAC por lo tanto el uso de diodos no corresponde porque es para cuando se acciona cargas bajo tensión DC (Contínua). 
El módulo relé que muestras tiene optoacopladores así que con eso será suficiente para su accionamiento seguro.
En lo personal un control asi no me gusta pero entiendo que es lo mas fácil de hacer.


rbatriu

#2
Oct 08, 2016, 01:24 pm Last Edit: Oct 08, 2016, 01:32 pm by rbatriu
Tu estas hablando de 220VAC por lo tanto el uso de diodos no corresponde porque es para cuando se acciona cargas bajo tensión DC (Contínua).
El módulo relé que muestras tiene optoacopladores así que con eso será suficiente para su accionamiento seguro.
En lo personal un control asi no me gusta pero entiendo que es lo mas fácil de hacer.
Pensaba que lo de los díodos era tanto para AC como para DC. Una cosa mas que se. Gracias!
Que control harias? Estoy abierto a ideas!  :smiley:

surbyte

Con un rele no mucho, prendo y apago en función de algun setpoint de temperatura.
nada del otro mundo. Lees la temperatura y si esta por encima de determinado valor, activas el ventilador y si esta por debajo de OTRO valor lo apagas, 
No con el mismo porque estará prendiendo y apagando a cada instante y con cada variación minima de temperatura.
Prendes con 30 grados y apagas con 29 o 28.5 por ejemplo.

rbatriu

Con un rele no mucho, prendo y apago en función de algun setpoint de temperatura.
nada del otro mundo. Lees la temperatura y si esta por encima de determinado valor, activas el ventilador y si esta por debajo de OTRO valor lo apagas,
No con el mismo porque estará prendiendo y apagando a cada instante y con cada variación minima de temperatura.
Prendes con 30 grados y apagas con 29 o 28.5 por ejemplo.

Es que lo importante aquí no es una temperatura absoluta sino la diferencia de temperatura entre la que hay a la altura normal de una persona y la que hay en el techo de la habitación.

Entonces mi idea es que si esa diferencia es superior a 1.5º se activa 10 minutos el ventilador y cuando finaliza este periodo de tiempo se vuelve a comprovar la diferencia, si ha bajado se para sino sigue funcionando.

Los 10 minutos es un valor que no he comprobado, tendria que hacer comprobaciones y ver si con 10 es suficiente o se necesita mas.

Otra opción es mantener en marcha el ventilador hasta que la diferencia se reduzca a, por ejemplo, 1º.

Acuario

#5
Oct 09, 2016, 10:43 am Last Edit: Oct 10, 2016, 09:00 pm by Acuario
Puedes hacer este proyecto con un arduino y dos termistores de 10K conectados a las entradas analógicas.
Solo tienes que escribir un programa básico para poner en marcha el ventilador.

Aquí puedes encontrar el circuito:
http://playground.arduino.cc/ComponentLib/Thermistor



#define FAN 0
#define DIFERENCIA 100 (por ejemplo, tienes que encontrar la diferencia que quieres)

pinMode (FAN, OUTPUT);

int s1 = analogRead(0); //En el techo
int s2 = analogRead(1); //En el suelo

Acuerdate que el minimo sera 0 y el maximo 1024

if(s1 > s2 + DIFERENCIA)
digitalWrite(FAN, 1);
else
digitalWrite(FAN, 0);


Mi consejo es que además incluyes un factor de histéresis asi no tienes que preocuparte con comprobaciones de la diferencia, y siempre se pone en marcha cuando la diferencia supera la temperatura + el valor de histéresis.

rbatriu

Puedes hacer este proyecto con un arduino y dos termistores de 10K conectados a las entradas analógicas.
Solo tienes que escribir un programa básico para poner en marcha el ventilador.

Aquí puedes encontrar el circuito:
http://playground.arduino.cc/ComponentLib/Thermistor

#define FAN 0
#define DIFERENCIA 100 (por ejemplo, tienes que encontrar la diferencia que quieres)

pinMode (FAN, OUTPUT);

int s1 = analogRead(0); //En el techo
int s2 = analogRead(1); //En el suelo

Acuerdate que el minimo sera 0 y el maximo 1024

if(s1 > s2 + DIFERENCIA)
   digitalWrite(FAN, 1);
else
   digitalWrite(FAN, 0);


Mi consejo es que además incluyes un factor de histéresis asi no tienes que preocuparte con comprobaciones de la diferencia, y siempre se pone en marcha cuando la diferencia supera la temperatura + el valor de histéresis.
Bueno, ya tengo dos sensores de temperatura, así que los usare. Ademas estoy pensando en incorporar un LCD al proyecto que muestre ambas temperaturas.

Sadvance

#7
Oct 10, 2016, 07:51 pm Last Edit: Oct 11, 2016, 07:09 pm by Sadvance
Hola, ya que quieres mezclar un poco el aire caliente superior y el inferior, iria un poco mas lejos y controlaria el ventilador por medio de pwm, asi no tendrias el ventilador funcionando a toda pastilla.

Metiendole un octo MOC 302 y un triac 600 seria muy sencillo, utilizando la salida (0-5v) de pwm de arduino, algo asi para que te hagas una idea
Code: [Select]


**************** Variacion velocidad ventilador de la sala *******

void temperatura()

{
 contador_temp ++;

 sensors.requestTemperatures();   // call sensors.request
 
 temperatura_habitacion_temp += (sensors. getTempC(sensor_habitacion));       // lee temperatura habitacion.

 if(contador_temp == 10)
 {
   tempHB = temperatura_habitacion_temp / 10;
   contador_temp = 0;  
   temperatura_habitacion_temp = 0;

   
if (tempH > HtempMin)
          {    
           int tempval = int(tempH * 10);    
           fanSpeed = map(tempval, (HtempMin * 10), (HtempMax * 10), 0, 255);       //---------Control de velocidad del ventiladores de sala

           if (fanSpeed <= 0)                      //20°c = 0 volts -- 25/30°c = 5 volts
           {
            (fanSpeed = 0);
           
           }
       
     
                           
     if (fanSpeed > 255)    fanSpeed = 255;
     analogWrite(fanPin, fanSpeed);
         }
         
    if (tempH <= HtempMin )
       {
       (fanSpeed = 0);
       
       analogWrite(fanPin, fanSpeed);
       }    
}


Acuario

Bueno, ya tengo dos sensores de temperatura, así que los usare. Ademas estoy pensando en incorporar un LCD al proyecto que muestre ambas temperaturas.
Si quieres añadir un LCD, realmente necesitas dos cosas:
1. Cambiar la temperatura de un numero del ADC a una temperatura real
2. Un library para el LCD.

Para cambiar el numero puedes usar algo así:

Code: [Select]

///////////////////////////
// Stuff for NTC thermistor
///////////////////////////
// 666 ohms = 100C
double Thermistor(int RawADC) {
double Temp;
Temp = log(10000.0*((1024.0 / RawADC - 1)));
Temp = 1 / (0.001129148 + (0.000234125 + (0.0000000876741 * Temp * Temp))* Temp);
Temp = Temp - 273.15;            // Convert Kelvin to Celcius
return Temp;
}


Para el LCD lo mas sencillo es usar uno con interfaz I2C, así solo necesitas 4 conexiones, 2 para alimentar y 2 para mandar datos.

Por ejemplo https://bitbucket.org/fmalpartida/new-liquidcrystal/wiki/HomeLCD Display library


Buena suerte!

Go Up