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