terça-feira, 16 de outubro de 2012

Interruptor por controle remoto.

Salve galera apos um grande tempo sem postar, resolvi fazer esse post para ajudar uma galera que ainda tem duvidas para fazer a leitura de um controle remoto com arduino, e para utilizar esses dados para poder acionar lampadas ou qualquer outro dispositivo.

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:




Um comentário:

  1. Ola Thales, vc poderia me ajudar com um pequeno prejeto de um carrinho com sensor ir da sharp q estou tentando fazer, ja esta todo montado, mas nao sou muito bom em programaçao, Poderia me ajudar?
    riveraraujo@gmail.com
    Obrigado

    ResponderExcluir