Grove - Relé SPDT de 4 Canais

O relé Single Pole Double Throw (SPDT) é bastante útil em certas aplicações porque possui um terminal comum e 2 contatos, o que é ótimo para selecionar entre duas opções. O Grove - Relé SPDT de 4 Canais possui quatro chaves de single pole - double throw (SPDT). Ele requer apenas sinais de baixa tensão e baixa corrente para controlar essas chaves. Especificamente, você pode usar 5V DC para controlar até 250V AC ou 110V DC. O endereço I2C é alterável, para que você possa usar vários módulos de relé no mesmo projeto. O Grove - Relé SPDT de 4 Canais possui quatro chaves de single pole - double throw (SPDT). Ele requer apenas sinais de baixa tensão e baixa corrente para controlar essas chaves. Especificamente, você pode usar 5V DC para controlar até 250V AC ou 110V DC.
Nós usamos um STM32F030F4P6 on-board para controlar os canais separadamente. O comando vindo do Arduino ou de outras placas é transmitido via interface I2C, o STM32F030F4P6 on-board irá interpretar o comando, para que você possa controlar a chave que desejar.
Leitura prévia
Uma introdução de O que é um Módulo de Relé Grove e Como funciona um Relé é leitura fortemente recomendada antes, se você não estiver familiarizado com eles. Visite nosso blog abaixo para informações detalhadas:
Características
- Caixa plástica resistente a alta temperatura
- Carga de alta tensão
- Baixo consumo de energia
- Longa durabilidade
- Endereço I2C opcional
- 0x00 ~ 0x7F
Especificação
| Item | Valor |
|---|---|
| Tensão de trabalho | 5V |
| Corrente nominal da bobina | 89.3mA |
| Carga com certificação TUV | 10A 250VAC/ 10A 30VDC |
| Carga com certificação UL | 10A 125VAC 28VDC |
| Tensão máxima permitida | 250VAC/110VDC |
| Consumo de energia | aprox. 0.45W |
| Resistência de contato | 100mΩ máx. |
| Resistência de isolamento | 100MΩ mín. (500VDC) |
| Comutação máxima LIGA/DESLIGA | 30 operações/min |
| Temperatura ambiente | -40°C a +85°C |
| Umidade de operação | 45% a 85% r.h. |
| Material de contato | AgCdO |
| Interface de entrada | I^2^C |
| Endereço I^2^C padrão | 0x11 ou 0x12 |
| Endereço I^2^C disponível | 0x00 ~ 0x7F |
| Interface de saída | Terminal de parafuso fêmea DIP de 3 pinos - Verde |
Para o parâmetro de carga, fornecemos dois conjuntos de dados de certificação. Na verdade, a carga máxima é 10A 250VAC/10A 30VDC.
Aplicações
- Eletrodoméstico
- Máquina de escritório
- Receptor de TV com controle remoto
- Monitor
- Aplicações de equipamento de áudio com alta corrente de surto
Primeiros Passos
Plataformas Suportadas
| Arduino | Raspberry Pi | |||
|---|---|---|---|---|
![]() | ![]() | ![]() | ![]() | ![]() |
As plataformas mencionadas acima como suportadas são uma indicação da compatibilidade de software ou teórica do módulo. Na maioria dos casos, fornecemos apenas biblioteca de software ou exemplos de código para a plataforma Arduino. Não é possível fornecer biblioteca de software / código de demonstração para todas as possíveis plataformas de MCU. Portanto, os usuários têm que escrever sua própria biblioteca de software.
Brincar com Arduino
Hardware
Materiais necessários
| Seeeduino V4.2 | Base Shield | Grove - Relé SPDT de 4 Canais |
|---|---|---|
![]() | ![]() | |
| Adquira agora | Adquira agora | Adquira agora |
-
Conecte o cabo USB suavemente, caso contrário você pode danificar a porta. Use o cabo USB com 4 fios internos, o cabo de 2 fios não consegue transferir dados. Se você não tiver certeza sobre o cabo que possui, pode clicar aqui para comprar.
-
Cada módulo Grove vem com um cabo Grove quando você compra. Caso você perca o cabo Grove, pode clicar aqui para comprar.
Visão geral do hardware

Se não tivermos o Grove Base Shield, também podemos conectar este módulo diretamente ao Seeeduino como abaixo.
| Seeeduino | Grove - Relé SPDT de 4 Canais |
|---|---|
| 5V | Vermelho |
| GND | Preto |
| SDA | Branco |
| SCL | Amarelo |
Mapa de pinos


- As chaves 1-4 têm a mesma função de pino, então, para as outras chaves, você pode se referir a NC1/COM1/NO1.
- Na parte de trás da PCB, há duas interfaces: SWD e I^2^C. A interface SWD é usada por padrão ao programar o firmware; se você quiser usar o I^2^C (na verdade funciona como a UART de boot), você deve definir o BOOT em nível alto.
-
Passo 1. Conecte o Grove - Relé SPDT de 4 Canais à porta I^2^C do Base Shield.
-
Passo 2. Conecte o Grove - Base Shield ao Seeeduino.
-
Passo 3. Conecte o Seeeduino ao PC via cabo USB.
Software
Se esta é a primeira vez que você trabalha com Arduino, recomendamos fortemente que veja Getting Started with Arduino antes de começar.
-
Passo 1. Baixe a biblioteca Multi_Channel_Relay_Arduino do Github.
-
Passo 2. Consulte How to install library para instalar a biblioteca para Arduino.
-
Passo 3. Reinicie a Arduino IDE. Abra o exemplo pelo caminho: File --> Examples --> Multi Channel Relay Arduino Library --> four_channel_relay_control.

Ou você pode simplesmente clicar no ícone
no canto superior direito do bloco de código para copiar o seguinte código em um novo sketch na Arduino IDE.
#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.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);
relay.turn_off_channel(4);
relay.channelCtrl(CHANNLE1_BIT |
CHANNLE2_BIT |
CHANNLE3_BIT |
CHANNLE4_BIT);
Serial.print("Turn all channels on, State: ");
Serial.println(relay.getChannelState(), BIN);
delay(2000);
relay.channelCtrl(CHANNLE1_BIT |
CHANNLE3_BIT);
Serial.print("Turn 1 3 channels on, State: ");
Serial.println(relay.getChannelState(), BIN);
delay(2000);
relay.channelCtrl(CHANNLE2_BIT |
CHANNLE4_BIT);
Serial.print("Turn 2 4 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);
}
O arquivo de biblioteca pode ser atualizado. Este código pode não ser aplicável ao arquivo de biblioteca atualizado, portanto, recomendamos que você use os primeiros métodos.
-
Etapa 4. Faça o upload do demo. Se você não sabe como fazer o upload do código, verifique How to upload code.
-
Etapa 5. Abra o Serial Monitor da Arduino IDE clicando em Tool-> Serial Monitor. Ou pressione as teclas ++ctrl+shift+m++ ao mesmo tempo.
Se tudo correr bem, você obterá o resultado. Enquanto isso, você verá os LEDs on-board acendendo e apagando alternadamente.
Scanning...
I2C device found at address 0x12 !
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
Turn all channels on, State: 1111
Turn 1 3 channels on, State: 101
Turn 2 4 channels on, State: 1010
Turn off all channels, State: 0
Channel 1 on
Channel 2 on
O Grove - 4-Channel SPDT Relay estará funcionando como abaixo se tudo correr bem.

Nós não adicionamos carga neste demo, se você quiser verificar como adicionar carga, consulte o Grove - 2-Channel SPDT Relay.
Descrição das funções
| Função | Descrição |
|---|---|
| changeI2CAddress(uint8_t old_addr, uint8_t new_addr) | altera o endereço do dispositivo, o old_addr é o endereço atual; o new_addr é o endereço que você quer usar. O novo endereço só pode ser configurado com sucesso inserindo o endereço antigo correto. |
| scanI2CDevice() | obter o old_addr (endereço atual) |
| getChannelState() | obter o estado de cada canal, por exemplo "State: 1111", o que significa que todos os relés estão ligados |
| getFirmwareVersion() | obter a versão do firmware gravada no MCU on-board |
| channelCtrl(uint8_t state) | para alterar imediatamente todos os canais que você selecionou, a lista de parâmetros state: CHANNLE1_BITou 0x01 CHANNLE2_BIT ou 0x02 CHANNLE3_BIT ou 0x04 CHANNLE4_BIT ou 0x08 por exemplo. channelCtrl(CHANNLE2_BIT|CHANNLE3_BIT),irá ligar o canal 2 e o canal 3 channelCtrl(01|02|08), irá ligar o canal 1, canal 2 e canal 4. channelCtrl(0), irá desligar todos os canais. |
| turn_on_channel(uint8_t channel) | para ligar um único canal. por exemplo. turn_on_channel(3), irá ligar o canal 3 |
| turn_off_channel(uint8_t channel) | para desligar um único canal. por exemplo. turn_off_channel(3), irá desligar o canal 3 |
Caso você queira alterar o endereço, é necessário configurá-lo antes de usar. Por exemplo, queremos alterá-lo para 0x2f. Podemos usar o seguinte 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: Como gravar o firmware?
R1: Recomendamos que você use o gravador J-Link e a interface WSD para gravar o firmware.
Você pode baixar o firmware aqui:
Recomendamos que você use o J-flash como software:

Visualizador Online do Esquemático
Como os chips da série ST32 estão em falta globalmente, os preços aumentaram várias vezes e não há uma data de entrega clara. Não tivemos escolha a não ser mudar para o chip MM32. Os modelos de substituição específicos são os seguintes: STM32F030F4P6TR é substituído por MM32F031F6P6. Após a substituição do chip, as funções do produto, características, métodos de uso e códigos permanecem inalterados. Deve-se notar que a versão do firmware mudou, e o firmware de fábrica foi ajustado de acordo com diferentes chips. Se você precisar regravar o firmware, faça o download do firmware correspondente ao chip.
Recursos
- [Zip] Arquivos eagle do Grove-4-Channel SPDT Relay
- [Bin] Firmware STM32F030F4P6TR
- [Bin] Firmware MM32F031F6P6
- [PDF] Datasheet do relé SRD 05VDC-SL-C
- [PDF] Datasheet do S9013
- [PDF] Datasheet do STM32
- [PDF] MM32F031F6P6_Datasheet.pdf
Projeto
Este é o vídeo de introdução deste produto, com demos simples que você pode experimentar.
Automação e Monitoramento Residencial: Um sistema baseado em RSL10 Sense DB que pode monitorar e controlar a temperatura, umidade e intensidade de luz por aplicativo de smartphone e Alexa.
Grove - 4-Channel SPDT Relay: Ei Seeekers!!! Esta é a segunda semana do nosso segmento #newproductsTuesday. Haverá uma demonstração de produto do nosso novo Grove - 4-Channel SPDT Relay neste vídeo e também um demo bem interessante.
Suporte Técnico e Discussão de Produto
Obrigado por escolher nossos produtos! Estamos aqui para oferecer diferentes tipos de suporte para garantir que sua experiência com nossos produtos seja a mais tranquila possível. Oferecemos vários canais de comunicação para atender a diferentes preferências e necessidades.








