Antes de tudo, você sabe como o controle remoto consegue acionar sua televisão a distância? O que está por trás disso? Sendo assim, vamos entender melhor sobre o sistema de luz infravermelha através do uso de um controle remoto com Arduino.
Se você quer aprender tudo sobre Arduino, confira o método ARDUHACK!
Controle IR – Infrared
Vale lembrar que esse tipo de controle está presente em nosso dia a dia: ar condicionado, TVs, rádios portáteis. O controle IR possui em seu interior um microcontrolador, um teclado e LEDs, cuja função é emitir pulsos de luz IR.
Portanto, cada pulso forma um código que irá do transmissor ao receptor do sistema, o receptor vai decodificar o sinal. Dessa forma, cada botão do controle remoto possui um código diferente. Assim, ao apertar cada botão, você pode verificá-lo e aplicar a ele diversas ações para executar, é o que veremos mais a frente.
Além disso, outro fato curioso é que não podemos enxergar a luz IR, se você apertar algum botão do controle remoto, não irá perceber o LED aceso. Isso acontece porque o IR é uma radiação, ou seja, sua frequência é menor que a luz vermelha, ele não está dentro do espectro eletromagnético visível ao ser humano.
Porém, câmeras digitais conseguem captar essa frequência. Assim, se você observar através da câmera do seu celular, irá ver o LED acender.
Conectando o Receptor – Controle Remoto com Arduino
Em seguida, veja o que é preciso para a montagem do circuito com Arduino:
- Controle remoto: Pode ser de diferentes tipos, incluindo o controle de sua TV, por exemplo. Lembre-se que cada controle é diferente do outro, logo, cada um tem sua própria codificação. Nesse caso, vamos usar o “Car mp3”, ele possui 21 botões e espaço para uma pilha CR2025.
- Receptor IR
Você pode encontrar o receptor de maneira avulsa ou pelo módulo. Dessa forma, o módulo possui em sua placa um espaço para fixação, além de LEDs que indicam a transmissão dos sinais. No circuito de hoje, vamos usar o receptor de maneira avulsa.
- 2 Leds e 2 resistores de 220 Ohms
- Jumpers/cabos de conexão
- Placa Arduino Uno
Para prosseguir, faça as seguintes conexões conforme a imagem, Leds nos pinos 2 e 4, e o sinal do receptor no pino digital 11.
Para aprender mais sobre módulos, sensores e Shields para Arduino, conheça treinamento Arduhack, clique aqui.
Código para Controle Remoto com Arduino
Assim sendo, para validar os códigos, vamos precisar da biblioteca IRremote.h. Você pode baixá-la clicando AQUI. Em seguida, faça os seguinte:
- Descompacte o arquivo baixado e renomeie a pasta para IRremote
- Copie essa pasta e cole em: Documentos –> Arduino –> Libraries
O primeiro passo é encontrar quais são as codificações para cada botão do controle. Para isso, abra um novo sketch no Arduino, vá na guia Examples, IRremote e clique em IRreceiveDemo:
Compile o programa e carregue para o Arduino. De acordo com o que já vimos, vamos precisar verificar os botões de um por um, para fazer isso abra o monitor serial e altere a velocidade para 115200.
Em seguida, clique no primeiro botão de seu controle em direção ao receptor. Perceba que aparecerá um código HEX. Faça isso para todos os outros botões e salve essas informações.
Entretanto, no caso de aparecer erros, como, “0xFFFFFFFF R”, apenas clique novamente no botão do controle até que o endereçamento correto apareça no monitor serial.
Dessa maneira, são essas as decodificações de cada botão que iremos usar no programa principal:
#include <IRremote.h>
int pino_receptor = 11; //Pino que recebe o valor
float armazenavalor;
int verde = 2;
int azul = 4;
IRrecv irrecv(pino_receptor);
decode_results results;
void setup()
{
pinMode(verde, OUTPUT);
pinMode(azul, OUTPUT);
Serial.begin(9600);
irrecv.enableIRIn(); // Inicia o receptor IR
}
void loop()
{
if (irrecv.decode(&results))
{
Serial.print("Valor lido: ");
Serial.println(results.value, HEX);
armazenavalor = (results.value);
if (armazenavalor == 0xFF30CF) //Acionamento da Tecla 1
{
digitalWrite(verde, HIGH); //Acende o led verde }
if (armazenavalor == 0xFF18E7) //Acionamento da Tecla 2
{
digitalWrite(verde, LOW); //Apaga o led verde
}
if (armazenavalor == 0xFF7A85) //Acionamento da Tecla 3
{
digitalWrite(azul, HIGH); //Acende o led azul
}
if (armazenavalor == 0xFF10EF) //Acionamento da Tecla 4
{
digitalWrite(azul, LOW); //Desliga o led azul
}
if (armazenavalor == 0xFFC23D) //Acionamento da Tecla Play
{
digitalWrite(verde, HIGH); //Deixa os LEDs ligados por 3 segundos
digitalWrite(azul, HIGH);
delay (3000);
digitalWrite(verde, LOW);
digitalWrite(azul, LOW);
delay(1000);
}
irrecv.resume(); //Faz a leitura do próximo valor
}
}
Por fim, carregue o código principal para a placa do Arduino e veja como é simples controlar o que você quiser através dos pulsos infravermelhos! Além dos LEDs, essa ideia pode ser aplicada ao acionamento de motores, relés, lâmpadas e o que se pode imaginar.
Veja mais em nossas redes sociais:
Instagram: @lobodarobotica
Facebook: /lobodarobotica
YouTube: /lobodarobotica