• COMPONENTE

    CONTROLE
    REMOTO

    Controle Remoto

O que é um Controle Remoto?

O controle remoto é um componente eletrônico de comunicação IR (infrared ou infravermelho). Existem vários modelos, este em questão, possui 21 teclas e opera na faixa de 38KHz. A tecnologia utilizada é a mesma dos controles remotos de TVs onde há um sistema de comunicação por infravermelho que requer um transmissor e um receptor.

O transmissor, localizado na parte frontal do controle, tem a aparência de um LED padrão, mas ao invés de produzir uma luz visível comum, produz luz invisível no espectro IR. O receptor de infravermelho é um fotodiodo que é capaz de converter a luz de infravermelho emitida pelo transmissor em um sinal elétrico.

Controle remoto arduino

Propriedades

Cada vez que um botão do controle é pressionado, um código hexadecimal exclusivo é gerado. Esta informação é modulada e enviada por IR para o receptor do sinal. Para decifrar qual tecla está sendo pressionada, o microcontrolador utilizado com receptor precisa saber qual código corresponde a cada tecla no controle remoto. A comunicação por infravermelho (IR) é uma tecnologia sem fio amplamente utilizada atualmente, além de ser fácil de implementar em projetos.

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.

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
  • 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.

IDE Arduino

#include <IRremote.h> // Biblioteca IRemote

const int Controle_Pin = 12; // Arduino pino 12 conectado no Receptor IR
IRrecv irrecv(Controle_Pin); // criando a instância
decode_results resultados; // declarando os resultados
unsigned long key_value = 0;
bool Led_1, Led_2, Led_3 = false;

void setup(){
Serial.begin(9600);
pinMode(5, OUTPUT); // LED vermelho no pino D05
pinMode(6, OUTPUT); // LED amarelo no pino D06
pinMode(7, OUTPUT); // LED azul no pino D07
irrecv.enableIRIn();
irrecv.blink13(true); // Pisca o led 13 do arduino, apenas para uma referencia visual
// pois nao conseguimos ver a luz infravermelha do controle
}

void loop(){
if (irrecv.decode(&resultados)){
if (resultados.value == 0XFFFFFFFF)
resultados.value = key_value;
switch(resultados.value){
case 0xFF30CF:
Serial.println("Botão 1");
Led_1 = !Led_1; // alterna o estado do LED D05
digitalWrite(5, Led_1); // acende ou apaga LED vermelho (D05)
delay(300); // atraso de 300 ms
break;
case 0xFF18E7:
Serial.println("Botão 2");
Led_2 = !Led_2; // alterna o estado do LED D06
digitalWrite(6, Led_2); // acende ou apaga LED amarelo (D06)
delay(300); // atraso de 300 ms
break;
case 0xFF7A85:
Serial.println("Botão 3");
Led_3 = !Led_3; // alterna o estado do LED D07
digitalWrite(7, Led_3); // acende ou apaga LED azul (D07)
delay(300); // atraso de 300 ms
break;
}
key_value = resultados.value;
irrecv.resume(); 
}
}
IDE Arduino