arduino-rele-estado-solido-ssr

Conmutar cargas con Arduino y relé de estado sólido

¿Qué es un relé de estado sólido?

Un relé de estado sólido o SSR (Solid State Relay) es un dispositivo basado en semiconductores con un comportamiento similar a un relé convencional, que podemos emplear junto a un procesador como Arduino para conmutar grandes cargas, incluso de corriente alterna a 220V.

Recordemos que un relé convencional es un dispositivo que emplea un terminal móvil accionado por una bobina para establecer un contacto eléctrico en un circuito secundario. Esto permite controlar grandes cargas desde un circuito primario de baja potencia, compatible para la electrónica de control.

En su lugar, un relé de estado sólido emplea componentes electrónicos basados en semiconductores. Al carecer de partes móviles, un relé de estado sólido tiene ciertas ventajas respecto a un relé convencional.

La principal ventaja es una mayor velocidad de conmutación. Un relé convencional tiene un tiempo de respuesta típico de 0.2s a 2s en función de su tamaño. Con un relé de estado sólido podemos obtener tiempos de conmutación del orden de ms.

La otra gran ventaja es la durabilidad. Un relé convencional sufre desgaste por el movimiento de sus partes, lo que provoca su fallo tras un número de ciclos de encendido y apagado. Un relé de estado sólido carece de partes móviles, por lo que no sufre este problema de desgaste.

Otras ventajas son menor tamaño, funcionamiento silencioso, no hay riesgo de que generen chispas (ambientes inflamables), menor ruido eléctrico, mayor inmunidad al ambiente, (humedad, vibraciones, interferencias electromagnéticas).

Como desventajas, generalmente tienen un precio superior al equivalente convencional, para las mismas características, es decir, tensión nominal y máxima corriente admisible.

Por otro lado la carga soportada por el relé de estado sólido supone en este una serie de pérdidas que se manifiestan en una disipación de calor. Para grandes cargas será necesario añadir un disipador de calor.

Finalmente, pese a su rápido tiempo de respuesta no podemos emplear una señal PWM para regular la intensidad de la carga de corriente alterna (por ejemplo, regular la velocidad de un moto, o la intensidad de una luz).

Los relés de estado sólido pueden ser un sustituto de los relés convencionales que, como sabemos, ocupan un lugar destacado en nuestros proyectos de electrónica, domótica e Internet, ya que nos permiten controlar casi cualquier dispositivo desde un procesador como Arduino.

Por ejemplo, podemos encender un tubo fluorescente desde el móvil, encender o apagar la caldera actuando sobre el termostato, desplegar un toldo o bajar una persiana, encender un sistema de riego, activar o apagar discos duros externos, entre un sinfín de aplicaciones.

Precio

Dentro de la electrónica casera encontramos diversos módulos con relé de estado sólido diseñados para conectar de forma conectar con Arduino. Existen versiones de uno o más canales, cada canal formado por un SSR optoacoplado, con tensión máxima de 240VAC y una corriente máxima admisible de 2A.

Así, tenemos módulos con un canal por 1.65, de dos canales pode 3.25€, de cuatro por 6.15 y de ocho por 10.70€, buscando en vendedores internacionales de eBay o AliExpress.

arduino-rele-estado-solido-componente

Estos módulos, aunque son baratos y cómodos de usar, tienen bajas características eléctricas. Si lo preferimos, podemos usar un relé de estado sólido normal. Por ejemplo, podemos encontrar un relé de estado sólido para tensiones de 24-380VAC y corrientes de hasta 40A por 3.20€.

Estos relés son un poco más caros y voluminosos que los empleados en módulos preparados para Arduino, pero a cambio tienen unas características muy superiores.

arduino-ssr-componente

Estos relés están también optoacoplados, y disponen de protección para que la activación se produzca siempre en el flanco de subida.

¿Cómo funciona un relé de estado sólido?

El componente principal de un relé es un triac, un componente electrónico que a su vez está basado en los tiristores. Ambos elementos son ampliamente empleados en la electrónica de potencia.

Un tiristor presenta un comportamiento similar a un diodo, dado que únicamente deja pasar la corriente en un sentido. Sin embargo, de forma similar a un transistor MOSFET, el estado de conducción está controlado por un terminal Gate.

arduino-tiristor

De forma resumida, un tiristor:

  • Empieza a conducir cuando el Gate se pone en tensión y la señal es positiva.
  • Permanece conduciendo aunque retiremos la tensión de Gate (enclavamiento).
  • Deja de conducir cuando la señal pasa por cero (zero-crossing) y el Gate está desactivado.

Para poder aprovechar este comportamiento con corriente alterna se dispone de los triac que, en esencia, son dos tiristores en sentido contrario compartiendo un terminal Gate común.

El comportamiento es similar a un tiristor, salvo que en un triac la conducción puede producirse tanto en el semiperiodo positivo como en el negativo de la señal alterna.

arduino-triac

El enclavamiento, es decir, el hecho de que tiristores y triacs conducen aunque se retire la tensión de Gate, manteniéndose hasta que la señal pasa por cero, tiene importantes consecuencias cuando manejamos cargas de corriente alterna.

La primera es que el tiempo de activación es muy rápido, ya que únicamente está condicionado por el tiempo de activación del SRR, que es del orden de us.

Sin embargo, la desactivación depende del estado en que se encuentre la señal alterna y puede ser tan largo como 1/(2*f(Hz)), un semi-periodo. En el caso de corriente alterna a 50Hz, el tiempo puede ser de hasta 10ms

Otra consecuencia es la imposibilidad de poder regular una carga alterna mediante un PWM. El motivo es que los disparos de la señal PWM no están sincronizados con la corriente alterna, activando el SSR en distintos puntos de la señal alterna.

arduino-rele-estado-solido-pwm

Dado que el triac conduce hasta el paso por cero, cada semi periodo la carga está recibiendo una energía diferente, lo que produce que en lugar de regular la cargas provoquemos un parpadeo aleatorio.

Pare generar un regulador para cargas de corriente alterna (un dimmer) debemos añadir un integrado de detección de paso por cero, para sincronizar la señal de control del disparo del SSR, con la señal alterna.

Finalmente, remarcar que en los relés de estado sólido los triacs siempre se encuentran optoacoplados, para conseguir un aislamiento galvánico de la etapa secundaria de alta potencia, de la etapa primaria control de electrónica baja potencia.

arduino-rele-estado-solido-funcionamiento

Esquema de montaje

El esquema de conexión es muy sencillo. En primer lugar, conectamos la carga en la clema de conexión. Recordar que para la carga el relé se comporta de forma similar a un interruptor, por lo que en la mayoría de los casos lo que necesitaréis es únicamente intercalar el relé en uno de los polos de la carga, para poder encenderla o apagarla.

Por otro lado, alimentamos la electrónica del módulo conectando DC+ y DC-, respectivamente, a 5V y Gnd en Arduino. Finalmente, conectamos el pin de de señal CH1 a una salida digital cualquiera de Arduino. En el caso de tener un relé con más de un canal, simplemente conectaríamos cada cada pin a una salida digital.

arduino-rele-estado-solido-esquema

La conexión, vista desde Arduino, sería la siguiente.

arduino-rele-estado-solido-conexion

Ejemplos de código

El código necesario es igualmente sencillo, y solo necesitamos tratarla como cualquier otra salida digital tal y como vimos en la entrada salidas digitales.

Por ejemplo, el siguiente código simplemente enciende y apaga la carga en intervalos de 10 segundos.

const int pin = 9;
 
void setup()
{
  Serial.begin(9600);    //iniciar puerto serie
  pinMode(pin, OUTPUT);  //definir pin como salida
}
 
void loop()
{
  digitalWrite(pin, HIGH);   // poner el Pin en HIGH
  delay(10000);               // esperar diez segundos
  digitalWrite(pin, LOW);    // poner el Pin en LOW
  delay(10000);               // esperar diez segundos
}

Si te ha gustado esta entrada y quieres leer más sobre Arduino puedes consultar la sección TUTORIALES DE ARDUINO

Descarga el código

Todo el código de esta entrada está disponible para su descarga en Github. github-full