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