Arduino e controle remoto Infra-vermelho

Na postagem de hoje vamos fazer o Arduino se comunicar com um controle remoto Infra-vermelho, mas antes disso, vamos ver o que é o 'infra-vermelho":
A luz infravermelha está na faixa invisível do espectro eletromagnético como você pode ver na imagem a seguir:
 Bom, isso já explica o motivo de você não conseguir ver nada quando olha no emissor do controle remoto da TV. 
Em linhas gerais, o que acontece é que cada botão do controle remoto possui um código, quando você o pressiona, o controle envia esse código para o aparelho receptor, por meio de um microcontrolador no aparelho, ele decodifica o sinal enviado e executa uma determinada ação, seja trocar de canal, ligar ou desligar, ou mesmo diminuir ou aumentar o volume.
Com base nisso o que vamos fazer é primeiramente ler o valor de cada botão do controle remoto, para essa tarefa você vai precisar de:
- 1 receptor infra-vermelho;
- 1 controle remoto qualquer (que funcione, óbvio!);
- ter a biblioteca IRremote instalada no diretório de seu Arduino.
Vamos primeiro instalar a biblioteca, para isso faça o download da mesma através desse link, descompacte-a e coloque no diretório de seu Arduino (no meu caso ficou: C:\arduino-1.0.1\libraries).
Agora vamos ligar o receptor infra-vermelho:
Como você pode ver, o primeiro pino é o de Sinal, este será ligado diretamente em uma entrada digital do Arduino, em nosso exemplo será o pino D2, o pino do meio do receptor é ligado ao negativo (GND) enquanto o terceiro pino é ligado na alimentação de 5V do Arduino.
Agora vamos à programação:
Copie o código anterior para seu Arduino e execute-o, abra o Monitor Serial e sempre que você pressionar uma tecla no controle remoto o valor dele será mostrado na tela do seu computador, veja a imagem a seguir:
Cada linha é um botão que foi pressionado e seu código mostrado na tela, onde aparece o "-1" foi um erro de leitura, é quando você segura o botão por muito tempo ao invés de apenas pressionar e soltar imediatamente, foi para reduzir esses erros de leitura que eu coloquei um delay no final do código no Arduino, assim ele demora mais tempo para fazer a leitura.
Agora vamos ligar e desligar um LED através do controle remoto IR, para isso basta mudar o código, já que o LED será o do pino 13.
Como controle remoto estou usando esse:
É o controle que veio junto com meu monitor LCD MOX de 7" com TV. Primeiramente devo escolher os dois botões do controle que serão usados (um para ligar e outro para desligar), no meu caso escolhi o Vol+ e Vol- para ligar e desligar respectivamente, apertando eles, obtive no serial monitor os seguintes valores: 16750695 para o Vol+ e  16773135 para o Vol-.
Basicamente o que precisa-se mudar no código é adicionar um comando Switch Case onde quando o valor lido é o do Vol+ o LED é ligado, caso seja o valor do Vol- o LED é desligado.
Veja o código:
Dessa vez teremos no Serial Monitor a mensagem do LED sendo ligado e desligado, veja:
E o LED ligado:
E agora desligado:
Bem simples, não é?! Para você fazer a comunicação, basta ler primeiramente os botões que deseja utilizar e adicionar no código o Switch Case com as tarefas a serem executadas pelo Arduino. 
Por hoje é isso pessoal, um abraço e até a próxima. 
 Fontes:

1 comentários: