Escolha uma Página

Lâmpadas: Ligando e Desligando com Controle Remoto

15 out - 2018

Se você está se perguntando como se faz para acender e apagar uma lâmpada com o Arduino, siga as dicas contidas nesse artigo. Vamos lá!

Desde que foram inventadas por Thomas Edison em 1879 as lâmpadas elétricas entraram para o rol das comodidades que mais beneficiaram a vida das pessoas.

As lâmpadas evoluíram, partindo das tradicionais incandescentes, passando pelas fluorescentes até as atuais de Led, podendo ser encontradas em quase todos os lugares, como em ruas e avenidas, além dos prédios residenciais, comerciais e industriais.

Então, para suprir as necessidades de iluminação em uma residência, por exemplo, há lâmpadas nas áreas internas e externas, sendo, portanto, evidente que acender e apagar essas lâmpadas através de comandos faz parte de qualquer solução de automação residencial. Justamente, levando isso em consideração, nesse artigo iremos apresentar um projeto que possibilita acender e apagar uma lâmpada através de um controle remoto ligado ao Arduino Pro Mini. O elemento de acionamento será um módulo de 1 relé.

A lista básica de componentes desse projeto é a seguinte: 1 Arduino Pro Mini, 1 Controle Remoto com receptor de IR KY022, 1 Módulo com 1 Relé, 1 Led 5mm, vermelho, difuso, 1 Resistor 330 Ohm, 1/4 W, 5% e 1 Fonte 5 Volts CC / 1 A.

Figura 1: Acionando um Relé com Controle Remoto para Acender e Apagar uma lâmpada

Para o protótipo utilizaremos, além dos itens acima mencionados, um protoboard, cabos jumpers, um borne plástico de dois contatos, um plug de dois pinos, um bocal de lâmpada e uma lâmpada.

Na montagem final do projeto, o protoboard e os cabos jumpers poderão ser substituídos por uma pequena placa de circuito impresso, na qual serão montados os componentes e feitas as ligações indicadas na figura 1.

A escolha do Arduino Pro Mini se deu em função de suas pequenas dimensões, sendo perfeito para aplicações que exijam miniaturização. Para mais informações acesse o artigo Arduino Pro Mini: Tamanho é Documento.

Nesse projeto vamos usar um modulo com 1 relé de 5 Volts como os ilustrados na figura 2.

Figura 2: Exemplos de Módulos de 1 Relé

O receptor de IR, modelo KY022, mostrado na figura 3, é o sensor que capta os sinais de infravermelho emitidos pelo controle remoto.

Figura 3: Receptor de IR, modelo KY022

O controle remoto (figura 4) será usado para acionar o módulo relé, acendendo e apagando a lâmpada.

Figura 4: Controle Remoto Keys para Arduino

O controle remoto funciona enviando pulsos de luz infravermelha que representam códigos diferentes para cada tecla. Em outras palavras, cada tecla do controle remoto quando pressionada deve gerar um código hexadecimal correspondente, conforme indicado na tabela 1.

Tabela 1: Tabela de Códigos Hexadecimais de um Controle Remoto Keys

A tecla 4 do controle remoto será usada para acender o Led e ligar a lâmpada. Por sua vez, a tecla 1 será usada para apagar o Led e desligar a lâmpada. Nessa montagem o receptor de IR é conectado ao pino digital 11 do Arduino.

O acionamento do relé é feito através do pino digital 9 do Arduino. Por sua vez, o Led indicador de lâmpada acesa ou apagada é conectado ao pino digital 10 do Arduino.

Figura 5: Montagem do Projeto no Protoboard

A comunicação do Arduino com o controle remoto será feita através da biblioteca <IRremote.h> e a função if() será usada para interrogar se as teclas 4 ou 1 foram acionadas. Dependendo da resposta a ação de acender e apagar a lâmpada será executada através da instrução digitalWrite().

 

Carregue o sketch e veja como tudo funciona!

 

#include &amp;lt;IRremote.h&amp;gt;  
int RECV_PIN = 11;  
float valor;  
int Rele1 = 9;
int Led1 = 10;
IRrecv irrecv(RECV_PIN);  
decode_results results;  
  
void setup()  
{  
  pinMode(Led1, OUTPUT);  
  pinMode (Rele1, OUTPUT); 
  Serial.begin(9600);  
  irrecv.enableIRIn(); // Inicializa o receptor IR  
}  
   
void loop()  
{  
  if (irrecv.decode(&amp;amp;amp;amp;amp;amp;amp;results))  
  {  
    Serial.print(&amp;quot;Valor lido : &amp;quot;);  
    Serial.println(results.value, HEX);  
    valor = (results.value);  
    if (valor == 0xFF30CF) //Verifica se a tecla 4 foi acionada  
    {  
      digitalWrite(Led1, HIGH);  //Acende o led vermelho 
      digitalWrite (Rele1, HIGH); // Rele1 liga 
    } 
     
    if (valor == 0xFF6897) //Verifica se a tecla 1 foi acionada  
    {  
      digitalWrite(Led1, LOW); //Apaga o led vermelho
      digitalWrite (Rele1, LOW); // Rele1 desliga  
    }  
        
  irrecv.resume(); //Le o próximo valor  
  }  
}

 

Observações sobre o Código!

A simplicidade do sketch se deve a facilidade de uso da biblioteca <IRremote.h>. Para mais detalhes sobre essa biblioteca acesse >

https://github.com/z3t0/Arduino-IRremote

 

O sketch inicia com a inclusão da biblioteca <IRremote.h> e a declaração das variáveis usadas no programa. A variável RECV_PIN se refere ao pino digital 11 do Arduino onde está ligado o receptor de IR (KY022). A variável Rele1 se refere ao pino digital 9 do Arduino onde está ligado a bobina do relé. A variável Led1 se refere ao pino digital 10 do Arduino onde está ligado o Led. Finalmente, temos a variável “valor” que será usada para registrar os valores lidos dos códigos do controle remoto e posterior tomada de decisão.

Ainda na parte inicial do sketch temos duas instruções tratadas pela biblioteca <IRremote.h>; a saber:

IRrecv irrecv(RECV_PIN); que cria um objeto chamado RECV_PIN para receber os sinais de infravermelho do controle remoto. O nome do objeto recebedor de IR (aqui chamado de RECV_PIN) pode ser escolhido pelo programador. No nosso projeto o RECV_PIN está ligado ao sinal de IR (“InfraRed”) recebido através do pino digital 11 do Arduino.

e

decode_results results; que deixa o receptor (de nome RECV_PIN, conforme instrução anterior) pronto para receber sinais de infravermelho. Quando um código (enviado pelo controle remoto) é recebido, essa informação será armazenada em “results”.

Na parte do setup(), os pinos do Led e do módulo relé são definidos como saídas, através de pinMode(Led1, OUTPUT) e pinMode (Rele1, OUTPUT), respectivamente. Em seguida, a instrução Serial.begin(9600) estabelece uma taxa de transmissão de 9600 bps na comunicação serial do Arduino com o monitor do PC. Temos ainda a instrução irrecv.enableIRIn() que tem a função de inicializar o receptor IR, sendo também tratada pela biblioteca <IRremote.h>.

No loop(), o programa interroga se existe sinal de IR sendo recebido via if (irrecv.decode(&results)). Isso continuará indefinidamente, até que uma tecla do controle remoto seja pressionada e um sinal enviado para o receptor de IR.

Quando uma tecla do controle remoto é pressionada, o código correspondente é enviado, lido e armazenado em “results”. Na sequência, o texto “Valor lido :” é impresso no monitor do PC (Serial.print(“Valor lido : “) e esse código é impresso em hexadecimal (Serial.println(results.value, HEX)), fazendo o cursor do monitor do PC pular para a linha seguinte.

A variável “valor” torna-se igual ao código recebido (em results.value) através da instrução valor = (results.value) e é comparada com o código hexadecimal da tecla 4.

if (valor == 0xFF30CF) //Verifica se a tecla 4 foi acionada

Se o resultado é verdadeiro, ou seja, se a tecla pressionada foi a de número 4, o Led é aceso através de digitalWrite(Led1, HIGH) e o relé ligado     através de digitalWrite (Rele1, HIGH).

O sketch prossegue com a verificação se a tecla 1 foi pressionada, através de

if (valor == 0xFF6897) //Verifica se a tecla 1 foi acionada

Se o resultado é verdadeiro, ou seja, se a Tecla pressionada foi a de número 1, o Led é apagado através de digitalWrite(Led1, LOW) e o relé desligado através de digitalWrite (Rele1, LOW).

Finalmente, a instrução irrecv.resume() é executada para resetar receptor de IR e prepara-lo para fazer a leitura do próximo valor.

Viu como é fácil? Toda essa simplicidade de fato existe, uma vez que o trabalho pesado foi previamente codificado na biblioteca <IRremote.h>. O que precisamos fazer é entender como usar corretamente essa biblioteca. Isso vale para a maioria das bibliotecas usadas com o Arduino.

Caso você ainda tenha dúvidas, não deixe de nos enviar suas perguntas. Encontre os componentes para este e muitos outros projetos na Módulo Eletrônica. Bem, é isso aí. Até a próxima!

 

Haroldo Mamede Coutinho Simões

Haroldo Mamede Coutinho Simões

Engenheiro de telecomunicações e pós-graduado em gerenciamento de negócios, tendo trabalhado em empresas de médio e grande porte por mais de 30 anos, atuando em diferentes projetos e departamentos. É instrutor de treinamento, tendo ministrado workshops em várias empresas, professor universitário em cursos MBA presenciais e tutor de cursos à distância. É apaixonado por tecnologia, especialmente pela plataforma Arduino e tudo de positivo que ela pode fazer pelas pessoas quando dela se aproximam.

0 comentários

Enviar um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Facebook

VEJA TAMBÉM

Regador automático de plantas com Arduino

Aprenda neste artigo, como automatizar a rega de suas plantas, utilizando o Arduino NANO. Este projeto, além do baixo custo, pode ser montado em menos de uma hora e irá garantir que as suas plantas sempre tenham água disponível, garantido um crescimento adequado e...

Fita de LEDs RGB endereçáveis WS2812B e a biblioteca fastLED

No post de hoje, vamos conhecer a fita de LEDs WS2812B endereçáveis e como utilizá-la com o Arduino UNO.  Essa fita de LEDs se destaca, em relação as outras do mercado, pelo fato de que seus LEDs podem ser controlados de maneira individual, permitindo que o...

NEWSLETTER

Assine nossa newsletter e receba as novidades.

ATENDIMENTO

(19) 3579-7189