sábado, 25 de mayo de 2013

Electroválvula Rain Bird 075-DV controlada por Arduino

NOTA: Este blog se ha trasladado a trasteandoarduino.com.
 
Una de las tareas que debía controlar el sistema domótico que estoy construyendo es la del riego por goteo. Para ello tengo dos electroválvulas Rain Bird 075-DV, un Arduino UNO y una placa con dos relés.

Lo que pretendo es que cuando al Arduino le llegue un comando '1' cambie el estado del relé numero 1 de la placa, y active/desactive la electroválvula. El esquema de conexionado es el siguiente:

Esquema del sistema de control de electroválvulas.

Usamos la placa de reles como un interruptor electrónico, controlado por nuestro Arduino, para activar y desactivar la electroválvula a voluntad.

Tenemos un transformador de 220VAc a 24VAc, que es lo que necesita la electroválvula para funcionar, uno sus cables lo hacemos pasar por el relé (contacto normalmente abierto) y el otro lo conectamos a la electroválvula. Hay que tener muy en cuenta que son 24V de corriente alterna (AC). La placa de relés tiene una peculiaridad: cuando en la entrada IN1 ponemos un estado LOW, el relé se activará, y cuando ponemos un valor HIGH, se desactivará. El condensador que veis, sirve para deshabilitar el reset que se produce en la placa Arduino cada vez que recibe un comando vía USB (más información aquí).

Y en Arduino cargamos el siguiente programa:
// -----------------------------------------------
// Reles (Electrovalvulas)
// -----------------------------------------------
int pinElectrovalvula1=7;
int estadoEV1;


void setup()
{
  Serial.begin(9600);

  // Inicializamos el modulo de EVs
  pinMode(pinElectrovalvula1,OUTPUT);
  estadoEV1=1; //cerrada
  digitalWrite(pinElectrovalvula1,estadoEV1);
}


void loop()
{
  byte command=0;
  if(Serial.available()>=0)
  {
      command=Serial.read();

      switch(command)
      {        
        // Formato del comando: 1
        case '1':
        {
          estadoEV1=!estadoEV1;
          digitalWrite(pinElectrovalvula1,estadoEV1);
        }
      }
  }
}
Ya lo tenemos todo listo para que en cuanto arranque el programa la electroválvula se cierre (por seguridad, en casos de reinicios fortuitos del sistema por cortes de luz por ejemplo...), y se quede esperando el comando para activar/desactivar la electroválvula cuando queramos.

Más o menos el montaje real quedaría así:

Montaje real... en pruebas.

Detalle de las conexiones en la placa de relés.

Bueno, y esto es todo de momento. Si tenéis alguna pregunta, ya sabéis que son bienvenidas...

PUEDE COMENTAR ESTA ENTRADA AQUÍ

8 comentarios:

  1. Hola, soy estudiante de segundo de bachillerato y estoy haciendo de trabajo de recerca un "sistema" domótico con arduino que consiste en una válvula que se abre o se cierra en función de un sensor de humo y gas. Para el código más o menos se como lo tengo que hacer porque hice un curso de arduino, pero de electricidad no entiendo mucho y no se como conectar-le la electrovalvula, cual tendría que usar ni nada.
    Mi pregunta es si me podrías indicar un poco lo que tengo que hacer o si sabes de alguna web donde se explique paso por paso,... aun así agradeceré cualquier otro tipo de aportación o idea.
    Gracias

    ResponderEliminar
    Respuestas
    1. Por lo que me cuentas el montaje seria muy muy similar al de la imagen de arriba. Hay varios tipos de electroválvulas: los que funcionan pulsos y los que necesitan una señal continua. Para que una electroválvula de pulsos se abra o se cierre necesitas enviarle una señal (9v) durante un tiempo (un segundo por ejemplo) y luego otra vez 0v. Para los de señal continua necesitas mantener la señal (24v) durante todo el tiempo que quieras que la válvula esté abierta.

      Hay electroválvulas que funcionan a 9v (con una pila, corriente continua), a 24v (con un transformador de corriente alterna), ... Una vez que hayas elegido una electroválvula, por ejemplo la arriba, leemos sus especificaciones y nos dice que funciona a 24VAc/0,30A y que necesita un pulso continuo para que se abra.

      Ahora necesitamos saber que relé necesitamos: es simple, si arduino nos da una señal de 5Vcc (corriente continua) y la electroválvula necesita 24VAc (corriente alterna) el relé sera al menos un 5Vcc/24Vac 0,30A. Como ese relé es complicado de encontrar (si existe), yo he elegido uno 5Vcc/220Vac 10A que es el que tenia 'a mano'... Como puedes ver si necesitamos controlar 24voltios y ponemos un rele que es capaz de controlar 220 no debería haber problema, sobre todo la corriente que es capaz de controlar (10amperios) es muy superior a lo que consumirá la electroválvula (0,30 amperios).

      ¿Como se conecta todo? El rele que al final es quien tiene todas las conexiones tiene dos partes: la que se conecta a arduino (2 pines) y la que se conecta al aparato que queremos controlar (3 pines).

      1. La parte que se conecta a arduino va conectada a GND y al pin de arduino que mandara la señal al relé. Esta parte no tiene ningún secreto.

      2. Si conectáramos directamente los dos cables del trasformador a la electroválvula, estaría funcionando siempre, por lo tanto usamos el relé para que corte la señal de UNO de esos cables dependiendo de lo que le diga arduino. El funcionamiento es exactamente igual que un interruptor de luz como los que tenemos en casa. Conectamos un cable del trasformador a la electrovalvula directamente y el otro lo hacemos pasar por el relé. ¿A donde lo conectamos de los tres pines que tiene el rele? Desde el marcado como NC (normalmente cerrado) o desde el NO (normalmente abierto), y el tercer pin lo conectamos a la electroválvula. Exactamente lo que se ve en la primera imagen de esta entrada.

      ¿Que diferencia hay entre conectar a NC o a NO? Si conectamos a uno o a otro dependerá de si queremos el relé active la electroválvula cuando arduino le envíe la señal, o que se active cuando no le envíe la señal.

      Uff que rollo te he metido... no se si me habré explicado bien, si necesitas algo mas o quieres que te aclare algo no dudes en decírmelo. :)

      ¡Y gracias por el comentario!

      Eliminar
    2. Muchísimas gracias por tu respuesta, me acabas de ayudar mucho porque estaba totalmente estancado, una cosa que te agradecería es si me pudieras decir dónde o si hay alguna web para comprar una electroválvula como esta, o en su defecto alguna semejante.
      ¡Muchas gracias de nuevo y si tengo alguna cuestión o consulta no dudaré en preguntare!

      Eliminar
    3. Yo compre dos en poolaria.com que fue donde mas baratas las encontré. Creo recordar que por unos 18 € mas portes.

      Eliminar
    4. Para hacer-lo con una electroválvula de pulsos seria mucho más sencillo?

      Gracias

      Eliminar
    5. Creo que el montaje sería exactamente el mismo, aunque cambiando el transformador 220VAc a 24VAc por una pila de 9V, que es con lo que suelen funcionar las electroválvulas de pulsos. Además tendrías que llevar cuidado con la polaridad (conectar el positivo de la pila con el positivo de la electroválvula, y el otro pasarlo por el relé...). Y por supuesto que en lugar de mantener el pulso todo el tiempo que quieras tener abierta la electroválvula tendrías que mantenerlo solo momentáneamente para que la EV cambiará de estado (de abierta a cerrada o al contrario).

      El montaje sería el mismo ya que si te fijas en los relés también funcionan para corriente de 10A y hasta 30V de corriente continua (como la que da una pila de 9V).

      Eliminar
  2. Hola
    una pregunta

    Veo que en tu esquema inicial manejas un diodo directamente en la placa arduino,pero al ver el montaje no distingo en que parte lo colocaste.

    Podrías explicarme donde esta y para que es su uso ??

    ResponderEliminar
    Respuestas
    1. Lo que se ve en la parte de abajo del esquema no es un diodo es un condensador, que aunque en las fotos que hice no lo tenía colocado si que es conveniente ponerlo si vas a conectar por USB un equipo al arduino. Sirve para evitar que el arduino se reinicie cada vez que recibe una conexión por USB (y se vuelva a ejecutar la rutina setup(), ...). Imaginate que este sistema lo tienes conectado a una Raspberry Pi por USB, y está le consulta al arduino cada 5 minutos cual es el estado de la electroválvula (abierta o cerrada). Si no ponemos el condensador, cada vez que la RPi le pida la información a la placa arduino por la conexión USB, se reseteará y volverá a ejecutar la rutina setup(), que a su vez nos cerrará la electroválvula... y nos dira siempre que la EV esta cerrada... Y eso no es lo que queremos...

      Hay varias formas de evitar el autoreset de arduino, una es esta (mediante un condensador de 10uF entre los pines GND y RESET). Si buscas en google por 'arduino disable autoreset on serial connection' te salen todas las formas posibles.

      Muchisimas gracias por tu comentario, y te invito a pasarte por el nuevo dominio que estoy usando para este blog: trasteandoarduino.com, donde tienes un montón mas de entradas que aquí :)

      Eliminar

Nota: solo los miembros de este blog pueden publicar comentarios.