Controlando o Arduino com Controle Remoto

controlar-o-arduino-com-um-controle-remoto
Font Size

Neste post vamos explorar controlar o arduino com um controle remoto, isso mesmo, esse da sua TV ai.
Inicialmente utilizaremos o do Kit Infravermelho + Controle Remoto, mas depois iremos demonstrar a como adaptar ele para utilizar com qualquer controle remoto. Várias ideias aparecendo não é? Enviar comandos para o arduino com qualquer controle remoto é algo que pode ser implementado em várias coisas, cabe só a sua criatividade dizer o que irá controlar.

O Kit Infravermelho + Controle Remoto é composto por um controle remoto com bateria, um módulo receptor de infravermelho, um led infravermelho e cabos jumpers fêmia-fêmia, para facilitar a sua prototipação.

Neste projeto utilizaremos Arduino Uno para controlar três leds, que posteriormente você poderá estar substituindo por algum atuador que desejar, então vamos lá ao projeto!

Kit Infravermelho + Controle Remoto

Todos os controles remotos enviam um número em Hexadecimal, que também podemos dizer que é um “código”, para a o receptor do sinal, quando se aperta um botão, cada botão tem um código diferente, com o do nosso kit não é diferente, mais adiante mostraremos como obter o código de cada botão.

Especificações:

Frequência de Transmissão: 38KHz
Bateria de 160mAh (Controle Remoto)
Alcance Transmissão: 8 metros
Ângulo Efetivo: 60°
Corrente de Operação: 3-5mA

Pinagem:
Header Pin 1: Sinal
Header Pin 2: VCC
Header Pin 3: GND
Agora que já conhecemos bem os integrantes do projeto vamos montar o circuito!

Materiais Utilizados:

Esses componentes e outros, para os seus próximos projetos você encontra na loja Autocore Robótica, então passa lá.

Controlando o Arduino com Controle Remoto – Montagem do circuito:

Utilizamos as seguintes portas digitais do Arduino:

Como mostrado no circuito:

Figura 01: Circuito do projeto
Fonte: Autocore Robótica

Controlando o Arduino com Controle Remoto – Programação:

Utilizaremos os seguintes botões para controlar os leds:

Inicialmente vamos ter que receber o código de cada botão, como dito anteriormente, precisaremos receber o código emitido por cada tecla do controle salvar ele, e programar o arduino para quando receber esse código executar determinada atividade.

Então vamos enviar uma programação para o arduino que exibe o código referente a cada tecla. Mas para isso precisaremos instalar a biblioteca do módulo, ela está disponível AQUI!
Se você é daqueles usuários que gosta de entender ao fundo cada código então aqui está o página dos desenvolvedores da biblioteca: Arduino IRremote.

Para instalar a biblioteca você só precisa extrair a pasta de dentro do arquivo ir na pasta “libraries” do diretório da IDE do arduino, Geralmente no Windows costuma ser a pasta ” C:\Program Files (x86)\Arduino\libraries “, e copiar a pasta para lá. Logo após isso, basta alterar a o nome da pasta para “IRremote”, e pronto, agora a sua IDE está prontinha para receber os códigos. ;D

Agora que você já instalou a biblioteca vamos utilizar um código exemplo dela, que é URrecvDemo, que é um programa próprio dela para receber códigos de qualquer controle e imprimir no Monitor Serial.
A imagem abaixo mostra onde está o exemplo que vamos abrir:

Figura 02: Exemplo URrecvDemo
Fonte: Autocore Robótica

Agora é só gravar o código no arduino, abrir o Monitor Serial e verificar o código de cada botão!
Pressionei cada um dos botões anteriormente definidos e recebi os seguintes códigos:

Figura 03: Recebendo o Código dos botões
Fonte: Autocore Robótica

Os códigos são os seguintes:

Agora que já sabemos todas as especificações do projeto vamos lá programar!

// Programa: Controlando o Arduino com Controle Remoto
// Autor: Saulo Alexandre - Autocore Robótica

#include <IRremote.h>

int pinoRecepitorIR = 11;
int valorRecebido;
int ledVermelho = 7;
int ledVerde = 6;
int ledAzul = 5;

// Definindo o código de cada ação que deverá ser realizada
int AcendeVermelho = 0xFF6897;
int ApagaVermelho = 0xFF9867;
int AcendeVerde = 0xFF30CF;
int ApagaVerde = 0xFF18E7;
int AcendeAzul = 0xFF10EF;
int ApagaAzul = 0xFF38C7;
int AcendeTudo = 0xFF42BD;
int ApagaTudo = 0xFF4AB5;

IRrecv irrecv(pinoRecepitorIR);
decode_results results;

void setup()
{
pinMode(ledVermelho, OUTPUT); // Definindo os pinos dos leds como saida
pinMode(ledVerde, OUTPUT);
pinMode(ledAzul, OUTPUT);
Serial.begin(9600); // Iniciando o Monitor Serial da IDE
irrecv.enableIRIn(); // Inicializa o receptor IR do controle remoto
}

void loop()
{
if (irrecv.decode(&results)) // Executa caso receba algum códico
{
Serial.print("Valor lido : ");
Serial.println(results.value, HEX);
valorRecebido = (results.value);

if (valorRecebido == AcendeVermelho) //Verifica se a tecla 1 foi acionada
{
digitalWrite(ledVermelho, HIGH); //Acende o led vermelho
}
if (valorRecebido == ApagaVermelho ) //Verifica se a tecla 2 foi acionada
{
digitalWrite(ledVermelho, LOW); //Apaga o led vermelho
}
if (valorRecebido == AcendeVerde) //Verifica se a tecla 4 foi acionada
{
digitalWrite(ledVerde, HIGH); //Acende o led verde
}
if (valorRecebido == ApagaVerde) //Verifica se a tecla 5 foi acionada
{
digitalWrite(ledVerde, LOW); //Apaga o led verde
}
if (valorRecebido == AcendeAzul) //Verifica se a tecla 7 foi acionada
{
digitalWrite(ledAzul, HIGH); //Acende o led azul
}
if (valorRecebido == ApagaAzul) //Verifica se a tecla 8 foi acionada
{
digitalWrite(ledAzul, LOW); //Apaga o led verde
}
if (valorRecebido == AcendeTudo) //Verifica se a tecla * foi acionada
{
digitalWrite(ledVermelho, HIGH); //Acende todos os leds
digitalWrite(ledVerde, HIGH);
digitalWrite(ledAzul, HIGH);
}
if (valorRecebido == ApagaTudo) //Verifica se a tecla 0 foi acionada
{
digitalWrite(ledVermelho, LOW); //Apaga todos os leds
digitalWrite(ledVerde, LOW);
digitalWrite(ledAzul, LOW);
}
irrecv.resume(); //Le o valor da próxima tecla pressionada
}
}

 

Agora que já está funcionando tudo com o controle remoto do Kit você pode tentar implementar um outro controle remoto para controlar os leds, basta pegar o código gerado por cada botão e colocar na parte dedicada aos códigos de cada botão do código acima.

Conclusão:

Gravamos um vídeo para mostrar a vocês como o código funcionou mais do que perfeitamente, confiram só:

 

Gostou do projeto? Funcionou tudo certinho? Então comenta aqui em baixo! Nós vamos adorar ler e responder os seus comentários, dúvidas e sugestões.

Confira mais conteúdos em nosso blog. Conteúdos exclusivos para você que utiliza arduino em tudo.

Posts relacionados

Criando aplicativos com App Inventor: Parte 2

por Danilo Nogueira
5 anos ago

Corrigindo o efeito bouncing com Arduino

por Danilo Nogueira
6 anos ago

Atualização firmware do ESP8266 – Parte 1

por autocore
8 anos ago
Sair da versão mobile