Ícone do site Lobo da Robótica

Controle Remoto com Arduino – IR

Antes de tudo, você sabe como o controle remoto consegue acionar sua televisão a distância? O que está por trás disso? Sendo assim, vamos entender melhor sobre o sistema de luz infravermelha através do uso de um controle remoto com Arduino.

Se você quer aprender tudo sobre Arduino, confira o método ARDUHACK!

https://lobodarobotica.com/blog/wp-content/uploads/2020/10/Teste.mp4

Controle IR – Infrared

Vale lembrar que esse tipo de controle está presente em nosso dia a dia: ar condicionado, TVs, rádios portáteis. O controle IR possui em seu interior um microcontrolador, um teclado e LEDs, cuja função é emitir pulsos de luz IR.

Portanto, cada pulso forma um código que irá do transmissor ao receptor do sistema, o receptor vai decodificar o sinal. Dessa forma, cada botão do controle remoto possui um código diferente. Assim, ao apertar cada botão, você pode verificá-lo e aplicar a ele diversas ações para executar, é o que veremos mais a frente.

Além disso, outro fato curioso é que não podemos enxergar a luz IR, se você apertar algum botão do controle remoto, não irá perceber o LED aceso. Isso acontece porque o IR é uma radiação, ou seja, sua frequência é menor que a luz vermelha, ele não está dentro do espectro eletromagnético visível ao ser humano.

Porém, câmeras digitais conseguem captar essa frequência. Assim, se você observar através da câmera do seu celular, irá ver o LED acender.

Conectando o Receptor – Controle Remoto com Arduino

Em seguida, veja o que é preciso para a montagem do circuito com Arduino:

Você pode encontrar o receptor de maneira avulsa ou pelo módulo. Dessa forma, o módulo possui em sua placa um espaço para fixação, além de LEDs que indicam a transmissão dos sinais. No circuito de hoje, vamos usar o receptor de maneira avulsa.

Para prosseguir, faça as seguintes conexões conforme a imagem, Leds nos pinos 2 e 4, e o sinal do receptor no pino digital 11.

Para aprender mais sobre módulos, sensores e Shields para  Arduino, conheça treinamento Arduhack, clique aqui.

Código para Controle Remoto com Arduino

Assim sendo, para validar os códigos, vamos precisar da biblioteca IRremote.h. Você pode baixá-la clicando AQUI. Em seguida, faça os seguinte:

O primeiro passo é encontrar quais são as codificações para cada botão do controle. Para isso, abra um novo sketch no Arduino, vá na guia Examples, IRremote e clique em IRreceiveDemo:

Compile o programa e carregue para o Arduino. De acordo com o que já vimos, vamos precisar verificar os botões de um por um, para fazer isso abra o monitor serial e altere a velocidade para 115200.

Em seguida, clique no primeiro botão de seu controle em direção ao receptor. Perceba que aparecerá um código HEX. Faça isso para todos os outros botões e salve essas informações.

https://lobodarobotica.com/blog/wp-content/uploads/2020/10/Controleirr-1.mp4

Entretanto, no caso de aparecer erros, como, “0xFFFFFFFF R”, apenas clique novamente no botão do controle até que o endereçamento correto apareça no monitor serial.

Dessa maneira, são essas as decodificações de cada botão que iremos usar no programa principal:

#include <IRremote.h>

int pino_receptor = 11; //Pino que recebe o valor 
float armazenavalor;
int verde = 2;
int azul = 4;

IRrecv irrecv(pino_receptor);
decode_results results;

void setup()
{
  pinMode(verde, OUTPUT);
  pinMode(azul, OUTPUT);
  Serial.begin(9600);
  irrecv.enableIRIn(); // Inicia o receptor IR
}

void loop()
{
  if (irrecv.decode(&results))
  {
    Serial.print("Valor lido: ");
    Serial.println(results.value, HEX);
    armazenavalor = (results.value);
    
    if (armazenavalor == 0xFF30CF) //Acionamento da Tecla 1
    {
      digitalWrite(verde, HIGH);  //Acende o led verde    }
    if (armazenavalor == 0xFF18E7) //Acionamento da Tecla 2
    {
      digitalWrite(verde, LOW); //Apaga o led verde
    }
    if (armazenavalor == 0xFF7A85) //Acionamento da Tecla 3
    {
      digitalWrite(azul, HIGH); //Acende o led azul
    }
    if (armazenavalor == 0xFF10EF) //Acionamento da Tecla 4
    {
      digitalWrite(azul, LOW); //Desliga o led azul
    }
    if (armazenavalor == 0xFFC23D) //Acionamento da Tecla Play 
    {
      digitalWrite(verde, HIGH); //Deixa os LEDs ligados por 3 segundos
      digitalWrite(azul, HIGH);
      delay (3000);
      digitalWrite(verde, LOW);
      digitalWrite(azul, LOW);
      delay(1000);
    }
 
    irrecv.resume(); //Faz a leitura do próximo valor

  }
}

Por fim, carregue o código principal para a placa do Arduino e veja como é simples controlar o que você quiser através dos pulsos infravermelhos! Além dos LEDs, essa ideia pode ser aplicada ao acionamento de motores, relés, lâmpadas e o que se pode imaginar.

Veja mais em nossas redes sociais:

Instagram: @lobodarobotica

Facebook: /lobodarobotica

YouTube: /lobodarobotica