0

Como controlar um Arduino com um comando de TV?

O Arduino é uma plataforma de hardware livre, projectado com um micro-controlador Atmel AVR. É uma placa de código aberto baseado num circuito de entradas/saídas simples, micro-controlada e desenvolvida sobre uma biblioteca que simplifica a escrita da programação em C/C++.

Hoje vamos explicar como podem ler, via infravermelhos, os “sinais” dos comandos dos nossos electrodomésticos (ex. TV, DVD, etc).

O objectivo deste tutorial é ler os “sinais” enviados por um comando quando o utilizador pressiona uma tecla. Para tal, vamos recorrer a um Arduino e a um modulo de infravermelhos. Depois de conseguimos obter os “sinais” emitidos pelo comando, podemos accionar um conjunto de acções, como por exemplo motores, ligar relés, LEDs entre outras acções.

 

Material necessário

  • Arduino UNO ou qualquer outra versão;
  • Receptor de infravermelho IR (como nas fotos acima);
  • Comando (Pode ser de TV,DVD ou MP3);
  • LED vermelho;
  • LED verde;
  • LED Amarelo;
  • 4 Resistências 200 ohms;
  • Vários jumpers (condutores para interligações)

 

 

Montagem

Deverão realizar a montagem dos componentes conforme o esquema seguinte:

 

Nota: Muito cuidado a ligar o infravermelho porque, se for ligado de forma incorrecta, pode ficar danificado sem reparação.

Após realizarmos as ligações deveremos ter algo semelhante ao apresentado na imagem seguinte:

 

 

Código fonte

Agora vamos ao mais importante , o código fonte responsável de realizar a leitura:

 

 #include  <irremote.h> // incluindo a biblioteca do infravermelho  
 
  const int RECEBE_PINO = 2; // pino 6 no arduino 
 
  int ledverde = 7;// led no pino 10   
  int ledamarelo = 6;   
  int ledvermelho = 5;   
 
  IRrecv ir_recebe(RECEBE_PINO); // declarando a variável do sensor   
  decode_results codigo_recebido; // resultado   
 
  void setup()   
  {   
    Serial.begin(9600); //mostra o resultado no computador   
    ir_recebe.enableIRIn(); // inicia a recepção  
 
    pinMode(ledverde, OUTPUT); //declarado led como saída   
    pinMode(ledamarelo, OUTPUT);   
    pinMode(ledvermelho, OUTPUT);   
  }   
 
  void loop() {   
////////////////////////////////////////////////////////
// comando para ler o codigo de cada tecla e enviar para o Terminal do arduino
  if (ir_recebe.decode(&codigo_recebido)) {  //verifica se um codigo foi recebido   
     if (codigo_recebido.value != 0 ){  
     Serial.println(codigo_recebido.value, HEX); //mostra no serial o resultado   
   }  
 
////////////////////////////////////////////////////////
 
  //tem que colocar o 0x antes do numero hexadecimal, pois só assim para poder comparar no if   
 
 //liga led verde   
   if (codigo_recebido.value == 0x39C618E7){// verifica se foi pressionado o numero 1 dos comandos
     digitalWrite(ledverde, HIGH);   
     delay(500);   
   }   
   //desliga led verde   
   if (codigo_recebido.value == 0x39C658A7) {// verifica se foi pressionado o numero 4 dos comandos  
     digitalWrite(ledverde, LOW);   
     delay(500);   
   }   
 
   //liga led amarelo   
   if (codigo_recebido.value == 0x39C69867) {// verifica se foi pressionado o numero 2 dos comandos   
     digitalWrite(ledamarelo, HIGH);   
     delay(500);   
   }   
 
   //desliga led amarelo   
   if (codigo_recebido.value == 0x39C628D7) {// verifica se foi pressionado o numero 5 dos comandos  
     digitalWrite(ledamarelo, LOW);   
     delay(500);   
   }   
 
   //liga led vermelho   
   if (codigo_recebido.value == 0x39C6D02F) {// verifica se foi pressionado o numero 3 do comando 
     digitalWrite(ledvermelho, HIGH);  
     delay(500);   
   }   
 
   //desliga led vermelho   
   if (codigo_recebido.value == 0x39C6E01F) {// verifica se foi pressionado o numero 6 do comando
     digitalWrite(ledvermelho, LOW);   
     delay(500);   
   }   
   ir_recebe.resume(); // recebe o próximo código  
   delay(200);   
  }   
  }  

E está feito! Desta forma, conseguimos ler os “sinais” de qualquer comando que seja infravermelho, usando um Arduino com o respectivo módulo. Esperamos que seja útil este artigo e se gostaram partilhem com os amigos! Alguma dúvida ou questão deixem em comentário.
————————-
Todos os produtos utilizados neste artigo podem ser encontrados na Loja de Eletrónica e Robótica – ElectroFun.

Gostaram deste artigo? Deixem o vosso comentário no formulário a baixo e partilhem com os vossos amigos.

Não se esqueçam de fazer like na nossa Página no Facebook.

Podem ainda colocar as vossas dúvidas no nosso Forum da Comunidade Arduino em Portugal ou no nosso Grupo no Facebook Arduino Portugal – Qual o teu projeto?

Comments

Comentários

ArduinoPortugal.pt

Deixar uma resposta