• COMPONENTE

    CONTROLE
    REMOTO

    Controle Remoto

O que é um Controle Remoto?

Um controle remoto infravermelho é um dispositivo que envia sinais de luz invisível (chamada infravermelho) para controlar outros aparelhos, como TV, ar-condicionado ou até mesmo projetos com Arduino. Essa luz não pode ser vista pelos nossos olhos, mas pode ser detectada por um receptor, como o VS1838B, que está conectado ao Arduino.

Cada vez que você aperta um botão no controle remoto, ele envia um código diferente (como se fosse uma senha ou número de identificação daquela tecla). Como o infravermelho é um tipo de luz, sua comunicação requer uma linha direta de visão do transmissor para o receptor, ou seja, não pode transmitir através de paredes ou outros obstáculos, como WiFi ou Bluetooth.

Controle remoto arduino

Capturando os códigos das teclas do controle

Antes de usarmos o controle para comandar algo (como ligar um LED, movimentar um robô ou tocar um som), o Arduino precisa saber qual código está associado a cada botão.

Por exemplo, o botão 1 pode enviar um código semelhante a 0xFFA25D o botão 2 pode enviar um outro código semelhante a 0xFFE21D e assim por diante. Esses códigos variam entre modelos de controle, então precisamos "ensinar" o Arduino a reconhecer os botões do controle que estamos usando.

Agora veremos como fazemos isso, primeiro montamos um circuito simples e básico apenas com um receptor VS1838B e dois resistores. Carregamos o código que mostraremos a seguir no Arduino e abrimos o Monitor Serial, na sequência apertamos cada botão do controle e anotamos o código hexadecimal que aparece.

Montagem dos componentes

Logo abaixo temos a lista de componentes utilizado neste exemplo, e sua ligação com o Arduino.

LISTA DOS COMPONENTES

  • 1 x Arduino Uno SMD
  • 1 x Cabo USB para comunicação
  • 1 x Protoboard 400 pontos
  • 1 x Controle remoto
  • 1 x Receptor VS1838B
  • 1 x Resistor 100Ω
  • 1 x Resistor 10kΩ
  • 3 x Jumpers macho/macho
Esquema montagem controle remoto

Código exemplo

Abaixo está um código simples para o Arduino que usa a biblioteca IRremote para capturar os sinais de um controle remoto infravermelho (IR) usando o receptor VS1838B conectado ao pino digital 12. Quando você pressiona uma tecla, o código hexadecimal correspondente será exibido no Monitor Serial. Primeiro instale a biblioteca IRremote, abra a IDE do Arduino, vá em Ferramentas > Gerenciar Bibliotecas... , e procure por IRremote (autor: Armin Joachimsmeyer), agora basta clicar em instalar.

IDE Arduino

#include <IRremote.h> // Biblioteca IRemote

const int RECEPTOR_PINO = 11;

void setup() {
  Serial.begin(9600);
  IrReceiver.begin(RECEPTOR_PINO);
  Serial.println("Pronto para capturar códigos IR...");
}

void loop() {
  if (IrReceiver.decode()) {
    Serial.print("Comando: 0x");
    Serial.println(IrReceiver.decodedIRData.command, HEX);
    IrReceiver.resume();
    delay(200);
  }
}

IDE Arduino
Instituto Digital

Anotando os códigos

Pressione uma tecla do controle remoto e observe o código que será exibido no Monitor Serial do Arduino. Em seguida, anote esse código na coluna "Código Hexadecimal Recebido" da tabela fornecida. Se preferir, você também pode escrever o nome do botão (como VOL+, PLAY, etc.) ou desenhar o símbolo correspondente que aparece no controle, facilitando a identificação posterior. Utilize ainda a coluna de observações para registrar qualquer informação adicional, como se algum botão repetiu o mesmo código de outro ou se algum botão não respondeu ao ser pressionado. Esse processo é essencial para que você possa programar o Arduino corretamente de acordo com os botões do seu controle remoto específico.

Montagem dos componentes

Com os códigos de cada tecla do controle remoto devidamente anotados e identificados, podemos iniciar nosso projeto de controle via infravermelho. O objetivo inicial é ligar e desligar alguns LEDs, mas este mesmo método poderá ser aplicado para controlar diversos outros dispositivos eletrônicos. Logo abaixo temos a lista de componentes utilizado neste exemplo, e sua ligação com o Arduino.

LISTA DOS COMPONENTES

  • 1 x Arduino Uno SMD
  • 1 x Cabo USB para comunicação
  • 1 x Protoboard 400 pontos
  • 1 x Controle remoto
  • 1 x Receptor VS1838B
  • 3 x Leds de 5mm
  • 1 x Resistor 100Ω
  • 3 x Resistor 220Ω
  • 1 x Resistor 10kΩ
  • 7 x Jumpers macho/macho
Esquema montagem controle remoto

Código exemplo

Abaixo temos um código exemplo onde, usando o controle remoto 38Khz, pode-se acender a apagar os leds que estão conectados no receptor. Não se esqueça de substituir os códigos hexadecimais abaixo (que são apenas exemplos) pelos códigos que você capturou e anotou do seu controle remoto.

IDE Arduino

#include <IRremote.h> // Biblioteca IRemote

// Configuração dos pinos
const int RECEPTOR_PINO = 11;
const int LED_VERMELHO = 10;
const int LED_AMARELO = 9;
const int LED_AZUL = 8;

// Variáveis para armazenar o estado dos LEDs
bool ledVermelhoEstado = false;
bool ledAmareloEstado = false;
bool ledAzulEstado = false;

void setup() {
  // Configura os pinos dos LEDs
  pinMode(LED_VERMELHO, OUTPUT);
  pinMode(LED_AMARELO, OUTPUT);
  pinMode(LED_AZUL, OUTPUT);
  
  // Inicializa o receptor IR
  IrReceiver.begin(RECEPTOR_PINO);
  
}

void loop() {
  if (IrReceiver.decode()) {
    // Verifica o comando recebido
    switch(IrReceiver.decodedIRData.command) {
      case 0x0C:  // Botão 1 acende o led vermelho
        digitalWrite(LED_VERMELHO, HIGH);
        break;
      case 0x18:  // Botão 2 acende o led amarelo
        digitalWrite(LED_AMARELO, HIGH);
        break;
      case 0x5E:  // Botão 3 acende o led azul
        digitalWrite(LED_AZUL, HIGH);
        break;
      case 0x16:  // Botão 0 apaga todos leds
        digitalWrite(LED_VERMELHO, LOW);
        digitalWrite(LED_AMARELO, LOW);
        digitalWrite(LED_AZUL, LOW);
        break;
    }    
        
    IrReceiver.resume();
  }
}

IDE Arduino