No primeiro encontro do Arduino Team não sabíamos 
muito bem o que desenvolvedor. Por acaso encontramos este vídeo na 
internet (link aqui),
 onde uma placa arduino liga um aparelho de TV conforme o valor de 
sensor de proximidade. Neste momento decidimos qual seria nosso foco.
O primeiro link indica o site onde toda a criação do projeto é explicada (link aqui).
 A imagem da ligação do sensor da protoboard foi essencial para nosso 
desenvolvimento. Exceto pelo fato de não possuírmos (ainda) o receptor 
de IR, somente o sensor IR LED. Mas o achado mais importante neste texto
 foi a indicação da biblioteca que foi utilizada no projeto, a IRemote.
No site oficial da biblioteca tem um link para um texto chamado "A Multi-Protocol Infrared Remote Library for the Arduino". 
Depois que ligamos o sensor LED IR na protoboard e esta na Program-ME 2.0, testamos o seguinte trecho de código:
 
#include <IRremote.h>
IRsend irsend;
void setup()
{
  Serial.begin(9600);
}
void loop() {
  if (Serial.read() != -1) {
    for (int i = 0; i < 3; i++) {
      irsend.sendSony(0xa90, 12); // Sony TV power code
      delay(100);
    }
  }
} 
Quando
 testamos a TV realmente ligou, festa geral na Arduino Team. No mesmo 
link tem uma foto de como deve ficar a protoboard. Seguimos a 
representação fielmente.
O próximo passo era descobrir como trocar os canais. Em uma busca rápida no Google chegamos a este link. 
Infelizmente
 nosso tempo estava acabando e não poderíamos fazer algo mais elaborado,
 como ligar mais botões a placa para termos uma ação específica para 
trocar de canal para cima e, outra para troca de canal para baixo. Logo,
 nosso código ficou assim:
/*
 * IRremote: IRsendDemo - demonstrates sending IR codes with IRsend
 * An IR LED must be connected to Arduino PWM pin 3.
 * Version 0.1 July, 2009
 * Copyright 2009 Ken Shirriff
 * http://arcfn.com
 */
#include <IRremote.h>
IRsend irsend;
int botao = 2;
void setup()
{
  pinMode(botao, INPUT);
  Serial.begin(9600);
}
void loop() {
  int estadoBotao = digitalRead(botao);
  
  delay(500);
  
  int luz = analogRead(3);
  if (luz < 200){
    for (int i = 0; i < 3; i++) {
      irsend.sendSony(2704, 12); // Sony TV power code
      delay(40);
    }
  }
/*  if (estadoBotao == LOW){
    for (int i = 0; i < 3; i++) {
      irsend.sendSony(0x90, 12); //channel up
      delay(40);
    }
  }*/
  
  if (estadoBotao == LOW){
    for (int i = 0; i < 3; i++) {
      irsend.sendSony(0x890, 12); //channel down
      delay(40);
    }
  }
}
Dependendo do if comentado, o código trocará o canal para cima ou para baixo.
Como
 próximo passo, almejamos a compra do sensor receptor de infrared. A 
busca no google já resultou nesta ótima fonte: o código para leitura dos
 códigos IR através do sensor receptor (link aqui).
Até a próxima.
Nenhum comentário:
Postar um comentário