Skip to main content

Grove - Relé de Estado Sólido de 8 Canales

En lugar de usar bobinas, los relés de estado sólido (SSR) empaquetados utilizan dispositivos semiconductores de potencia como tiristores y transistores, que proporcionan una velocidad de conmutación mucho más rápida que los relés mecánicos. El Grove - Relé de Estado Sólido de 8 Canales está basado en el módulo de alta calidad G3MC202P, que te permite usar 5VDC para controlar MÁX. 240VAC. Con la ayuda de la interfaz Grove, se vuelve muy conveniente usar el SSR con tu arduino.

Utilizamos un STM32F030F4P6 integrado para controlar los canales por separado. El comando desde Arduino u otras placas se transmite a través de la interfaz I2C, el STM32F030F4P6 integrado analizará el comando, para que puedas controlar el interruptor que desees.

Según diferentes escenarios de aplicación, hemos preparado una serie de relés de estado sólido para ti.

Grove - Relé de Estado Sólido V2

Grove - Relé de Estado Sólido de 2 Canales

Grove - Relé de Estado Sólido de 4 Canales

Grove - Relé de Estado Sólido de 8 Canales

Características

  • Bajo consumo de energía

  • Larga duración

  • Dirección I2c opcional

  • Ventajas sobre los relés mecánicos:

    • Los relés de estado sólido tienen velocidades de conmutación mucho más rápidas comparados con los relés electromecánicos, y no tienen contactos físicos que se desgasten
    • Operación totalmente silenciosa
    • Sin contactos físicos significa sin chispas, permite su uso en ambientes explosivos, donde es crítico que no se genere chispa durante la conmutación
    • Mayor vida útil, incluso si se activa muchas veces, ya que no hay partes móviles que se desgasten y no hay contactos que se piquen o acumulen carbón
    • Compacto, SSR de perfil delgado de construcción monobloque con un marco de terminales todo en uno que incorpora una PCB, terminales y disipador de calor, que es mucho más pequeño que los relés mecánicos, y puede integrar más canales
  • Desventajas:

    • Cuando está cerrado, mayor resistencia (generando calor), y mayor ruido eléctrico
    • Cuando está abierto, menor resistencia, y corriente de fuga inversa
    • Solo funciona para carga AC

Especificación

ElementoValor
Voltaje de entrada de operación4~6V
Voltaje de Entrada Nominal5V
Voltaje de Carga Nominal100 a 240 VAC 50/60 Hz
Rango de Voltaje de Carga75 a 264 VAC 50/60 Hz
Corriente de carga0.1 a 2 A
Corriente de fuga1.5 mA máx. (a 200 VAC)
Resistencia de Aislamiento1,000 MΩ mín. (a 500 VDC)
Tiempo de Operación1/2 del ciclo de fuente de alimentación de carga +1 ms máx.
Tiempo de Liberación1/2 del ciclo de fuente de alimentación de carga + 1 ms máx.
Temperatura de Almacenamiento-30°C a 100°C (sin formación de hielo o condensación)
Temperatura de Operación-30°C a 80°C (sin formación de hielo o condensación)
Humedad de Operación45% a 85%RH
Interfaz de EntradaI^2^C
Dirección I^2^C Predeterminada0x11 o 0x12
Dirección I^2^C Disponible0x00 ~ 0x7F
Interfaz de salidaDIP Hembra Azul 2 pines x8
Cruce por Cerocompatible
CertificaciónUL / CSA
note

Puedes prestar atención a la Corriente de fuga, 1.5mA es lo suficientemente fuerte para alimentar un LED de baja potencia, por lo que cuando el relé está apagado, el LED aún puede emitir una luz tenue.

Aplicaciones

  • Operaciones que requieren conmutación de baja latencia, por ejemplo, control de luces de escenario
  • Dispositivos que requieren alta estabilidad, por ejemplo, dispositivos médicos, señales de tráfico
  • Situaciones que requieren a prueba de explosiones, anticorrosión, a prueba de humedad, por ejemplo, industrias del carbón y química.

Descripción del Hardware

Mapa de Pines

note
  • Los interruptores 1-8 tienen la misma función de pin, por lo que para los otros interruptores, puedes referirte a LOAD1/LOAD2.
  • En la parte posterior de la PCB, hay dos interfaces: SWD e I^2^C. La interfaz SWD se usa por defecto al programar firmware, si quieres usar el I^2^C (que en realidad funciona como el UART de arranque), debes configurar el BOOT en Alto.

Esquemático

Control del relé

K1 es el módulo de relé. Cuando se aplica un voltaje de 5V entre INT+ e INT-, el relé se encenderá. Entonces LOAD1 se conectará a LOAD2. Usamos un transistor NPN Q1(BC817-40) para controlar el voltaje entre INT+ e INT-.

CTR es la señal de control del Arduino u otra placa. Es bajada por la resistencia de 10k R2, si no hay señal, la 'Compuerta'(puerto 1) de Q1 será 0v, y Q1 se apaga, por lo que K1 se apagará. Si CTR se convierte en 5v, entonces Q1 se encenderá. INT- de k1 se conectará al GND del sistema, para K1 habrá 5V entre INT+ e INT-, por lo que K1 se encenderá, y LOAD1 se conectará a LOAD2.

Circuito elevador de nivel bidireccional

Este es un circuito elevador de nivel bidireccional típico para conectar dos secciones de voltaje diferentes de un bus I^2^C. El bus I2C de este sensor usa 3.3V, si el bus I2C del Arduino usa 5V, este circuito será necesario. En el esquemático anterior, Q17 y Q18 son MOSFET de Canal N 2N7002A, que actúan como un interruptor bidireccional. Para entender mejor esta parte, puedes referirte al AN10441

note

En esta sección solo te mostramos parte del esquemático, para el documento completo por favor consulta los Recursos

Plataformas Soportadas

ArduinoRaspberry Pi
caution

Las plataformas mencionadas anteriormente como compatibles son una indicación de la compatibilidad de software o teórica del módulo. Solo proporcionamos biblioteca de software o ejemplos de código para la plataforma Arduino en la mayoría de los casos. No es posible proporcionar biblioteca de software / código de demostración para todas las plataformas MCU posibles. Por lo tanto, los usuarios tienen que escribir su propia biblioteca de software.

Primeros Pasos

Jugar Con Arduino

Hardware

Materiales requeridos

Seeeduino V4.2Base ShieldGrove - 8-Channel Solid State Relay
enter image description hereenter image description hereenter image description here
Obtener Uno AhoraObtener Uno AhoraObtener Uno Ahora
note

1 Por favor conecta el cable USB suavemente, de lo contrario puedes dañar el puerto. Por favor usa el cable USB con 4 cables en el interior, el cable de 2 cables no puede transferir datos. Si no estás seguro sobre el cable que tienes, puedes hacer clic aquí para comprar

2 Cada módulo Grove viene con un cable Grove cuando lo compras. En caso de que pierdas el cable Grove, puedes hacer clic aquí para comprar.

  • Paso 1. Conecta el Grove - 8-Channel Solid State Relay al puerto I^2^C del Base Shield.

  • Paso 2. Conecta el Grove - Base Shield al Seeeduino.

  • Paso 3. Conecta el Seeeduino a la PC mediante un cable USB.

note

Si no tenemos Grove Base Shield, también podemos conectar directamente este módulo al Seeeduino como se muestra a continuación.

SeeeduinoGrove - 8-Channel Solid State Relay
5VRojo
GNDNegro
SDABlanco
SCLAmarillo

Software

note

Si esta es la primera vez que trabajas con Arduino, te recomendamos encarecidamente que veas Comenzando con Arduino antes de empezar.

  • Paso 1. Descarga la librería Multi_Channel_Relay_Arduino desde Github.

  • Paso 2. Consulta Cómo instalar una librería para instalar la librería para Arduino.

  • Paso 3. Reinicia el IDE de Arduino. Abre el ejemplo a través de la ruta: Archivo --> Ejemplos --> Multi Channel Relay Arduino Library --> eight_channel_relay_control.

O, puedes simplemente hacer clic en el icono en la esquina superior derecha del bloque de código para copiar el siguiente código en un nuevo sketch en el IDE de Arduino.

#include <multi_channel_relay.h>

#define USE_8_CHANNELS (1)

Multi_Channel_Relay relay;

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

/* Scan I2C device detect device address */
relay.begin();
uint8_t old_address = relay.scanI2CDevice();
if((0x00 == old_address) || (0xff == old_address)) {
while(1);
}

Serial.println("Start write address");
relay.changeI2CAddress(old_address, 0x11); /* Set I2C address and save to Flash */
Serial.println("End write address");

/* Read firmware version */
Serial.print("firmware version: ");
Serial.print("0x");
Serial.print(relay.getFirmwareVersion(), HEX);
Serial.println();
}

void loop()
{

/**
* channle: 8 7 6 5 4 3 2 1
* state: 0b00000000 -> 0x00 (all off)
* state: 0b11111111 -> 0xff (all on)
*/

/* Begin Controlling Relay */
Serial.println("Channel 1 on");
relay.turn_on_channel(1);
delay(500);
Serial.println("Channel 2 on");
relay.turn_off_channel(1);
relay.turn_on_channel(2);
delay(500);
Serial.println("Channel 3 on");
relay.turn_off_channel(2);
relay.turn_on_channel(3);
delay(500);
Serial.println("Channel 4 on");
relay.turn_off_channel(3);
relay.turn_on_channel(4);
delay(500);
#if(1==USE_8_CHANNELS)
Serial.println("Channel 5 on");
relay.turn_off_channel(4);
relay.turn_on_channel(5);
delay(500);
Serial.println("Channel 6 on");
relay.turn_off_channel(5);
relay.turn_on_channel(6);
delay(500);
Serial.println("Channel 7 on");
relay.turn_off_channel(6);
relay.turn_on_channel(7);
delay(500);
Serial.println("Channel 8 on");
relay.turn_off_channel(7);
relay.turn_on_channel(8);
delay(500);
relay.turn_off_channel(8);
#endif

relay.channelCtrl(CHANNLE1_BIT |
CHANNLE2_BIT |
CHANNLE3_BIT |
CHANNLE4_BIT |
CHANNLE5_BIT |
CHANNLE6_BIT |
CHANNLE7_BIT |
CHANNLE8_BIT);
Serial.print("Turn all channels on, State: ");
Serial.println(relay.getChannelState(), BIN);

delay(2000);

relay.channelCtrl(CHANNLE1_BIT |
CHANNLE3_BIT |
CHANNLE5_BIT |
CHANNLE7_BIT);
Serial.print("Turn 1 3 5 7 channels on, State: ");
Serial.println(relay.getChannelState(), BIN);

delay(2000);

relay.channelCtrl(CHANNLE2_BIT |
CHANNLE4_BIT |
CHANNLE6_BIT |
CHANNLE8_BIT);
Serial.print("Turn 2 4 6 8 channels on, State: ");
Serial.println(relay.getChannelState(), BIN);

delay(2000);


relay.channelCtrl(0);
Serial.print("Turn off all channels, State: ");
Serial.println(relay.getChannelState(), BIN);

delay(2000);
}
  • Paso 4. Sube la demostración. Si no sabes cómo subir el código, por favor consulta Cómo subir código.

  • Paso 5. Abre el Monitor Serie del IDE de Arduino haciendo clic en Herramienta-> Monitor Serie. O presiona las teclas ++ctrl+shift+m++ al mismo tiempo.

tip

Si todo va bien, obtendrás el resultado. Mientras tanto, verás los LEDs de la placa encenderse y apagarse alternativamente.

Scanning...
I2C device found at address 0x11 !
Found 1 I2C devices
Start write address
End write address
firmware version: 0x1
Channel 1 on
Channel 2 on
Channel 3 on
Channel 4 on
Channel 5 on
Channel 6 on
Channel 7 on
Channel 8 on
Turn all channels on, State: 11111111
Turn 1 3 5 7 channels on, State: 1010101
Turn 2 4 6 8 channels on, State: 10101010
Turn off all channels, State: 0
Channel 1 on
Channel 2 on

note

No añadimos carga en esta demostración, si quieres verificar cómo añadir carga, por favor consulta el Grove - 2-Channel Solid State Relay.

Descripción de funciones

FunciónDescripción
changeI2CAddress(uint8_t old_addr, uint8_t new_addr)cambia la dirección del dispositivo, el old_addr es la dirección actual; el new_addr es la dirección que quieres usar. La nueva dirección solo se puede establecer exitosamente ingresando la dirección antigua correcta.
scanI2CDevice()obtiene el old_addr (dirección actual)
getChannelState()obtiene el estado de cada canal, por ejemplo "State: 1111", lo que significa que todos los relés están encendidos
getFirmwareVersion()obtiene la versión del firmware grabada en el MCU de la placa
channelCtrl(uint8_t state)para cambiar inmediatamente todos los canales que seleccionaste, la lista de parámetros de estado:

CHANNLE1_BITo 0x01
CHANNLE2_BIT o 0x02
CHANNLE3_BIT o 0x04
CHANNLE4_BIT o 0x08
CHANNLE5_BIT o 0x10
CHANNLE6_BIT o 0x20
CHANNLE7_BIT o 0x40
CHANNLE8_BIT o 0x80

ej.
channelCtrl(CHANNLE2_BIT|CHANNLE3_BIT),encenderá el canal 2, canal 3
channelCtrl(0x01|0x02|0x08), encenderá el canal 1, canal 2 y canal 4.
channelCtrl(0), apagará todos los canales.
turn_on_channel(uint8_t channel)para encender un solo canal.
ej.
turn_on_channel(3), encenderá el canal 3
turn_off_channel(uint8_t channel)para apagar un solo canal.
ej.
turn_off_channel(3), apagará el canal 3

En caso de que quieras cambiar la dirección, necesitas establecer la dirección antes de usar. Por ejemplo, queremos cambiarla a 0x2f. Podemos usar el siguiente código.

#include <multi_channel_relay.h>

Multi_Channel_Relay relay;

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

/* Scan I2C device detect device address */
uint8_t old_address = relay. ;
if((0x00 == old_address) || (0xff == old_address)) {
while(1);
}

Serial.println("Start write address");
relay.changeI2CAddress(old_address,0x2f); /* Set I2C address as 0x2f and save it to the EEPRom */
Serial.println("End write address");

/* Read firmware version */
Serial.print("firmware version: ");
Serial.print("0x");
Serial.print(relay.getFirmwareVersion(), HEX);
Serial.println();
}


FAQ

P1: ¿Cómo grabar el firmware?

R1: Recomendamos que uses el grabador J-Link y la interfaz WSD para grabar el firmware.

Puedes descargar el firmware aquí:

Firmware de fábrica

Recomendamos que uses J-flash para el software:

J-flash

Visor de Esquemas en Línea

Recursos

Proyecto

Este es el video de introducción de este producto, demostraciones simples, puedes intentarlo.

Soporte Técnico y Discusión del Producto

¡Gracias por elegir nuestros productos! Estamos aquí para brindarte diferentes tipos de soporte para asegurar que tu experiencia con nuestros productos sea lo más fluida posible. Ofrecemos varios canales de comunicación para atender diferentes preferencias y necesidades.

Loading Comments...