Olá Garagistas! Neste tutorial mostraremos como utilizar a RelayBoard, uma placa muito útil que junta a praticidade com a economia, pois com apenas 3 pinos de controle você pode acionar diversos relés. E como demonstração disponibilizamos ao final deste tutorial um sketch exemplo, utilizando uma biblioteca desenvolvida para Arduino!
Material Utilizado:
1. RelayBoard
Imagem 1 - RelayBoard
Criada pelo garagista Gustavo Suim e incubada pelo Lab de Garagem, a RelayBoard é uma placa expansível que com apenas 3 pinos de controle, permite acionar até 8 relés por placa. Com mais de uma placa ligadas juntas é possível controlar 8, 16, 24, até 80 relés, com apenas um microcontrolador. Foi desenvolvida uma biblioteca para Arduino para facilitar o controle de todos os relés, podendo determinar qual a Placa a ser acionada, o Relé e seu Estado (ON/OFF) independentemente.
Pinos de Controle da RelayBoard:
Data: Pino responsável pelo envio dos dados responsáveis pelo controle das saídas.
Strobe: Pino responsável por disponibilizar nas saídas as entradas carregadas.
Clock: Pino responsável pelo clock das placas.
2. Biblioteca - RelayBoard.h
A biblioteca, e toda a documentação de como utilizá-la pode ser encontrada clicando aqui. A descrição das funções da biblioteca podem ser encontradas abaixo:
- #include <RelayBoard.h>
Declaração necessária para utilização da placa.
- RelayBoard::RelayBoard(int date, int str, int clk, int numberboard)
Ex.: RelayBoard relay(2,4,6,2); // cria o objeto “relay” com as devidas propriedades
Observação:
- void RelayBoard::set(int shield, int out, boolean status)
Ex.: relay.set(0,3,1);
Observações:
- void RelayBoard::load(int board, int out, boolean status)
Ex.: relay.load(0,2,1);
Observação:
- void RelayBoard::go()
Após carregar as saídas solicitadas na função LOAD, à função GO faz o acionamento simultâneo das saídas solicitadas.
Ex.: relay.go();
3. Circuito da Demonstração
Utilizando uma fonte 12V para alimentar a(s) RelayBoard e o Arduino, faça as ligações do circuito abaixo.
Imagem 2 - Circuito da demonstração
4. Sketch da Demonstração
//====================================================================================
#include <RelayBoard.h> //Inclui a biblioteca RelayBoard.h
#define data 6 //Define a palavra data como 6 para o pino D6 ser utilizado como o pino do DATA
#define strobe 3 //Define a palavra strobe como 4 para o pino D4 ser utilizado como o pino do STROBE
#define clock 2 //Define a palavra clock como 2 para o pino D2 ser utilizado como o pino do CLOCK
#define numberboards 2 //Define a palavra numberboards como 2, onde é definido quantas RelayBoard há no circuito
RelayBoard relay(data, strobe, clock, numberboards); //Cria a instância, informando os pinos de controle e o número //de placas no circuito
int i; //Variável para contagem
int j; //Variável para contagem
void setup()
{
delay(1000); //Aguarda 1 segundo antes de iniciar o programa
}
void loop()
{
//relay.set(int board, int out, boolean status)
//Board: Informa qual a placa que deverá ser utilizada, começando de 0.
//Out: informa qual a saída da placa informada acima deverá ser acionada (ON/OFF), de 0 a 7
//Status: Devemos informar "1" para LIGAR a saída ou "0" para DESLIGAR a saída.
//relay.load(int board, int out, boolean status)
//Board: Informa qual a placa que deverá ser utilizada, começando de 0.
//Out: informa qual a saída da placa informada acima deverá ser acionada (ON/OFF), de 0 a 7
//Status: Devemos informar "1" para LIGAR a saída ou "0" para DESLIGAR a saída.
//relay.go()
//Após carregar as saídas solicitadas na função LOAD, à função GO faz o acionamento simultâneo das //saídas solicitadas.
for(i=0; i<=7; i++)
{
relay.set(0,i,1);
delay(50);
relay.set(0,i,0);
delay(50);
}
for(i=7; i>=0; i--)
{
relay.set(0,i,1);
delay(50);
relay.set(0,i,0);
delay(50);
}
for(i=0,j=7;i<=3;i++,j--)
{
relay.load(0,i,1);
relay.load(0,j,1);
relay.go();
delay(50);
}
for(i=3,j=4;i>=0;i--,j++)
{
relay.load(0,i,0);
relay.load(0,j,0);
relay.go();
delay(50);
}
for(i=0;i<=1;i++)
{
for(j=0;j<=1;j++)
{
relay.load(0,0,j);
relay.load(0,1,j);
relay.load(0,6,j);
relay.load(0,7,j);
relay.go();
delay(500);
}
}
for(i=0;i<=1;i++)
{
for(j=0;j<=1;j++)
{
relay.load(0,2,j);
relay.load(0,3,j);
relay.load(0,4,j);
relay.load(0,5,j);
relay.go();
delay(500);
}
}
for(i=0; i<=7; i++)
{
relay.load(0,i,0);
}
relay.go();
delay(500);
for(i=0; i<=7; i++)
{
relay.load(0,i,1);
}
relay.go();
delay(500);
for(i=0; i<=7; i++)
{
relay.set(1,i,1);
delay(50);
relay.set(1,i,0);
delay(50);
}
for(i=7; i>=0; i--)
{
relay.set(1,i,1);
delay(50);
relay.set(1,i,0);
delay(50);
}
for(i=0,j=7;i<=3;i++,j--)
{
relay.load(1,i,1);
relay.load(1,j,1);
relay.go();
delay(50);
}
for(i=3,j=4;i>=0;i--,j++)
{
relay.load(1,i,0);
relay.load(1,j,0);
relay.go();
delay(50);
}
for(i=0;i<=1;i++)
{
for(j=0;j<=1;j++)
{
relay.load(1,0,j);
relay.load(1,1,j);
relay.load(1,6,j);
relay.load(1,7,j);
relay.go();
delay(500);
}
}
for(i=0;i<=1;i++)
{
for(j=0;j<=1;j++)
{
relay.load(1,2,j);
relay.load(1,3,j);
relay.load(1,4,j);
relay.load(1,5,j);
relay.go();
delay(500);
}
}
for(i=0; i<=7; i++)
{
relay.load(1,i,0);
}
relay.go();
delay(500);
for(i=0; i<=7; i++)
{
relay.load(1,i,1);
}
relay.go();
delay(1000);
for(i=0; i<=7; i++)
{
relay.load(1,i,0);
relay.load(0,i,0);
}
relay.go();
}
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Então é isso Garagistas! Agora vocês podem começar a utilizar essa placa para fazer uma automação na sua residência, esperamos que tenham gostado deste tutorial, até a próxima!
=D
Comentar
Alguém Ainda tem uma Relay Board pra venda precisando muito no aguardo....
Bom dia Garagistas, Vocês ainda tem disponível a Relay Board pra venda não estou conseguindo encontrar no site se poder me passar um link pra compra agradeço Obrigado......
posso usa um relayboard, 1 arduino uno e1 shield ethernet com apenas uma fonte 12V 1A?
Srs.,
Adquiri recentemente uma placa RelayBoard e, desculpem-me pela ousadia, o resistor de 10K já deveria vir montado na placa, nem que fosse uma "gambiarra".
A imunidade a ruídos, em ambiente industrial é muito baixa, mesmo instalando "snubbers" nos contatos dos relés, fica "mais ou menos" boa quando o cabeamento de interligação entre Arduino e a placa de relés é blindado com aterramento em um dos lados, com comprimento máximo de 15 cm.
Sugiro revisão do projeto, com enfase no dimensionamento e realocação de trilhas do lado digital que funcionam como antenas, captando quaisquer ruídos eletromagnéticos, principalmente próximo a equipamentos elétricos de média/baixa tensão, como motores e contatores.
Bom dia Garagistas, tenho uma relay board para experimentos, quando recebi ela estava funcionando normalmene, como estou estudando ainda, não mexi nela por um bom tempo, ai ela começou com o seguinte problema, o relé 7 não obedece mais direito aos comandos, e para ele funcionar depende de como está o estado dos relés 1 e 2, alguém já enfrentou esse problema??? se sim, como faço para resolver, mas quanto a isso ta tranquilo, a placa eh para testes mesmo, vou adquirir mais placas pq vi que funciona muito bem.
Mais uma coisa, não estou conseguindo fazer ela funcionar pela internet, alguém tem um exemplo que possa me passar???
Desde já agradeço.
se puderem enviar para meu e-mail o exemplo, agradeço
Olá, acabei de adquirir duas relayboard's. Alguém poderia me informar qual é o chip de controle da placa?
Eu tenho que acionar meu relayboard com um controlador nada convencional, porém muito robusto a sistemas de medidas ambientais. Ele é baseado em programação Basic. Eu tenho alguns pinos de controle pra utilizar na relay board mas só vou poder usar essa sketch de exemplo e as bibliotecas em C como inspiração. Se tiver a informação do chip talvez consiga ver melhor como fazer funcionar no meu controlador.
queria controlar com botões cada reles da placa como faço??
alguem ajuda ai começando agora um um pouco atrapalhado ainda. :).
olá boa noite eu comprei um relayboard e desejo utilizar com acionamento ifran vermelho controle remoto alguem ai tem algum código que possa me passar desde ja agradeço
cara, tem algum macete na inicialização?
estou utilizando a relayboard com o arduino leonardo. quando inicializo o programa via pc, (compilando o sketch) a placa inicia normalmente, mas quando ligo utilizando fonte 5v a relayboard acende alguns reles aleatoriamente e trava. ja tentei utilizando a fonte apenas no arduino, alimentando a relayboard com junpers, a partir da relayboard tmb, e utilizando fonte nas duas placas, mas sem os jumpers de alimentação. montei o circuito como foi passado, com o resistor de 10k. por favor garagistas me ajudem :)
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2023 Criado por Marcelo Rodrigues.
Ativado por
Você precisa ser um membro de Laboratorio de Garagem (arduino, eletrônica, robotica, hacking) para adicionar comentários!
Entrar em Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)