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