Inicialmente temos que fazer uma montagem simples com um sensor infravermelho, gosto muito do TSOP.
Para inicio vamos fazer uma montagem simples, pois esse receptor, já é encarregado de captura filtragem e amplificação do sinal Infra vermelho gerado pelo controle remoto.
A montagem inicial é a seguinte:
Temos que ver o Datasheet do receptor, pois os pinos podem mudar de ordem, mnais de uma forma geral e generica elas são dasas dessa ordem, 1º - Sinal; 2º - negativo; 3º - Positivo
Em seguida Temos que fazer a leitura do tipo de protocolo que o controle que você pretende utilizar esta se comunicando, essa etapa é extremamente importante, pois cada marca de controle faz um tipo de protocolo diferente
Para isso vamos utilizar um programinha para fazer a leitura das teclas do controle, para isso também temos que ter uma biblioteca que leia os tipos de protocolos, eu estou disponibilizando a biblioteca no seguinte link: http://www.4shared.com/zip/Sc_glkP-/IRremote.html?
Em seguida deve descompactar o arquivo dentro da pasta libraries do arduino para utilizar de forma correta.
Primeiro passo é a leitura do controle.
Como colocamos a biblioteca na pasta certa, temos agora na aba : FILE - EXAMPLES o IR- remote:
Em seguida vamos fazer a leitura do controle para isso abrimos o exemplo IRrecvDump:
Esse exemplo faz uma leitura na porta 11 como colocado no esquemático la em cima e entrega no leitor do serial vários dados, e para nos apena dois deles servem, o que indica que o botão foi pressionado pela primeira vez e o que indica que o botão foi pressionado pela segunda vez.
Bom na leitura do serial ele aparece varias coisas, mais o primeiro valor é o código de cada tecla escrita em hexadecimal temos apenas que tratar esse código para ter controle de cada tecla ex:
Decoded RC5: 2060 (12 bits)
Raw: ( 20) 574 900 750 1750 800 900 1672 2382 0932 24 323 443 2060
Decoded RC5: 12 (12 bits)
Raw: ( 20) 574 900 750 1750 800 900 1672 2382 0932 24 323 443 12
Temos que observar no meu caso eu apertei o mesmo botão 2 vezes e notamos eu o numero que vem antes do (12bits) mudou, vamos utilizar esse numero para fazer o próximo programa.
Agora que você já tem o código em HEX de cada tecla do controle podemos fazer o programa que aciona o rele:
#include // Inclui a biblioteca
int RECV_PIN = 11; // Seta pino de entrada
IRrecv irrecv(RECV_PIN);
decode_results results;
void setup()
{
Serial.begin(9600); // Inicia comunicaçao serial
irrecv.enableIRIn();
pinMode(8, OUTPUT); // Seta pino de saida
}
void loop()
{
if (irrecv.decode(&results)) // teste de comunicação com controle
{
irrecv.resume();
}
if(results.value == 2060) // Aciona a luz conforme o botao
{
digitalWrite(13, HIGH);
}
if(results.value == 12) // Apaga a luz conforme o botao
{
digitalWrite(13, LOW);
}
}
E com a montagem do seguinte esquemático temos o acionamento: