Guia completo do Controle Remoto IR + Receptor IR para Arduino

Nesse Tutorial, você aprenderá como funciona o Controle Remoto Infravermelho, sobre alguns Protocolos de codificação de Controle Remoto IR, sobre o Receptor de Infravermelho AX-1838HS e como fazer uma montagem do Controle Remoto IR com Arduino.

Introdução

O controle remoto me fascina desde criança. Quando eu era mais jovem, ficava pensando como um pequeno dispositivo poderia controlar um aparelho de TV à uma certa distância ? Não sei se sabem disso, mas nos primórdios da Televisão nos Estados Unidos, os primeiros controles remotos funcionavam com as ondas de ultrassom !  Naquela época, não existia ainda, a tecnologia de fabricação de dispositivos semicondutores que trabalham com luz infravermelha.

Esses são os tópicos do Tutorial Guia completo do Controle Remoto IR + Receptor IR para Arduino :

 

Como funciona o Controle Remoto IR ?

O controle Remoto IR (infrared, ou infravermelho em português) de aparelhos eletrônicos consiste em um pequeno dispositivo que contém um chip de microcontrolador, um ou mais LEDs emissores de infravermelho e um teclado acoplado. Quando o usuário pressiona uma das teclas do controle, uma sequência de pulsos de luz infravermelha é transmitida pelos LEDs. Esses pulsos formam um código que é único para cada tecla acionada.

O chip do Microcontrolador do Controle Remoto Transmissor, já vem programado com um protocolo definido pelo fabricante do aparelho. Mais tarde, informarei sobre os protocolos mais usados no mercado.

Os pulsos de dados (código) são enviados do transmissor através de outros pulsos numa frequência bem maior, modulando o sinal a ser transmitido. Alguns trabalham com frequências diferentes de modulação, mas a mais comum atualmente é a frequência de 38 KHz. Na figura abaixo, pode perceber que quando o pulso de dado é 1, a frequência é transmitida e quando o pulso é 0, nenhuma frequência é transmitida. Esse tipo de modulação chama-se PCM (modulação codificada de pulsos). Com esse tipo de  modulação, impede-se que a luz externa interfira na transmissão dos dados.

Link sobre Modulação PCM

O circuito Receptor IR que fica internamente no aparelho a ser controlado, consiste basicamente de um descodificador dos pulsos recebidos do transmissor. Interpretando o código de cada tecla pressionada, o aparelho pode executar vários tipos de operações, como por exemplo, desligar, aumentar volume e mudar o canal no caso de uma Televisão.

Hoje com a integração cada vez maior dos circuitos, existem receptores de controle remoto IR que já contém o foto-sensor e todos os outros circuitos necessários para demodular os pulsos de controle, como amplificadores de sinal, filtros, demodulador, integrador e comparador. O diagrama de blocos abaixo contém os vários circuitos que estão integrados no pequeno receptor. Após a demodulação dos pulsos, esses são descodificados por um outro Microcontrolador, para que o aparelho possa entender que tipo de operação deverá ser realizada.

Dica interessante sobre a percepção da Luz infravermelha : todos sabem que os nossos olhos não são sensíveis à luz infravermelha. Como “visualizá-la” se ela esta sendo transmitida? Sabendo-se que a câmeras fotográficas digitais conseguem perceber o IR, faça essa experiência. Em um ambiente escuro, direcione o seu controle remoto IR para frente da câmera do seu smartphone e desse modo,conseguirá perceber uma luz clara enviada pelo LED IR !

 

Protocolos de codificação de Controle Remoto IR

Alguns fabricantes de aparelhos eletrônicos, como TVs e Amplificadores criaram no passado, protocolos de codificação dos pulsos de sinais de infravermelho. Esses são alguns protocolos mais comuns  :

Vários outros fabricantes atuais de aparelhos tem usado esses protocolos antigos de codificação. Para saber a codificação do Controle Remoto é importante identificar qual protocolo é usado.

Nesse site, poderá identificar qual protocolo é usado no seu aparelho (Informe o fabricante do aparelho):

Banco de dados de IR

Obs: esse site tem também um projeto bem interessante para envio de Códigos IR através do Arduino – Send IR.

Se quiser saber mais sobre Controle Remoto IR, sugiro a leitura desse link:

Teoria sobre Controle Remoto IR

Nessa tabela abaixo de códigos IR de TV da marca LG (protocolo NEC), cada tecla do Controle Remoto corresponde à uma sequência de 32 bits, que são traduzidos em um HEX Code.

 

Receptor de Infravermelho AX-1838HS

Esse é foto-receptor IR usado nesse tutorial. Ele é amplamente utilizado em aparelhos para permitir o controle remoto. Pode ser encontrado em TVs, rádios, aparelhos de multimídia e até em aparelhos de ar condicionado. Ele pode trabalhar com tensões de 2,1V a 5,5V. O consumo de energia é bem baixo, com uma corrente de aproximadamente 1,5 mA. A frequência de modulação dos pulsos de dados é de 38 KHz. E o comprimento de onda da luz infravermelha percebida é de 940 nm. O ângulo de visão é de aproximadamente 90 graus. A vantagem do uso desse foto-receptor IR é que ele já tem todo o circuito integrado necessário para demodular os pulsos.

Datasheet do IR-Receiver-AX-1838HS

AX-1838HS pinout

Para facilitar a montagem do circuito de controle remoto, esse foto-receptor é comercializado montado em um módulo. Na plaquinha desse módulo tem dois furos que permitem que ele seja preso com parafusos.   Tem também um LED indicador de pulsos recebidos. Isso é muito útil para garantir que o sinal está sendo transmitido e recebido corretamente.

Módulo Receptor IR AX-1838Hs

Nesse tutorial, o controle remoto IR (transmissor) é o da KEYES com 17 botões. Ele funciona com uma pilha botão CR2025. Antes de usá-lo, retire a proteção de plástico transparente que fica dentro do suporte da bateria. Para trocar a pilha, pressione a trava para o lado e puxe o suporte da pilha. Veja o diagrama na parte debaixo do controle remoto. Esse controle remoto usa o protocolo de codificação da NEC.

Abaixo estão alguns diagramas do Protocolo NEC, para que possa entender como os pulsos de luz IR são traduzidos em códigos binários. Essas informações foram obtidas nesse manual da LG – LG External control.

Veja que o BIT 0 tem a metade da largura do pulso do BIT 1 .

Esse é o conjunto de 32 Bits que são enviados quando um dos botões do controle remoto é pressionado. No início tem um pulso bem largo ( 9 ms) para identificação do Lead Code. Os quatro bytes de informação são formados pelos bits menos significativos (LSB) primeiro e posteriormente pelos bits mais significativos (MSB). O segundo byte tem os bits invertidos do primeiro byte (Custom code) . E o quarto byte tem os bits invertidos do terceiro Byte (Data Code). Essa inversão dos bits é usada para verificação da validade dos mesmos.

Veja essa imagem abaixo gerada em um analisador lógico. Esses são os pulsos transmitidos ao apertar a tecla CH+ em um controle remoto de TV da marca LG. A sequência de pulsos descodificada corresponde ao

HEX Code = 04 FB 00 FF .

 

Controle Remoto IR com Arduino

Montando um circuito de Controle Remoto IR com o Arduino, poderá implementar inúmeras aplicações bem interessantes como :

  • Controle remoto de lâmpadas (liga/desliga ou até controle de brilho),
  • Acionamento remoto de aparelhos,
  • Controle remoto de alarmes,
  • Controle remoto de câmera fotográfica.

A montagem do circuito é bem simples, interligando um módulo Receptor IR AX-1838Hs ao Arduino. A alimentação do módulo é fornecida pelo 5V do Arduino. E o pino de saída dos pulsos do Receptor é conectado ao pino D11 do Arduino. O Led verde esta conectado no pino D05, o Led azul no pino D06 e o Led vermelho no pino D07 do Arduino. Todos Leds tem um resistor de 220 ohms em série com as ligações. O lado chanfrado do Led é o catodo, que deve ser conectado no terra (GND).

Esse é o diagrama Fritzing do Controle Remoto IR para Arduino:

 

Instalando a Biblioteca IRremote:

Pesquisando na WEB várias bibliotecas disponíveis para Controle Remoto IR para Arduino, escolhi a IRremote pois ela aceita vários tipos de Protocolos. Apesar de ela não descodificar corretamente o protocolo NEC, ela pode ser usada sem problemas.

Para instalar a nova Biblioteca IRremote , clique em :

Sketch > Incluir Biblioteca > Gerenciar Bibliotecas 

Após abrir a janela do Gerenciador de Biblioteca, refine a busca digitando IRremote. Na biblioteca  IRremote, clique em More Info e depois em Instalar. Após alguns segundos, ela será automaticamente instalada. Lembre-se que o seu computador precisa estar conectado na internet, para poder baixar a biblioteca. Após a instalação da Biblioteca, é necessário que feche e abra novamente o programa  Arduino IDE.

 

O primeiro programa serve para testar a montagem do Módulo Receptor IR. Com esse programa, ao pressionar a tecla do controle remoto, o Arduino vai mostrar o código descodificado (HEX Code) correspondente.

Esse é o Sketch do programa :

Essa é uma captura da tela do Monitor serial da IDE Arduino. Ao pressionar as teclas do Controle remoto, os HEX codes são mostrados. Os códigos FFFFFFFF correspondem aos Repeat Codes e podem ser desprezados. Esses Repeat Codes aparecem quando fica pressionando a tecla por um tempo maior.

 

Esse outro programa de exemplo é bem interessante, pois com o uso do controle remoto poderá ligar ou desligar os LEDs coloridos. Se quiser acionar um equipamento, poderá substituir os LEDs por um módulo de relé.

  • Tecla 1 aciona  Led Verde / pino D05
  • Tecla 2 aciona Led Azul / pino D06
  • Tecla 3 aciona Led Vermelho / pino D07

 

Usando Biblioteca InfraRed com Arduino – ADAFRUIT

Descodificando Controles Remotos – infravermelho

Controle Remoto com Arduino

Ken Shirriff’s blog

Informações sobre a Biblioteca IRremote

 

Se gostar ou tiver alguma dúvida,  deixe um comentário!

Rating: 3.5/5. From 4 votes.
Please wait...
Gustavo Murta
Gustavo Murta
Consultor e Projetista de Sistemas Embarcados. Técnico em eletrônica, formado em Curso superior de TPD, pós-graduado em Marketing. Trabalhou por muitos anos na IBM na área de manutenção de computadores de grande porte. Aposentou-se, podendo curtir o que mais gosta : estudar e ensinar Tecnologia. Hobista em eletrônica desde 1976. Gosta muito de Fotografia e Observação de aves.