quarta-feira, setembro 25, 2013

Controle Remoto Infravermelho Parte 3

Neste post vamos conhecer um pouco uma biblioteca para o Arduino, que suporta vários protocolos de controle remoto IR. A biblioteca é apresentada no blog do autor (aqui), a versão mais recente está no github.

Instalação

Basta seguir os passos abaixo:
  • Na página do projeto no github, selecione "Download ZIP"
  • Extraia o conteúdo do ZIP
  • Renomeie o diretório extraído para IRremote e mova para dentro do diretório arduino-1.x/libraries, onde arduino-1.x é o diretório onde você instalou a IDE do Arduino
Após a instalação basta incluir IRremote.h nos seus programas para usar a biblioteca. Os exemplos estarão disponíveis diretamente no menu da IDE do Arduino.

Hardware

O hardware necessário para usar a biblioteca é bem simples.

Por padrão, a transmissão é feita no pino 3 do Arduino Uno. Para outros modelos de Arduino, ou para usar um pino alternativo no Uno, veja IRremoteInt.h. Na montagem mais básica, ligamos a este pino um LED IR em série com um resistor de 100 ohms. Para um alcance maior podemos usar um transistor e/ou vários LEDs (por exemplo, o TV-B-Gone usa quatro LEDs acionados por transistores).

O circuito de recepção pode ser ligado a qualquer entrada digital (os exemplos da biblioteca usam o pino 11). Neste pino deve ser ligada a saída de um módulo receptor IR, que amplifica o sinal detectado e retira a portadora. Nos meus testes eu usei este módulo. O ideal é que o módulo esteja preparado para trabalhar com a frequência exata da portadora do transmissor, mas dá para conseguir resultados satisfatórios mesmo com alguma diferença (como usar este módulo de 38KHz para receber sinais com portadora de 36 ou 40KHz).

Uso da Biblioteca

O jeito mais fácil, e divertido, de aprender a usar a bilbioteca é montar o hardware e rodar os exemplos:
  • IRrecvDemo envia pela serial do Arduino os comandos identificados. Após executar esta demo, aponte um controle remoto para o módulo receptor, aperte uma tecla e veja o resultado.
  • IRsendDemo envia o comando de desligar uma TV Sony sempre que um caracter é recebido pela serial. Se a sua TV não for Sony, altere a linha "irsend.sendSony(0xa90, 12);", usando o resultado do exemplo anterior (ou veja aqui alguns comandos IR).
  • IRrecord é um exemplo mais sofisticado. Além do receptor e do LED IR, você deve conectar um botão entre o pino 11 e terra. Quando o programa identifica um comando IR, o LED do Arduino é piscado e o comando é memorizado. Apertando o botão, o último comando memorizado é enviado.
Estes exemplos ensinam como enviar e receber comandos IR. Alguns exemplos de uso da biblioteca:
  • Usar o Arduino para controlar outros equipamentos, enviando códigos IR conforme sensores, timers ou comunicação externa.
  • Controlar o Arduino (ou dispositivos ligados a ele) através de um controle remoto IR
Em posts futuros vou apresentar alguns exemplos destes usos.

Nenhum comentário: