Módulo Relé Serial - Primeiro Contato
Introdução
Acabou de comprar seu Relé Serial e não sabe por onde começar? Não se preocupe, vamos te guiar nos primeiros passos para compreender o funcionamento e a aplicação do nosso Módulo Relé.
Nesse tutorial vamos abordar o básico das ligações eletrônicas e da programação para você poder começar a desenvolver seu projeto utilizando o Módulo Relé Serial.
Lista de Materiais
Lista completa de produtos
comprarBlackBoard UNO R3
Módulo Relé Serial
Fonte Chaveada 12V 1A
Cabo USB AB 1.50m
Jumper Premium 10cm Macho-Fêmea - 40 Unidades
Teoria
Um relé é um interruptor eletromecânico que é acionado quando uma corrente elétrica passa pela bobina do módulo, sendo que este interruptor pode acionar lâmpadas ou motores. Pensando nisso, conseguimos bolar diversos projetos legais! Imagine controlar as lâmpadas da sua casa pelo Arduino? Ou então acionar o motor das suas persianas?
Existem diversos módulos relé com vários canais, ou seja, para acionar mais de uma carga utilizando apenas uma placa. No entanto, cada relé necessita de uma conexão direta com o seu Arduino. Inicialmente pode não parecer um problema, mas caso você queira ligar centenas de relés em apenas um Arduino UNO, você perceberá que é extremamente complexo controlar cada relé diretamente pela saída da placa, sem contar na quantidade de pinos utilizados. Pensando nesse problema, nós da RoboCore desenvolvemos o Módulo Relé Serial.
O Relé Serial possibilita que com apenas dois pinos digitais do seu Arduino você possa controlar até 40 relés (10 módulos) de forma simples e rápida. Mas como fazer isso? Fique tranquilo, a gente vai te ajudar.
Circuito
Monte o circuito de acordo com a imagem a seguir. Lembrando que pelo fato do Módulo Relé Serial ser alimentado por uma tensão de 12 V, é necessário que a BlackBoard seja alimentada externamente com uma fonte de 12 V e que o módulo seja ligado no pino VIN da BlackBoard. Não se preocupe, o Arduino regula a tensão da fonte e faz com que os 12 V sejam levados diretamente para o pino VIN e os demais pinos de alimentação continuam regulados normalmente (3V3 e 5V).
Programação
Biblioteca
Vamos começar baixando a biblioteca do Módulo Relé Serial para que você possa programar ele no seu computador. Para fazer o download, clique no botão abaixo.
Download da BibliotecaPara descompactar o arquivo, utilize o programa 7-Zip. O 7-Zip é um programa similar ao WinRAR, mas gratuito (eu sei, você achava que o WinRAR é gratuito, mas não é!).
Aprenda a instalar bibliotecas no nosso tutorial Adicionando Bibliotecas na IDE Arduino.
Blink
Iremos começar fazendo com que um dos relés do módulo acenda e apague a cada um segundo, no caso, o primeiro relé. Para isso, utilizaremos o exemplo Blink presente na biblioteca que baixamos anteriormente. Clique na aba Arquivo > Exemplos > Exemplo de Bibliotecas Personalizadas > RoboCore Serial Relay > Blink.
Você deve enxergar o seguinte.
Agora basta conectar a sua BlackBoard no computador, definir a placa como Arduino/Genuino UNO e selecionar a porta. Para definir a placa siga o seguinte caminho: Ferramentas > Placa > Arduino/Genuino UNO. Para selecionar a porta USB: Ferramentas > Porta > Porta Ativa.
Entendendo o Código
A primeira linha do código #include <SerialRelay.h>
inclui a biblioteca que baixamos anteriormente, possibilitando a utilização das funções que ativam o módulo relé.
Em sequência, temos o seguinte.
Nesse bloco, adicionamos as variáveis que serão utilizadas. A linha const byte NumModules = 1
configura uma variável que será relacionada à quantidade de módulos utilizados (vamos mexer mais nisso depois). A linha SerialRelay relays(4,5,NumModules)
seleciona as configurações do módulo, ou seja, a pinagem e a quantidade, sendo dadas do seguinte modo: (pino data, pino clock, quantidade de módulos utilizados).
Não utilizamos nada na função setup()
(por enquanto!). Afinal, a configuração dos pinos do módulo já foi feita anteriormente, na declaração do objeto relay
.
Vamos agora analisar a lógica de acionamento.
Nesse bloco, nós criamos a sequência que aciona o relé. Utilizando os comandos SetRelay(1, SERIAL_RELAY_ON, 1)
para ligar o relé, e o SetRelay(1, SERIAL_RELAY_OFF, 1)
para desligar o mesmo. Já o comando delay(1000)
configura um intervalo de 1 segundo entre cada ação. Logo, o relé será ligado e desligado à cada um segundo.
O que Deve Acontecer
Após o carregamento do código na sua BlackBoard, você poderá observar o seguinte.
CycleRelays
Agora, siga os mesmos passos do exemplo anterior, mas dessa vez abra o exemplo CycleRelays ao invés do Blink. Você deverá ver o seguinte.
Antes de carregar o código para a sua placa, como explicado anteriormente, altere a quantidade de módulos para 1, do seguinte modo const int NumModules = 1;
.
Entendendo o Código
O código atual só acrescenta uma variável PauseTime = 1000
para configurar como um delay
posteriormente, já as demais variáveis ficam iguais. As maiores alterações vão começar na seção setup()
.
Nessa seção, iniciamos o monitor serial, e apresentamos as informações do módulo. Quando você abrir o monitor serial, em 19200 bps, verá o seguinte.
Qty:1<br>[1] - 0b0
Agora na seção loop()
, começamos a trabalhar com novas funções para fazer o acionamento dos relés.
No bloco acima, abrimos uma função for
e criamos uma variável local referente à quantidade de módulos para configurar o acionamento repetitivo dos relés. A instrução for
tem um corpo composto por três partes, sendo elas (inicialização; condição; incremento)
No nosso código, a inicialização é dada por for(int i=1 ; i = NumModules ; i++)
. Mas o que isso significa? Dada a variável i = 1
, se ela for igual ou menor que o número de módulos, vamos somar 1 ao seu valor.
A inicialização só acontece uma vez, e em cada repetição a condição é testada. Se a instrução for verdadeira, o incremento é executado, caso não seja, o laço é interrompido.
Em sequência, criamos outra variável local, dessa vez relacionada aos quatro relés, e não ao módulo em si.
Utilizando o mesmo princípio do bloco anterior, a função vai ser realizada até que os quatro relés sejam acionados, e damos o comando para acionamento do seguinte modo.
A mesma lógica se aplica ao outro bloco do código, onde a única diferença é o comando para desligar o relé.
Em ambos os casos, a variável PauseTime
é utilizada dentro do delay para configurar uma pausa de 1000 milissegundos (1 segundo) para ligar e desligar os relés.
O que Deve Acontecer
Depois de carregar o código para a placa, o seguinte deve acontecer.
CycleRelays com Mais Módulos
Lembra que no começo dissemos que é possível controlar até 40 relés utilizando apenas duas portas digitais? Agora é a hora de testar isso. Nesse exemplo vamos conectar mais um Módulo Relé Serial no módulo que já estamos usando e vamos fazer com que ambos sejam acionados em sequência e depois apaguem. Se liga como é fácil fazer isso!
Alerta: essa seção do tutorial é opcional, já que é preciso mais um Módulo Relé Serial.
No Exemplo CycleRelays anterior, onde alteramos o número de módulos para 1, agora vamos mudar o número de módulos para 2, do seguinte modo: const int NumModules = 2;
.
O que Deve Acontecer
Confira se as ligações estão corretas e se a alimentação 12 V está conectada. Carregue o código para a placa, e pronto! Olha que maneiro.
Indo Além
Quer aprender mais sobre o nosso Módulo Relé Serial? Visite o nosso tutorial sobre acionamento por botão.
Gostou desse tutorial? Mande nos comentários suas opiniões, sugestões e dicas!
Fique ligado, temos ainda outros tutoriais no nosso site, entre lá e venha aprender mais com a gente!