Existem várias maneiras práticas e baratas de controlar uma placa Arduino à distância, e uma delas é usando infravermelho. Usar o controle remoto IR com Arduino permite que você acione os mais variados equipamentos.

Hoje vou apresentar um outro método para controle remoto das portas do Arduino Uno R3, desta vez usando um Kit Controle Remoto IR, mostrado na foto abaixo: 

Kit Controle Remoto IR Arduino

O kit é composto por 1 módulo receptor IR, 1 led infravermelho, 1 cabo de conexão e 1 controle remoto (com bateria CR2025).

No exemplo de hoje, vou focar na recepção do sinal do controle remoto, acendendo e apagando leds, conforme a sequência abaixo:

Tecla 1: Acende led vermelho
Tecla 2: Apaga led vermelho

Tecla 4: Acende led verde
Tecla 5: Apaga led verde

Tecla 9: Apaga os 2 leds

Entendendo o principio de funcionamento do receptor IR, fica fácil controlar qualquer porta do Arduino e partir para o acionamento de relés, motores e outros dispositivos.

Atualizado: Veja também neste outro artigo  como utilizar o controle remoto IR para controlar um módulo relé 4 canais.

Circuito Arduino e módulo IR infravermelho

A ligação do módulo receptor IR segue o esquema mostrado na imagem abaixo, à esquerda, que consiste na ligação dos pinos do módulo à porta 11 do Arduino (sinal),  5v e GND. Na imagem da direita, podemos ver o módulo em funcionamento, com um led que pisca quando o módulo está recebendo sinais infravermelhos:

Módulo IR Infravermelho Arduino - Detalhes

Para o circuito, vamos utilizar 2 leds, 2 resistores de 330 ohms e o receptor IR, tomando o cuidado de observar a ligação correta dos pinos do módulo, evitando a queima do componente:

Circuito controle remoto IR e Arduino Uno

Criei um programa que faz a leitura do sinal IR recebido, e com base no valor lido, aciona as portas 5 e 7, onde estão ligados os leds. Esse programa também apresenta no monitor serial os valores lidos pelo receptor IR:

Monitor serial - Receptor IR

Desta forma consigo descobrir os valores, em hexadecimal, do sinal recebido por todas as teclas do controle remoto. No programa, usei os valores FF30CF (Tecla 1), FF18E7 (tecla 2), FF10EF (tecla 4), FF38C7 (tecla 5), e FF52AD (tecla 9).

Finalmente, no loop, eu testo o valor recebido pelo receptor IR, e com alguns comandos IF eu verifico qual tecla foi acionada, acendendo e apagando o led correspondente. Usei a tecla 9 para apagar os 2 leds de uma só vez.

Programa controle remoto IR com Arduino

Para este programa, vamos utilizar a biblioteca IRremote, que voce pode baixar clicando aqui:

// Programa : Teste Controle Remoto IR  
// Autor : Arduino e Cia  
  
#include <IRremote.h>  
  
int RECV_PIN = 11;  
float armazenavalor;  
int pinoledvermelho = 5;  
int pinoledverde = 7;  
  
IRrecv irrecv(RECV_PIN);  
decode_results results;  
  
void setup()  
{  
  pinMode(pinoledvermelho, OUTPUT);   
  pinMode(pinoledverde, OUTPUT);  
  Serial.begin(9600);  
  irrecv.enableIRIn(); // Inicializa o receptor IR  
}  
   
void loop()  
{  
  if (irrecv.decode(&results))  
  {  
    Serial.print("Valor lido : ");  
    Serial.println(results.value, HEX);  
    armazenavalor = (results.value);  
    if (armazenavalor == 0xFF30CF) //Verifica se a tecla 1 foi acionada  
    {  
      digitalWrite(pinoledvermelho, HIGH);  //Acende o led vermelho  
    }  
    if (armazenavalor == 0xFF18E7) //Verifica se a tecla 2 foi acionada  
    {  
      digitalWrite(pinoledvermelho, LOW); //Apaga o led vermelho  
    }  
    if (armazenavalor == 0xFF10EF) //Verifica se a tecla 4 foi acionada  
    {  
      digitalWrite(pinoledverde, HIGH); //Acende o led verde  
    }  
    if (armazenavalor == 0xFF38C7) //Verifica se a tecla 5 foi acionada  
    {  
      digitalWrite(pinoledverde, LOW); //Apaga o led verde  
    }  
    if (armazenavalor == 0xFF52AD) //Verifica se a tecla 9 foi acionada  
    {  
      digitalWrite(pinoledvermelho, LOW); //Apaga todos os leds  
      digitalWrite(pinoledverde, LOW);  
    }  
  irrecv.resume(); //Le o próximo valor  
  }  
}

Aponte o controle remoto para o receptor e divirta-se! 🙂

5/5 - (6 votes)